Class: Transmogrifier::Engine
- Inherits:
-
Object
- Object
- Transmogrifier::Engine
- Defined in:
- lib/transmogrifier/engine.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add_rule(rule) ⇒ Object
-
#initialize(rules = []) ⇒ Engine
constructor
A new instance of Engine.
- #run(input_hash) ⇒ Object
Constructor Details
#initialize(rules = []) ⇒ Engine
Returns a new instance of Engine.
26 27 28 |
# File 'lib/transmogrifier/engine.rb', line 26 def initialize(rules=[]) @rules = rules end |
Class Method Details
.from_rules_array(rules_array, migrators = []) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/transmogrifier/engine.rb', line 3 def self.from_rules_array(rules_array, migrators=[]) migrator_map = migrators.reduce({}) do |memo, migrator| memo[migrator.name] = migrator memo end new( rules_array.map do |rule| type = rule["type"].capitalize selector = rule["selector"] = [ rule["object"], rule["from"], rule["to"], rule["name"], rule["pattern"], rule["replacement"], retrieve_migrator(rule["migrator"], migrator_map) ].compact Transmogrifier::Rules.const_get(type).new(selector, *) end ) end |
Instance Method Details
#add_rule(rule) ⇒ Object
30 31 32 |
# File 'lib/transmogrifier/engine.rb', line 30 def add_rule(rule) @rules << rule end |
#run(input_hash) ⇒ Object
34 35 36 37 38 |
# File 'lib/transmogrifier/engine.rb', line 34 def run(input_hash) output_hash = input_hash.dup @rules.each { |rule| output_hash = rule.apply!(output_hash) } output_hash end |