Class: Fabrik::Dictionary
- Inherits:
-
Object
- Object
- Fabrik::Dictionary
- Defined in:
- lib/fabrik/dictionary.rb
Instance Method Summary collapse
- #add(pair) ⇒ Object
- #apply_aliases(methods, aliases) ⇒ Object
- #apply_exclusions(methods, exclusions) ⇒ Object
-
#initialize ⇒ Dictionary
constructor
A new instance of Dictionary.
- #method_map(opts = {}) ⇒ Object
Constructor Details
#initialize ⇒ Dictionary
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 |