daddys_girl 0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/daddys_girl.rb +44 -36
  2. metadata +40 -5
@@ -1,54 +1,62 @@
1
- ActiveRecord::Base.class_eval do
2
- class << self
3
- def symbol
4
- self.name.underscore.to_sym
1
+ module DaddysGirl
2
+ module ActiveRecordModel
3
+ class << self
4
+ def symbol
5
+ self.name.underscore.to_sym
6
+ end
7
+
8
+ def generate(attributes = {})
9
+ FactoryGirl.create(self.symbol, attributes)
10
+ end
11
+
12
+ def generate!(attributes = {})
13
+ FactoryGirl.create(self.symbol, attributes).tap do |obj|
14
+ raise obj.errors.inspect unless obj.errors.empty?
15
+ end
16
+ end
17
+
18
+ def spawn(attributes = {})
19
+ FactoryGirl.build(self.symbol, attributes)
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ ActiveRecord::Base.send(:include, DaddysGirl::ActiveRecordModel) if defined?(ActiveRecord)
26
+
27
+
28
+ module DaddysGirl
29
+ module AssociationModel
30
+ def target_class_symbol
31
+ self.symbol
5
32
  end
6
33
 
7
34
  def generate(attributes = {})
8
- FactoryGirl.create(self.symbol, attributes)
35
+ attributes = attributes.merge(association_attribute)
36
+ FactoryGirl.create(target_class_symbol, attributes)
9
37
  end
10
38
 
11
39
  def generate!(attributes = {})
12
- FactoryGirl.create(self.symbol, attributes).tap do |obj|
40
+ attributes = attributes.merge(association_attribute)
41
+ FactoryGirl.create(target_class_symbol, attributes).tap do |obj|
13
42
  raise obj.errors.inspect unless obj.errors.empty?
14
43
  end
15
44
  end
16
45
 
17
46
  def spawn(attributes = {})
18
- FactoryGirl.build(self.symbol, attributes)
47
+ attributes = attributes.merge(association_attribute)
48
+ FactoryGirl.build(target_class_symbol, attributes)
19
49
  end
20
- end
21
- end
22
-
23
- ActiveRecord::Associations::AssociationProxy.class_eval do
24
- def target_class_symbol
25
- self.symbol
26
- end
27
-
28
- def generate(attributes = {})
29
- attributes = attributes.merge(association_attribute)
30
- FactoryGirl.create(target_class_symbol, attributes)
31
- end
32
50
 
33
- def generate!(attributes = {})
34
- attributes = attributes.merge(association_attribute)
35
- FactoryGirl.create(target_class_symbol, attributes).tap do |obj|
36
- raise obj.errors.inspect unless obj.errors.empty?
51
+ private
52
+ def owner_association
53
+ proxy_reflection.primary_key_name.to_sym
37
54
  end
38
- end
39
-
40
- def spawn(attributes = {})
41
- attributes = attributes.merge(association_attribute)
42
- FactoryGirl.build(target_class_symbol, attributes)
43
- end
44
55
 
45
- private
46
- def owner_association
47
- proxy_reflection.primary_key_name.to_sym
48
- end
49
-
50
- def association_attribute
51
- {owner_association => proxy_owner.id}
56
+ def association_attribute
57
+ {owner_association => proxy_owner.id}
58
+ end
52
59
  end
53
60
  end
54
61
 
62
+ ActiveRecord::Associations::AssociationProxy.send(:include, DaddysGirl::AssocationModel) if defined?(ActiveRecord)
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daddys_girl
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
9
- version: "0.3"
8
+ - 4
9
+ version: "0.4"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kurt Preston
@@ -15,8 +15,43 @@ bindir: bin
15
15
  cert_chain: []
16
16
 
17
17
  date: 2020-03-13 00:00:00 Z
18
- dependencies: []
19
-
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: activerecord
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 7
28
+ segments:
29
+ - 3
30
+ - 0
31
+ version: "3.0"
32
+ - - <=
33
+ - !ruby/object:Gem::Version
34
+ hash: 3
35
+ segments:
36
+ - 3
37
+ - 2
38
+ version: "3.2"
39
+ type: :runtime
40
+ version_requirements: *id001
41
+ - !ruby/object:Gem::Dependency
42
+ name: factory_girl
43
+ prerelease: false
44
+ requirement: &id002 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ hash: 3
50
+ segments:
51
+ - 0
52
+ version: "0"
53
+ type: :runtime
54
+ version_requirements: *id002
20
55
  description: Rubygem to provide object_daddy-like syntax for factory_girl
21
56
  email: development@inventables.com
22
57
  executables: []