beaconable 0.2.0 → 0.3.2
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/CHANGELOG.md +21 -0
- data/Gemfile.lock +12 -12
- data/lib/beaconable.rb +4 -4
- data/lib/beaconable/base_beacon.rb +21 -18
- data/lib/beaconable/object_was.rb +1 -1
- data/lib/beaconable/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 153c865ccc03de1488477d0eb93ee548ee5c6f3b1a5c44b36dbea50a7db09b7b
|
4
|
+
data.tar.gz: 3429dff8a84e5dc1a9ef0b51cbed602f6ccf403212906692604a95f0b1c65f1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30986bb6055ac00ac06cf5a2776ab8268dc02c6a87da08f4e917defeda2e279f1722801f05943ea7855668ce48ebab9cb0e1279224337c535aa422fd05f77dde
|
7
|
+
data.tar.gz: 64a9e668e82c15aebd3897c10989614db6e558b11ad4fa06f3f0ff8f687b8ebb35e9dd868ee02c09c39263a0e749c3670ab6f14bad2dae546ecdfacc4b8e9868
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
## 0.3.1 (2020-09-16)
|
2
|
+
|
3
|
+
- Fixes #fire_beacon not to use dirty attributes to check changes
|
4
|
+
|
5
|
+
## 0.3.0 (2020-08-03)
|
6
|
+
|
7
|
+
- Changed ObjectWas initialization to wrap al all the changes for a transaction
|
8
|
+
|
9
|
+
## 0.2.2 (2019-12-16)
|
10
|
+
|
11
|
+
- Added new tests for chained methods
|
12
|
+
- Fixed chained methods
|
13
|
+
|
14
|
+
## 0.2.1 (2019-12-16)
|
15
|
+
|
16
|
+
- Made #field_change, #from and #to public
|
17
|
+
|
18
|
+
## 0.2.0 (2019-12-12)
|
19
|
+
|
20
|
+
- Added new test and fixes styles
|
21
|
+
- Added #field_change, #from, #to
|
data/Gemfile.lock
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
beaconable (0.2
|
4
|
+
beaconable (0.3.2)
|
5
5
|
activerecord (>= 4.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (6.0.
|
11
|
-
activesupport (= 6.0.
|
12
|
-
activerecord (6.0.
|
13
|
-
activemodel (= 6.0.
|
14
|
-
activesupport (= 6.0.
|
15
|
-
activesupport (6.0.
|
10
|
+
activemodel (6.0.2)
|
11
|
+
activesupport (= 6.0.2)
|
12
|
+
activerecord (6.0.2)
|
13
|
+
activemodel (= 6.0.2)
|
14
|
+
activesupport (= 6.0.2)
|
15
|
+
activesupport (6.0.2)
|
16
16
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
17
|
i18n (>= 0.7, < 2)
|
18
18
|
minitest (~> 5.1)
|
19
19
|
tzinfo (~> 1.1)
|
20
|
-
zeitwerk (~> 2.
|
20
|
+
zeitwerk (~> 2.2)
|
21
21
|
ansi (1.5.0)
|
22
22
|
ast (2.4.0)
|
23
23
|
builder (3.2.3)
|
24
24
|
byebug (10.0.2)
|
25
|
-
concurrent-ruby (1.1.
|
26
|
-
i18n (1.
|
25
|
+
concurrent-ruby (1.1.6)
|
26
|
+
i18n (1.8.2)
|
27
27
|
concurrent-ruby (~> 1.0)
|
28
28
|
jaro_winkler (1.5.3)
|
29
29
|
minitest (5.11.3)
|
@@ -47,10 +47,10 @@ GEM
|
|
47
47
|
ruby-progressbar (1.10.1)
|
48
48
|
sqlite3 (1.4.1)
|
49
49
|
thread_safe (0.3.6)
|
50
|
-
tzinfo (1.2.
|
50
|
+
tzinfo (1.2.7)
|
51
51
|
thread_safe (~> 0.1)
|
52
52
|
unicode-display_width (1.6.0)
|
53
|
-
zeitwerk (2.
|
53
|
+
zeitwerk (2.2.2)
|
54
54
|
|
55
55
|
PLATFORMS
|
56
56
|
ruby
|
data/lib/beaconable.rb
CHANGED
@@ -9,18 +9,18 @@ module Beaconable
|
|
9
9
|
extend ActiveSupport::Concern
|
10
10
|
included do
|
11
11
|
before_save :save_for_beacon
|
12
|
+
before_destroy :save_for_beacon
|
12
13
|
after_commit :fire_beacon
|
13
14
|
end
|
14
15
|
|
15
16
|
private
|
16
17
|
|
17
18
|
def save_for_beacon
|
18
|
-
@object_was
|
19
|
+
@object_was ||= ObjectWas.new(self).call
|
19
20
|
end
|
20
21
|
|
21
22
|
def fire_beacon
|
22
|
-
|
23
|
-
|
24
|
-
end
|
23
|
+
"#{self.class.name}Beacon".constantize.new(self, @object_was).call
|
24
|
+
@object_was = nil
|
25
25
|
end
|
26
26
|
end
|
@@ -9,8 +9,29 @@ module Beaconable
|
|
9
9
|
@object_was = object_was
|
10
10
|
end
|
11
11
|
|
12
|
+
def field_changed(field)
|
13
|
+
@field = field
|
14
|
+
@result = field_changed? field
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def from(*values)
|
19
|
+
return self unless @result
|
20
|
+
|
21
|
+
@result = values.include? object_was.send(@field)
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
def to(*values)
|
26
|
+
@result && values.include?(object.send(@field))
|
27
|
+
end
|
28
|
+
|
12
29
|
private
|
13
30
|
|
31
|
+
def destroyed_entry?
|
32
|
+
object.destroyed?
|
33
|
+
end
|
34
|
+
|
14
35
|
def field_changed?(field)
|
15
36
|
object.send(field) != object_was.send(field)
|
16
37
|
end
|
@@ -26,23 +47,5 @@ module Beaconable
|
|
26
47
|
object_was.created_at.nil?
|
27
48
|
end
|
28
49
|
|
29
|
-
def field_changed(field)
|
30
|
-
@field = field
|
31
|
-
@result = field_changed? field
|
32
|
-
self
|
33
|
-
end
|
34
|
-
|
35
|
-
def from(*values)
|
36
|
-
return self if @result == false
|
37
|
-
|
38
|
-
@result = values.include? object_was.send(@field)
|
39
|
-
self
|
40
|
-
end
|
41
|
-
|
42
|
-
def to(*values)
|
43
|
-
return false if @result == false
|
44
|
-
|
45
|
-
values.include? object.send(@field)
|
46
|
-
end
|
47
50
|
end
|
48
51
|
end
|
@@ -10,7 +10,7 @@ module Beaconable
|
|
10
10
|
|
11
11
|
def call
|
12
12
|
hashed_object = {}
|
13
|
-
symbolized_column_names = object.class.column_names.map
|
13
|
+
symbolized_column_names = object.class.column_names.map(&:to_sym)
|
14
14
|
symbolized_column_names.each do |column_name|
|
15
15
|
hashed_object[column_name] = object.send("#{column_name}_was")
|
16
16
|
end
|
data/lib/beaconable/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaconable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerardo Raiden
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -132,6 +132,7 @@ extra_rdoc_files: []
|
|
132
132
|
files:
|
133
133
|
- ".gitignore"
|
134
134
|
- ".travis.yml"
|
135
|
+
- CHANGELOG.md
|
135
136
|
- CODE_OF_CONDUCT.md
|
136
137
|
- Gemfile
|
137
138
|
- Gemfile.lock
|