ruby-changes:15401
From: tenderlove <ko1@a...>
Date: Sun, 11 Apr 2010 10:21:43 +0900 (JST)
Subject: [ruby-changes:15401] Ruby:r27294 (trunk): * ext/syck/lib/syck/dbm.rb: moved to lib/yaml/dbm.rb since it is not
tenderlove 2010-04-11 10:21:29 +0900 (Sun, 11 Apr 2010) New Revision: 27294 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27294 Log: * ext/syck/lib/syck/dbm.rb: moved to lib/yaml/dbm.rb since it is not YAML engine specific * ext/syck/lib/syck/store.rb: moved to lib/yaml/store.rb since it is not YAML engine specific. Added files: trunk/lib/yaml/dbm.rb trunk/lib/yaml/store.rb Removed files: trunk/ext/syck/lib/syck/dbm.rb trunk/ext/syck/lib/syck/store.rb Modified files: trunk/test/syck/test_yamlstore.rb Index: lib/yaml/dbm.rb =================================================================== --- lib/yaml/dbm.rb (revision 0) +++ lib/yaml/dbm.rb (revision 27294) @@ -0,0 +1,111 @@ +require 'yaml' +require 'dbm' +# +# YAML + DBM = YDBM +# - Same interface as DBM class +# +module YAML + +class DBM < ::DBM + VERSION = "0.1" + def []( key ) + fetch( key ) + end + def []=( key, val ) + store( key, val ) + end + def fetch( keystr, ifnone = nil ) + begin + val = super( keystr ) + return YAML.load( val ) if String === val + rescue IndexError + end + if block_given? + yield keystr + else + ifnone + end + end + def index( keystr ) + super( keystr.to_yaml ) + end + def values_at( *keys ) + keys.collect { |k| fetch( k ) } + end + def delete( key ) + v = super( key ) + if String === v + v = YAML.load( v ) + end + v + end + def delete_if + del_keys = keys.dup + del_keys.delete_if { |k| yield( k, fetch( k ) ) == false } + del_keys.each { |k| delete( k ) } + self + end + def reject + hsh = self.to_hash + hsh.reject { |k,v| yield k, v } + end + def each_pair + keys.each { |k| yield k, fetch( k ) } + self + end + def each_value + super { |v| yield YAML.load( v ) } + self + end + def values + super.collect { |v| YAML.load( v ) } + end + def has_value?( val ) + each_value { |v| return true if v == val } + return false + end + def invert + h = {} + keys.each { |k| h[ self.fetch( k ) ] = k } + h + end + def replace( hsh ) + clear + update( hsh ) + end + def shift + a = super + a[1] = YAML.load( a[1] ) if a + a + end + def select( *keys ) + if block_given? + self.keys.collect { |k| v = self[k]; [k, v] if yield k, v }.compact + else + values_at( *keys ) + end + end + def store( key, val ) + super( key, val.to_yaml ) + val + end + def update( hsh ) + hsh.keys.each do |k| + self.store( k, hsh.fetch( k ) ) + end + self + end + def to_a + a = [] + keys.each { |k| a.push [ k, self.fetch( k ) ] } + a + end + def to_hash + h = {} + keys.each { |k| h[ k ] = self.fetch( k ) } + h + end + alias :each :each_pair +end + +end Property changes on: lib/yaml/dbm.rb ___________________________________________________________________ Name: svn:eol-style + LF Index: lib/yaml/store.rb =================================================================== --- lib/yaml/store.rb (revision 0) +++ lib/yaml/store.rb (revision 27294) @@ -0,0 +1,43 @@ +# +# YAML::Store +# +require 'yaml' +require 'pstore' + +class YAML::Store < PStore + def initialize( *o ) + @opt = {} + if String === o.first + super(o.shift) + end + if o.last.is_a? Hash + @opt.update(o.pop) + end + end + + def dump(table) + @table.to_yaml(@opt) + end + + def load(content) + table = YAML.load(content) + if table == false + {} + else + table + end + end + + def marshal_dump_supports_canonical_option? + false + end + + EMPTY_MARSHAL_DATA = {}.to_yaml + EMPTY_MARSHAL_CHECKSUM = Digest::MD5.digest(EMPTY_MARSHAL_DATA) + def empty_marshal_data + EMPTY_MARSHAL_DATA + end + def empty_marshal_checksum + EMPTY_MARSHAL_CHECKSUM + end +end Property changes on: lib/yaml/store.rb ___________________________________________________________________ Name: svn:eol-style + LF Index: ext/syck/lib/syck/store.rb =================================================================== --- ext/syck/lib/syck/store.rb (revision 27293) +++ ext/syck/lib/syck/store.rb (revision 27294) @@ -1,43 +0,0 @@ -# -# YAML::Store -# -require 'syck' -require 'pstore' - -class Syck::Store < PStore - def initialize( *o ) - @opt = Syck::DEFAULTS.dup - if String === o.first - super(o.shift) - end - if o.last.is_a? Hash - @opt.update(o.pop) - end - end - - def dump(table) - @table.to_yaml(@opt) - end - - def load(content) - table = Syck::load(content) - if table == false - {} - else - table - end - end - - def marshal_dump_supports_canonical_option? - false - end - - EMPTY_MARSHAL_DATA = {}.to_yaml - EMPTY_MARSHAL_CHECKSUM = Digest::MD5.digest(EMPTY_MARSHAL_DATA) - def empty_marshal_data - EMPTY_MARSHAL_DATA - end - def empty_marshal_checksum - EMPTY_MARSHAL_CHECKSUM - end -end Index: ext/syck/lib/syck/dbm.rb =================================================================== --- ext/syck/lib/syck/dbm.rb (revision 27293) +++ ext/syck/lib/syck/dbm.rb (revision 27294) @@ -1,111 +0,0 @@ -require 'syck' -require 'dbm' -# -# YAML + DBM = YDBM -# - Same interface as DBM class -# -module Syck - -class DBM < ::DBM - VERSION = "0.1" - def []( key ) - fetch( key ) - end - def []=( key, val ) - store( key, val ) - end - def fetch( keystr, ifnone = nil ) - begin - val = super( keystr ) - return Syck.load( val ) if String === val - rescue IndexError - end - if block_given? - yield keystr - else - ifnone - end - end - def index( keystr ) - super( keystr.to_yaml ) - end - def values_at( *keys ) - keys.collect { |k| fetch( k ) } - end - def delete( key ) - v = super( key ) - if String === v - v = Syck.load( v ) - end - v - end - def delete_if - del_keys = keys.dup - del_keys.delete_if { |k| yield( k, fetch( k ) ) == false } - del_keys.each { |k| delete( k ) } - self - end - def reject - hsh = self.to_hash - hsh.reject { |k,v| yield k, v } - end - def each_pair - keys.each { |k| yield k, fetch( k ) } - self - end - def each_value - super { |v| yield Syck.load( v ) } - self - end - def values - super.collect { |v| Syck.load( v ) } - end - def has_value?( val ) - each_value { |v| return true if v == val } - return false - end - def invert - h = {} - keys.each { |k| h[ self.fetch( k ) ] = k } - h - end - def replace( hsh ) - clear - update( hsh ) - end - def shift - a = super - a[1] = Syck.load( a[1] ) if a - a - end - def select( *keys ) - if block_given? - self.keys.collect { |k| v = self[k]; [k, v] if yield k, v }.compact - else - values_at( *keys ) - end - end - def store( key, val ) - super( key, val.to_yaml ) - val - end - def update( hsh ) - hsh.keys.each do |k| - self.store( k, hsh.fetch( k ) ) - end - self - end - def to_a - a = [] - keys.each { |k| a.push [ k, self.fetch( k ) ] } - a - end - def to_hash - h = {} - keys.each { |k| h[ k ] = self.fetch( k ) } - h - end - alias :each :each_pair -end - -end Index: test/syck/test_yamlstore.rb =================================================================== --- test/syck/test_yamlstore.rb (revision 27293) +++ test/syck/test_yamlstore.rb (revision 27294) @@ -1,5 +1,5 @@ require 'test/unit' -require 'syck/store' +require 'yaml/store' module Syck class YAMLStoreTest < Test::Unit::TestCase -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/