Class: Fabrik::Dictionary

Inherits:
Object
  • Object
show all
Defined in:
lib/fabrik/dictionary.rb

Instance Method Summary collapse

Constructor Details

#initializeDictionary

Returns a new instance of Dictionary.



6
7
8
# File 'lib/fabrik/dictionary.rb', line 6

def initialize
  @pairs = Set.new
end

Instance Method Details

#add(pair) ⇒ Object



10
11
12
# File 'lib/fabrik/dictionary.rb', line 10

def add(pair)
  @pairs.add(pair)
end

#apply_aliases(methods, aliases) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/fabrik/dictionary.rb', line 34

def apply_aliases(methods, aliases)
  Hash[
    methods.map do |name, _|
      [(aliases.include?(name) ? aliases[name] : name), _]
    end
  ]
end

#apply_exclusions(methods, exclusions) ⇒ Object



28
29
30
31
32
# File 'lib/fabrik/dictionary.rb', line 28

def apply_exclusions(methods, exclusions)
  methods.select do |name, _|
    !exclusions.include?(name)
  end
end

#method_map(opts = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fabrik/dictionary.rb', line 14

def method_map(opts = {})
  exclude = Array(opts[:exclude])
  aliases = opts.fetch(:aliases, {})

  methods = Hash[
    @pairs.map do |pair|
      mod, name = pair
      [name, mod.instance_method(name)]
    end
  ]
  methods = apply_exclusions(methods, exclude)
  methods = apply_aliases(methods, aliases)
end