active_record-events 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +7 -3
- data/lib/active_record/events.rb +4 -0
- data/lib/active_record/events/naming.rb +4 -0
- data/lib/active_record/events/version.rb +1 -1
- data/spec/active_record/events/naming_spec.rb +8 -0
- data/spec/active_record/events_spec.rb +4 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YWIyMzk2ODkyNDRlMGE2ZjA0ZmNhOGM1YmM5YjVjYjQ2ZWM0NmVhMQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTAyZGNhYTU5NTcxOWE1OTM3NTg2YmMzZjA2OGEwNzBjN2U5YjJlZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTUyZDQxYzdhOGIwMTU1ZGE3MGI3NDAwNzM4ZDEwMjE1YzVmNjA5MGFhN2Jm
|
10
|
+
M2UxZGQxMmRmYzU3MjVlNGY4ZWY0ODdjZmE0MzQ5OGEyMzY3N2U3NjIyODYx
|
11
|
+
OTVmNTRmYjhiMjYyNTIzZDIwYTQxZjdmODkzMTI4MWVkM2RjODU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YjYxMzgyNmExNmQxNjI1Y2VmZTgzNTNjOGVkN2M1Y2MzODAyZWIyN2NlMWI2
|
14
|
+
MmNiMjQyYmQ1MGJlYjk5NDYwMzAxZGQxZTMwZDMwNGUxMzY3MzY4NTM3MDhh
|
15
|
+
ZjliZGY3MzZmZjU5MzVjMjVkYWUwMWVjMWE2NTdjYjQ5ZTBlYjI=
|
data/README.md
CHANGED
@@ -31,12 +31,16 @@ Consider a `Task` model with a `completed_at` field and the following methods:
|
|
31
31
|
|
32
32
|
```ruby
|
33
33
|
class Task < ActiveRecord::Base
|
34
|
+
def not_completed?
|
35
|
+
!completed?
|
36
|
+
end
|
37
|
+
|
34
38
|
def completed?
|
35
39
|
completed_at.present?
|
36
40
|
end
|
37
41
|
|
38
42
|
def complete
|
39
|
-
complete!
|
43
|
+
complete! if not_completed?
|
40
44
|
end
|
41
45
|
|
42
46
|
def complete!
|
@@ -45,7 +49,7 @@ class Task < ActiveRecord::Base
|
|
45
49
|
end
|
46
50
|
```
|
47
51
|
|
48
|
-
Instead of defining these
|
52
|
+
Instead of defining these four methods explicitly, you can use a macro provided by the gem.
|
49
53
|
|
50
54
|
```ruby
|
51
55
|
class Task < ActiveRecord::Base
|
@@ -80,7 +84,7 @@ class User < ActiveRecord::Base
|
|
80
84
|
end
|
81
85
|
```
|
82
86
|
|
83
|
-
This will generate `email_confirmed?`, `confirm_email` and `confirm_email!` methods.
|
87
|
+
This will generate `email_not_confirmed?`, `email_confirmed?`, `confirm_email` and `confirm_email!` methods.
|
84
88
|
|
85
89
|
## See also
|
86
90
|
|
data/lib/active_record/events.rb
CHANGED
@@ -12,6 +12,10 @@ RSpec.describe ActiveRecord::Events::Naming do
|
|
12
12
|
expect(subject.predicate).to eq('completed')
|
13
13
|
end
|
14
14
|
|
15
|
+
it 'generates an inverse predicate name' do
|
16
|
+
expect(subject.inverse_predicate).to eq('not_completed')
|
17
|
+
end
|
18
|
+
|
15
19
|
it 'generates an action name' do
|
16
20
|
expect(subject.action).to eq('complete')
|
17
21
|
end
|
@@ -36,6 +40,10 @@ RSpec.describe ActiveRecord::Events::Naming do
|
|
36
40
|
expect(subject.predicate).to eq('email_confirmed')
|
37
41
|
end
|
38
42
|
|
43
|
+
it 'generates an inverse predicate name' do
|
44
|
+
expect(subject.inverse_predicate).to eq('email_not_confirmed')
|
45
|
+
end
|
46
|
+
|
39
47
|
it 'generates an action name' do
|
40
48
|
expect(subject.action).to eq('confirm_email')
|
41
49
|
end
|
@@ -7,6 +7,8 @@ RSpec.describe ActiveRecord::Events do
|
|
7
7
|
task.complete
|
8
8
|
|
9
9
|
expect(task).to be_completed
|
10
|
+
expect(task).not_to be_not_completed
|
11
|
+
|
10
12
|
expect(task.completed_at).to eq(Time.now)
|
11
13
|
end
|
12
14
|
|
@@ -33,6 +35,8 @@ RSpec.describe ActiveRecord::Events do
|
|
33
35
|
|
34
36
|
it 'handles an object' do
|
35
37
|
user.confirm_email
|
38
|
+
|
36
39
|
expect(user.email_confirmed?).to be(true)
|
40
|
+
expect(user.email_not_confirmed?).to be(false)
|
37
41
|
end
|
38
42
|
end
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|