active_record-events 2.0.0 → 2.1.0
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 +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
|