Module: Dictable
- Included in:
- Dict
- Defined in:
- lib/quality_extensions/dictable.rb
Overview
Provides dictionary/hash-like mixin for any enumerable object that yields key-value pairs and responds_to :update (the included Dict builds upon Array).
For example:
require 'dictable'
a = Dict.new
d[:one] = 1
d[:two] = 2
d[:one] -> 1
d[:ten] -> nil
d.keys -> [:one, :two]
d.values -> [1, 2]
d.to_hash -> {:two=>2, :one=>1}
Instance Method Summary collapse
Instance Method Details
#[](key) ⇒ Object
24 25 26 27 |
# File 'lib/quality_extensions/dictable.rb', line 24 def [](key) each { |(k, v)| return v if k == key } return nil end |
#[]=(key, value) ⇒ Object
28 29 30 |
# File 'lib/quality_extensions/dictable.rb', line 28 def []=(key, value) update key, value end |
#keys ⇒ Object
31 32 33 |
# File 'lib/quality_extensions/dictable.rb', line 31 def keys inject([]) { |keys, (k, v)| keys << k } end |
#to_hash ⇒ Object
37 38 39 |
# File 'lib/quality_extensions/dictable.rb', line 37 def to_hash inject({}) { |hash, (k, v)| hash.update({ k => v }) } end |
#values ⇒ Object
34 35 36 |
# File 'lib/quality_extensions/dictable.rb', line 34 def values inject([]) { |values, (k, v)| values << v } end |