Module: MicroFactory

Defined in:
lib/micro_factory.rb

Instance Method Summary collapse

Instance Method Details

#factory(klass, attributes) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/micro_factory.rb', line 2

def factory(klass, attributes)
  name        = klass.to_s
  underscored = name.gsub(/([a-z])(::)?([A-Z])/, '\1_\3').downcase

  class_eval("    def build_\#{underscored}(attributes = {})\n      attributes = valid_\#{underscored}_attributes.merge(attributes)\n      \#{name}.new(attributes)\n    end\n\n    def create_\#{underscored}(attributes = {})\n      build_\#{underscored}(attributes).tap {|x| x.save!}\n    end\n\n    def valid_\#{underscored}_attributes\n      \#{attributes.inspect}\n    end\n  END\nend\n", __FILE__, __LINE__ + 1)