diff options
author | Gleb Mazovetskiy <glex.spb@gmail.com> | 2015-11-14 10:29:45 +0000 |
---|---|---|
committer | Gleb Mazovetskiy <glex.spb@gmail.com> | 2015-11-14 10:29:45 +0000 |
commit | cdebadbbcd2f0bac8e80bf7a179fa288a01c363e (patch) | |
tree | f43c30df829d739fa12bdf1156cdca684b49e55c /lib/psych/visitors/yaml_tree.rb | |
parent | 8fb61f8c0dc59377fb4f6863c4bad9a51cac54c6 (diff) | |
download | psych-cdebadbbcd2f0bac8e80bf7a179fa288a01c363e.zip |
Fixes line_width: -1 handling #254
libyaml understands -1 as unlimited:
https://github.com/tenderlove/psych/blob/master/ext/psych/yaml/yaml.h#L1864
Raises on other negative values.
Diffstat (limited to 'lib/psych/visitors/yaml_tree.rb')
-rw-r--r-- | lib/psych/visitors/yaml_tree.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/psych/visitors/yaml_tree.rb b/lib/psych/visitors/yaml_tree.rb index 63e14da..6ad30d2 100644 --- a/lib/psych/visitors/yaml_tree.rb +++ b/lib/psych/visitors/yaml_tree.rb @@ -70,6 +70,14 @@ module Psych @ss = ss @options = options @line_width = options[:line_width] + if @line_width && @line_width < 0 + if @line_width == -1 + # Treat -1 as unlimited line-width, same as libyaml does. + @line_width = nil + else + fail(ArgumentError, "Invalid line_width #{@line_width}, must be non-negative or -1 for unlimited.") + end + end @coders = [] @dispatch_cache = Hash.new do |h,klass| |