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 +4 -4
- data/lib/active_poro/relations.rb +11 -0
- data/lib/active_poro/version.rb +1 -1
- data/spec/active_poro_spec.rb +24 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c293f42fa865f7c17c588467950d0f20e7b225d
|
4
|
+
data.tar.gz: c8dad835f22660be2f81ebb56d8c9df423e05a95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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)
|
data/lib/active_poro/version.rb
CHANGED
data/spec/active_poro_spec.rb
CHANGED
@@ -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
|
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(
|
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.
|
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-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|