class Fabrik::Dictionary

Public Class Methods

new() click to toggle source
# File lib/fabrik/dictionary.rb, line 6
def initialize
  @pairs = Set.new
end

Public Instance Methods

add(pair) click to toggle source
# File lib/fabrik/dictionary.rb, line 10
def add(pair)
  @pairs.add(pair)
end
apply_aliases(methods, aliases) click to toggle source
# 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) click to toggle source
# File lib/fabrik/dictionary.rb, line 28
def apply_exclusions(methods, exclusions)
  methods.select do |name, _|
    !exclusions.include?(name)
  end
end
method_map(opts = {}) click to toggle source
# 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