diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-10 11:58:21 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-10 11:58:21 +0000 |
commit | 2f8ddcd8cd324b23b291de1d21a63dd2dc6f2910 (patch) | |
tree | 6ae68979ff9ea6d30d093c7ee89b3aebc1d73618 /lib/date | |
parent | 45bfb5318f26b296c651e32257444578867cc5c0 (diff) | |
download | ruby-2f8ddcd8cd324b23b291de1d21a63dd2dc6f2910.tar.gz |
* lib/date/format.rb (Date::Format::Bag): use Struct.
as an experimental.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/date')
-rw-r--r-- | lib/date/format.rb | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/lib/date/format.rb b/lib/date/format.rb index 5aacb2a128..1a420fb398 100644 --- a/lib/date/format.rb +++ b/lib/date/format.rb @@ -1,4 +1,4 @@ -# format.rb: Written by Tadayoshi Funaba 1999-2009 +# format.rb: Written by Tadayoshi Funaba 1999-2010 # $Id: format.rb,v 2.43 2008-01-17 20:16:31+09 tadf Exp $ class Date @@ -109,29 +109,27 @@ class Date x.freeze end - class Bag # :nodoc: - - def initialize - @elem = {} - end - - def method_missing(t, *args, &block) - t = t.to_s - set = t.chomp!('=') - t = t.intern - if set - @elem[t] = args[0] - else - @elem[t] - end - end + class BagStruct < Struct # :nodoc: def to_hash - @elem.reject{|k, v| /\A_/ =~ k.to_s || v.nil?} + h = {} + members.each do |k| + unless /\A_/ =~ k.to_s || self[k].nil? + h[k] = self[k] + end + end + h end end + Bag = BagStruct.new(:year, :mon, :yday, :mday, :wday, + :cwyear, :cweek, :cwday, + :hour, :min, :sec, :sec_fraction, + :wnum0, :wnum1, :seconds, + :zone, :offset, :leftover, + :_cent, :_merid, :_comp) + end def emit(e, f) # :nodoc: |