Module: Crosscounter::Expansion

Defined in:
lib/crosscounter/expansion.rb

Class Method Summary collapse

Class Method Details

.expand(keywords, expansions) ⇒ Object



3
4
5
6
7
8
# File 'lib/crosscounter/expansion.rb', line 3

def self.expand(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