1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/psych/lib/psych/json/yaml_events.rb: refactoring JSON event

handling methods to a module for reuse.
* ext/psych/lib/psych/json/tree_builder.rb: AST builder uses JSON
  event methods.
* ext/psych/lib/psych/json/stream.rb: stream emitter uses JSON event
  methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tenderlove 2011-02-21 02:00:43 +00:00
parent 6f37c467d4
commit 8b5a3b7d39
4 changed files with 43 additions and 42 deletions

View file

@ -1,3 +1,12 @@
Mon Feb 21 10:58:39 2011 Aaron Patterson <aaron@tenderlovemaking.com>
* ext/psych/lib/psych/json/yaml_events.rb: refactoring JSON event
handling methods to a module for reuse.
* ext/psych/lib/psych/json/tree_builder.rb: AST builder uses JSON
event methods.
* ext/psych/lib/psych/json/stream.rb: stream emitter uses JSON event
methods.
Mon Feb 21 10:54:29 2011 Aaron Patterson <aaron@tenderlovemaking.com>
* ext/psych/lib/psych/json/stream.rb: do not emit custom tags in maps

View file

@ -1,4 +1,5 @@
require 'psych/json/ruby_events'
require 'psych/json/yaml_events'
module Psych
module JSON
@ -6,25 +7,7 @@ module Psych
include Psych::JSON::RubyEvents
class Emitter < Psych::Stream::Emitter # :nodoc:
def start_document version, tag_directives, implicit
super(version, tag_directives, !streaming?)
end
def start_mapping anchor, tag, implicit, style
super(anchor, nil, implicit, Nodes::Mapping::FLOW)
end
def start_sequence anchor, tag, implicit, style
super(anchor, nil, implicit, Nodes::Sequence::FLOW)
end
def scalar value, anchor, tag, plain, quoted, style
if "tag:yaml.org,2002:null" == tag
super('null', nil, nil, true, false, Nodes::Scalar::PLAIN)
else
super
end
end
include Psych::JSON::YAMLEvents
end
end
end

View file

@ -1,32 +1,12 @@
require 'psych/json/yaml_events'
module Psych
module JSON
###
# Psych::JSON::TreeBuilder is an event based AST builder. Events are sent
# to an instance of Psych::JSON::TreeBuilder and a JSON AST is constructed.
class TreeBuilder < Psych::TreeBuilder
def start_document version, tag_directives, implicit
super(version, tag_directives, !streaming?)
end
def end_document implicit_end = !streaming?
super(implicit_end)
end
def start_mapping anchor, tag, implicit, style
super(anchor, nil, implicit, Nodes::Mapping::FLOW)
end
def start_sequence anchor, tag, implicit, style
super(anchor, nil, implicit, Nodes::Sequence::FLOW)
end
def scalar value, anchor, tag, plain, quoted, style
if "tag:yaml.org,2002:null" == tag
super('null', nil, nil, true, false, Nodes::Scalar::PLAIN)
else
super
end
end
include Psych::JSON::YAMLEvents
end
end
end

View file

@ -0,0 +1,29 @@
module Psych
module JSON
module YAMLEvents # :nodoc:
def start_document version, tag_directives, implicit
super(version, tag_directives, !streaming?)
end
def end_document implicit_end = !streaming?
super(implicit_end)
end
def start_mapping anchor, tag, implicit, style
super(anchor, nil, implicit, Nodes::Mapping::FLOW)
end
def start_sequence anchor, tag, implicit, style
super(anchor, nil, implicit, Nodes::Sequence::FLOW)
end
def scalar value, anchor, tag, plain, quoted, style
if "tag:yaml.org,2002:null" == tag
super('null', nil, nil, true, false, Nodes::Scalar::PLAIN)
else
super
end
end
end
end
end