Sha256: 97b8d01367718b0712a65fb8da8400ebae52e9015737906f1f2145e371c6412d
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
# OrderedHash is namespaced to prevent conflicts with other implementations module ActiveSupport # Hash is ordered in Ruby 1.9! if RUBY_VERSION >= '1.9' OrderedHash = ::Hash else class OrderedHash < Array #:nodoc: def []=(key, value) if pair = assoc(key) pair.pop pair << value else self << [key, value] end end def [](key) pair = assoc(key) pair ? pair.last : nil end def keys collect { |key, value| key } end def values collect { |key, value| value } end def to_hash returning({}) do |hash| each { |array| hash[array[0]] = array[1] } end end end end end class OrderedOptions < ActiveSupport::OrderedHash #:nodoc: def []=(key, value) super(key.to_sym, value) end def [](key) super(key.to_sym) end def method_missing(name, *args) if name.to_s =~ /(.*)=$/ self[$1.to_sym] = args.first else self[name] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activesupport-2.0.5 | lib/active_support/ordered_options.rb |
activesupport-2.0.4 | lib/active_support/ordered_options.rb |