[macruby-changes] [2183] MacRuby/branches/experimental/lib
source_changes at macosforge.org
source_changes at macosforge.org
Mon Aug 3 10:46:00 PDT 2009
Revision: 2183
http://trac.macosforge.org/projects/ruby/changeset/2183
Author: pthomson at apple.com
Date: 2009-08-03 10:46:00 -0700 (Mon, 03 Aug 2009)
Log Message:
-----------
Moved to YAML::quick_emit, in accordance with the Syck API.
Modified Paths:
--------------
MacRuby/branches/experimental/lib/yaml/rubytypes.rb
MacRuby/branches/experimental/lib/yaml.rb
Modified: MacRuby/branches/experimental/lib/yaml/rubytypes.rb
===================================================================
--- MacRuby/branches/experimental/lib/yaml/rubytypes.rb 2009-08-03 17:45:59 UTC (rev 2182)
+++ MacRuby/branches/experimental/lib/yaml/rubytypes.rb 2009-08-03 17:46:00 UTC (rev 2183)
@@ -47,47 +47,57 @@
class String
yaml_as "tag:yaml.org,2002:str"
- def to_yaml(out = YAML::LibYAML::LibYAML::QuickEmitter.new)
- out.scalar(taguri, self, self =~ /^:/ ? :quote2 : nil)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar(taguri, self, self =~ /^:/ ? :quote2 : nil)
+ end
end
end
class Exception
yaml_as "tag:ruby.yaml.org,2002:exception"
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.map(taguri, to_yaml_style) do |map|
- map.add('message', message)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.map(taguri, to_yaml_style) do |map|
+ map.add('message', message)
+ end
end
- super(out)
end
end
class Array
yaml_as "tag:yaml.org,2002:seq"
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.seq(taguri, to_yaml_style) do |seq|
- each { |i| seq.add(i) }
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.seq(taguri, to_yaml_style) do |seq|
+ each { |i| seq.add(i) }
+ end
end
end
end
class Hash
yaml_as "tag:yaml.org,2002:map"
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.map(taguri, to_yaml_style) do |map|
- each { |k,v| map.add(k,v) }
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.map(taguri, to_yaml_style) do |map|
+ each { |k,v| map.add(k,v) }
+ end
end
end
end
class Integer
yaml_as "tag:yaml.org,2002:int"
+
def Integer.yaml_new(val)
val.to_i
end
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.scalar( "tag:yaml.org,2002:int", self.to_s, :plain )
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar( "tag:yaml.org,2002:int", self.to_s, :plain )
+ end
end
end
@@ -98,7 +108,7 @@
val.to_f
end
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
+ def to_yaml(doc = nil)
str = self.to_s
if str == "Infinity"
str = ".Inf"
@@ -107,7 +117,9 @@
elsif str == "NaN"
str = ".NaN"
end
- out.scalar("tag:yaml.org,2002:float", str, :plain)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar("tag:yaml.org,2002:float", str, :plain)
+ end
end
end
@@ -116,16 +128,19 @@
def self.yaml_new(val); val[1..-1].to_sym; end
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.scalar(taguri, self.inspect, :plain)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar(taguri, self.inspect, :plain)
+ end
end
end
class Regexp
yaml_as "tag:ruby.yaml.org,2002:regexp"
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.scalar(taguri, self.inspect, :plain)
- super(out)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar(taguri, self.inspect, :plain)
+ end
end
end
@@ -134,8 +149,10 @@
def self.yaml_new(val); nil; end
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.scalar(taguri, "", :plain)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar(taguri, "", :plain)
+ end
end
end
@@ -144,8 +161,10 @@
def self.yaml_new(val); true; end
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.scalar(taguri, "true", :plain)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar(taguri, "true", :plain)
+ end
end
end
@@ -154,8 +173,10 @@
def self.yaml_new(val); false; end
- def to_yaml(out = YAML::LibYAML::QuickEmitter.new)
- out.scalar(taguri, "false", :plain)
+ def to_yaml(doc = nil)
+ YAML::quick_emit(self, doc) do |out|
+ out.scalar(taguri, "false", :plain)
+ end
end
end
Modified: MacRuby/branches/experimental/lib/yaml.rb
===================================================================
--- MacRuby/branches/experimental/lib/yaml.rb 2009-08-03 17:45:59 UTC (rev 2182)
+++ MacRuby/branches/experimental/lib/yaml.rb 2009-08-03 17:46:00 UTC (rev 2183)
@@ -9,6 +9,28 @@
require 'libyaml'
require 'yaml/rubytypes'
+class YAML::LibYAML::QuickEmitter < YAML::LibYAML::Emitter
+ def initialize
+ super
+ @doc = YAML::LibYAML::Document.new
+ end
+
+ def seq(taguri, style, &block)
+ @doc.seq(taguri, style) { |o| block[o] }
+ self.dump(@doc)
+ end
+
+ def scalar(*args)
+ @doc.scalar(*args)
+ self.dump(@doc)
+ end
+
+ def map(taguri, style, &block)
+ @doc.map(taguri, style) { |o| block[o] }
+ self.dump(@doc)
+ end
+end
+
module YAML
def YAML.parser
@@ -41,28 +63,11 @@
def YAML.parse_file(path)
File.open(path) { |f| parse(f) }
end
-end
-
-class YAML::LibYAML::QuickEmitter < YAML::LibYAML::Emitter
- def initialize
- super
- @doc = Document.new
- end
- def seq(taguri, style, &block)
- @doc.seq(taguri, style) { |o| block[o] }
- self.dump(@doc)
+ def YAML.quick_emit(obj, out=nil, &block)
+ out ||= YAML::LibYAML::QuickEmitter.new
+ block[out]
end
-
- def scalar(*args)
- @doc.scalar(*args)
- self.dump(@doc)
- end
-
- def map(taguri, style, &block)
- @doc.map(taguri, style) { |o| block[o] }
- self.dump(@doc)
- end
end
module Kernel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090803/4dc1317c/attachment-0001.html>
More information about the macruby-changes
mailing list