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