summaryrefslogtreecommitdiff
path: root/lib/psych/visitors/yaml_tree.rb
diff options
context:
space:
mode:
authorGleb Mazovetskiy <glex.spb@gmail.com>2015-11-14 10:29:45 +0000
committerGleb Mazovetskiy <glex.spb@gmail.com>2015-11-14 10:29:45 +0000
commitcdebadbbcd2f0bac8e80bf7a179fa288a01c363e (patch)
treef43c30df829d739fa12bdf1156cdca684b49e55c /lib/psych/visitors/yaml_tree.rb
parent8fb61f8c0dc59377fb4f6863c4bad9a51cac54c6 (diff)
downloadpsych-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.rb8
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|