Module: Crosscounter::Expansion
- Defined in:
- lib/crosscounter/expansion.rb
Class Method Summary collapse
- .expand(keywords, expansions) ⇒ Object
- .replace(enumerable, replacements) ⇒ Object
- .resolved(expansions, keyword) ⇒ Object
Class Method Details
.expand(keywords, expansions) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/crosscounter/expansion.rb', line 3 def self.(keywords, expansions) keywords.inject({}) do |hash, keyword| hash[keyword] = resolved(expansions, keyword) hash end end |
.replace(enumerable, replacements) ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/crosscounter/expansion.rb', line 10 def self.replace(enumerable, replacements) enumerable.map do |object| replacements.inject({}) do |hash, replacement| hash[replacement.first] = replacement.last.call(object) hash end end end |
.resolved(expansions, keyword) ⇒ Object
20 21 22 23 24 |
# File 'lib/crosscounter/expansion.rb', line 20 def self.resolved(expansions, keyword) value = expansions.fetch(keyword) value.respond_to?(:call) ? value.call : value end |