summaryrefslogtreecommitdiff
path: root/lib/date/format.rb
diff options
context:
space:
mode:
authortadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-10 11:58:21 +0000
committertadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-08-10 11:58:21 +0000
commit2f8ddcd8cd324b23b291de1d21a63dd2dc6f2910 (patch)
tree6ae68979ff9ea6d30d093c7ee89b3aebc1d73618 /lib/date/format.rb
parent45bfb5318f26b296c651e32257444578867cc5c0 (diff)
* 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/format.rb')
-rw-r--r--lib/date/format.rb34
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: