active_poro 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3286adee5f545522ce345124881eef5115a971c7
4
- data.tar.gz: ae3738aa15aa080e96b0007f7795d84078aafd07
3
+ metadata.gz: 3c293f42fa865f7c17c588467950d0f20e7b225d
4
+ data.tar.gz: c8dad835f22660be2f81ebb56d8c9df423e05a95
5
5
  SHA512:
6
- metadata.gz: ec03afae6e91b65a42848405c2b65fb07a7e01b862b8131613f690f4eb67c7aa08c9c882c579f2cdcf99353f7afcb56b51c133902aa54f9e7a7a620f54b85915
7
- data.tar.gz: fa60eedcaee6d2753a1ca749744cfbcb461808d97b3964ee2c90764d127a5dbf36175753143ff5389fc8c917734ad4858984622ea37e481d1c9c7beb6e313c62
6
+ metadata.gz: a88a7027aaebd2f5192c129d21883245ac0a2ee2414841efd449de69f86a88de0a8ad99c02ba74a8f4f81cb51e5e533950fe4074f09bec8deabc78586d876eae
7
+ data.tar.gz: 24c5e384586c98f5099f2d184075240e067fe052de54d44564df3450301e1bc15ccbb5984afa32931cc04251b02d07efc599dff11a6fed9b8548cfc4569c2c92
@@ -40,6 +40,17 @@ module ActivePoro
40
40
 
41
41
  end
42
42
  end
43
+
44
+ # define the "add_<name>" method
45
+ define_method "add_#{target_name.to_s.singularize}" do |member|
46
+ send("#{target_name}=", (send(target_name) + [member]).uniq)
47
+ end
48
+
49
+ # define the "remove_<name>" method
50
+ define_method "remove_#{target_name.to_s.singularize}" do |member|
51
+ send("#{target_name}=", (send(target_name) - [member]).uniq)
52
+ end
53
+
43
54
  end
44
55
 
45
56
  def has_one(target_name)
@@ -1,3 +1,3 @@
1
1
  module ActivePoro
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -32,7 +32,7 @@ describe 'ActivePoro' do
32
32
  end
33
33
 
34
34
  it 'associates the driver to the car and viceversa' do
35
- driver.car = car
35
+ car.driver = driver
36
36
  expect(driver.car).to eq(car)
37
37
  expect(car.driver).to eq(driver)
38
38
  end
@@ -87,9 +87,31 @@ describe 'ActivePoro' do
87
87
 
88
88
  it 'correctly sets the right dog to each flea' do
89
89
  dog_with_fleas.fleas.each do |flea|
90
- expect(flea.dog).to eq(big_dog)
90
+ expect(flea.dog).to eq(dog_with_fleas)
91
91
  end
92
92
  end
93
+
94
+ it 'has a mathod for adding and removing fleas' do
95
+ expect(big_dog).to respond_to :add_flea
96
+ expect(big_dog).to respond_to :remove_flea
97
+ end
98
+
99
+ it 'can be add more fleas to it via #add_flea' do
100
+ big_dog.add_flea flea_a
101
+ expect(big_dog.fleas).to eq([flea_a])
102
+
103
+ big_dog.add_flea flea_b
104
+ expect(big_dog.fleas).to eq([flea_a, flea_b])
105
+ end
106
+
107
+ it 'can be removed more fleas from it via #remove_flea' do
108
+ dog_with_fleas.remove_flea(flea_a)
109
+ expect(dog_with_fleas.fleas).to eq([flea_b])
110
+
111
+ dog_with_fleas.remove_flea(flea_b)
112
+ expect(dog_with_fleas.fleas).to eq([])
113
+ end
114
+
93
115
  end
94
116
 
95
117
  context 'when fleas jump onto big_dog' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_poro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Diaz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-05 00:00:00.000000000 Z
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler