ruby-changes:28785
From: zzak <ko1@a...>
Date: Mon, 20 May 2013 04:01:54 +0900 (JST)
Subject: [ruby-changes:28785] zzak:r40837 (ruby_2_0_0): * lib/yaml.rb: YAML documentation from #8344 [Bug #8355]
zzak 2013-05-20 04:01:43 +0900 (Mon, 20 May 2013) New Revision: 40837 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=40837 Log: * lib/yaml.rb: YAML documentation from #8344 [Bug #8355] Modified files: branches/ruby_2_0_0/ChangeLog branches/ruby_2_0_0/lib/yaml.rb Index: ruby_2_0_0/ChangeLog =================================================================== --- ruby_2_0_0/ChangeLog (revision 40836) +++ ruby_2_0_0/ChangeLog (revision 40837) @@ -1,3 +1,7 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ChangeLog#L1 +Mon May 20 04:00:48 2013 Zachary Scott <zachary@z...> + + * lib/yaml.rb: YAML documentation from #8344 [Bug #8355] + Wed May 15 23:22:09 2013 CHIKANAGA Tomoyuki <nagachika@r...> * include/ruby/intern.h: should include sys/time.h for struct timeval Index: ruby_2_0_0/lib/yaml.rb =================================================================== --- ruby_2_0_0/lib/yaml.rb (revision 40836) +++ ruby_2_0_0/lib/yaml.rb (revision 40837) @@ -1,7 +1,5 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/lib/yaml.rb#L1 ## -# The YAML module allows you to use one of the two YAML engines that ship with -# ruby. By default Psych is used but the old and unmaintained Syck may be -# chosen. +# The YAML module is an alias of Psych, the YAML engine for ruby. begin require 'psych' @@ -12,14 +10,12 @@ rescue LoadError https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/lib/yaml.rb#L10 raise end -module Psych - class EngineManager - # Returns the YAML engine in use. - # - # By default Psych is used but the old and unmaintained Syck may be chosen. - # - # See #yamler= for more information. - attr_reader :yamler +YAML = Psych + +module Psych # :nodoc: + # For compatibility, deprecated + class EngineManager # :nodoc: + attr_reader :yamler # :nodoc: def initialize # :nodoc: @yamler = 'psych' @@ -29,18 +25,15 @@ module Psych https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/lib/yaml.rb#L25 false end - # By default Psych is used but the old and unmaintained Syck may be chosen. + # Psych is always used and this method has no effect. # - # After installing the 'syck' gem, you can set the YAML engine to syck: + # This method is still present for compatibility. # - # YAML::ENGINE.yamler = 'syck' - # - # To set the YAML engine back to psych: - # - # YAML::ENGINE.yamler = 'psych' - def yamler= engine + # You may still use the Syck engine by installing + # the 'syck' gem and using the Syck constant. + def yamler= engine # :nodoc: case engine - when 'syck' then warn "syck has been removed" + when 'syck' then warn "syck has been removed, psych is used instead" when 'psych' then @yamler = 'psych' else raise(ArgumentError, "bad engine") @@ -53,4 +46,44 @@ module Psych https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/lib/yaml.rb#L46 ENGINE = EngineManager.new # :nodoc: end -YAML = Psych +# YAML Ain't Markup Language +# +# This module provides a Ruby interface for data serialization in YAML format. +# +# The underlying implementation is the libyaml wrapper Psych. +# +# == Usage +# +# Working with YAML can be very simple, for example: +# +# require 'yaml' # STEP ONE, REQUIRE YAML! +# # Parse a YAML string +# YAML.load("--- foo") #=> "foo" +# +# # Emit some YAML +# YAML.dump("foo") # => "--- foo\n...\n" +# { :a => 'b'}.to_yaml # => "---\n:a: b\n" +# +# == Security +# +# Do not use YAML to load untrusted data. Doing so is unsafe and could allow +# malicious input to execute arbitrary code inside your application. Please see +# doc/security.rdoc for more information. +# +# == History +# +# Syck was the original for YAML implementation in Ruby's standard library +# developed by why the lucky stiff. +# +# You can still use Syck, if you prefer, for parsing and emitting YAML, but you +# must install the 'syck' gem now in order to use it. +# +# In older Ruby versions, ie. <= 1.9, Syck is still provided, however it was +# completely removed with the release of Ruby 2.0.0. +# +# == More info +# +# For more advanced details on the implementation see Psych, and also check out +# http://yaml.org for spec details and other helpful information. +module YAML +end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/