ruby-changes:16593
From: tenderlove <ko1@a...>
Date: Fri, 9 Jul 2010 01:02:47 +0900 (JST)
Subject: [ruby-changes:16593] Ruby:r28584 (trunk): * ext/psych/emitter.c (line_width, set_line_width): preferred line may
tenderlove 2010-07-09 01:02:26 +0900 (Fri, 09 Jul 2010) New Revision: 28584 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28584 Log: * ext/psych/emitter.c (line_width, set_line_width): preferred line may be set on the emitter. * ext/psych/lib/psych/visitors/yaml_tree.rb: ditto * test/psych/test_emitter.rb: corresponding tests. Modified files: trunk/ChangeLog trunk/ext/psych/emitter.c trunk/ext/psych/lib/psych/visitors/yaml_tree.rb trunk/test/psych/test_emitter.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 28583) +++ ChangeLog (revision 28584) @@ -1,3 +1,10 @@ +Fri Jul 9 00:49:46 2010 Aaron Patterson <aaron@t...> + + * ext/psych/emitter.c (line_width, set_line_width): preferred line may + be set on the emitter. + + * test/psych/test_emitter.rb: corresponding tests. + Thu Jul 8 15:47:34 2010 NARUSE, Yui <naruse@r...> * string.c (rb_str_conv_enc_opts): fix infinite loop because Index: ext/psych/lib/psych/visitors/yaml_tree.rb =================================================================== --- ext/psych/lib/psych/visitors/yaml_tree.rb (revision 28583) +++ ext/psych/lib/psych/visitors/yaml_tree.rb (revision 28584) @@ -54,7 +54,7 @@ version = @options[:version].split('.').map { |x| x.to_i } else version = [1,1] - end if @options[:version] + end if @options.key? :version @emitter.start_document version, [], false accept object Index: ext/psych/emitter.c =================================================================== --- ext/psych/emitter.c (revision 28583) +++ ext/psych/emitter.c (revision 28584) @@ -460,6 +460,32 @@ return INT2NUM(emitter->best_indent); } +/* call-seq: emitter.line_width + * + * Get the preferred line width. + */ +static VALUE line_width(VALUE self) +{ + yaml_emitter_t * emitter; + Data_Get_Struct(self, yaml_emitter_t, emitter); + + return INT2NUM(emitter->best_width); +} + +/* call-seq: emitter.line_width = width + * + * Set the preferred line with to +width+. + */ +static VALUE set_line_width(VALUE self, VALUE width) +{ + yaml_emitter_t * emitter; + Data_Get_Struct(self, yaml_emitter_t, emitter); + + yaml_emitter_set_width(emitter, NUM2INT(width)); + + return width; +} + void Init_psych_emitter() { VALUE psych = rb_define_module("Psych"); @@ -483,6 +509,8 @@ rb_define_method(cPsychEmitter, "canonical=", set_canonical, 1); rb_define_method(cPsychEmitter, "indentation", indentation, 0); rb_define_method(cPsychEmitter, "indentation=", set_indentation, 1); + rb_define_method(cPsychEmitter, "line_width", line_width, 0); + rb_define_method(cPsychEmitter, "line_width=", set_line_width, 1); id_write = rb_intern("write"); } Index: test/psych/test_emitter.rb =================================================================== --- test/psych/test_emitter.rb (revision 28583) +++ test/psych/test_emitter.rb (revision 28584) @@ -10,6 +10,12 @@ @emitter = Psych::Emitter.new @out end + def test_line_width + assert_equal 0, @emitter.line_width + assert_equal 10, @emitter.line_width = 10 + assert_equal 10, @emitter.line_width + end + def test_set_canonical @emitter.canonical = true assert_equal true, @emitter.canonical -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/