active_poro 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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