From 4f8094d294b6b795affdd286602adcb3ed1d2140 Mon Sep 17 00:00:00 2001 From: zzak Date: Sun, 19 May 2013 19:01:43 +0000 Subject: * lib/yaml.rb: YAML documentation from #8344 [Bug #8355] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@40837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ lib/yaml.rb | 75 ++++++++++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 58 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index c2979725e2..f1f31aca9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon May 20 04:00:48 2013 Zachary Scott + + * lib/yaml.rb: YAML documentation from #8344 [Bug #8355] + Wed May 15 23:22:09 2013 CHIKANAGA Tomoyuki * include/ruby/intern.h: should include sys/time.h for struct timeval diff --git a/lib/yaml.rb b/lib/yaml.rb index 93e869cd79..6f60f9d7c5 100644 --- a/lib/yaml.rb +++ b/lib/yaml.rb @@ -1,7 +1,5 @@ ## -# 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 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 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 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 -- cgit v1.2.3