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)
|