wazowski 0.1.3 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fcf7dda546a0d02a581e12ab8bf40c0a0d6b310ba44c9cb101271ce7f925595b
4
- data.tar.gz: 8e6a932872a8904e6529ab440815e16931bbdf687d68bac1ca81d970413f4cae
3
+ metadata.gz: 8f329268161aae6199ad7972370e07f7d911f9219ce95da4fcbdb215fb249952
4
+ data.tar.gz: 68296f99539e85f3e570f35274fd0bb6752fcd021d9da658c5ee5fbff44b18e2
5
5
  SHA512:
6
- metadata.gz: e9a4c20268d878711fac3b3f93c6621791d4ed501c8709c21672c691ccc0d57663e6c53f9aaf8cd5e95eafd8f170cea89bd2eb2f4e8cb008b133b67c9d743757
7
- data.tar.gz: 42867836b24e3b21861e990273e40f9899333d5e4c5374e574f93eb2e0aab1e8c6bc0ee7fce2b0cbb06d55e4174f829a7ea8917faf7f91389ca3621f46b76857
6
+ metadata.gz: 1c90028c39a667afdd8fb9156460df6fc394b10eec48b06bf9361a54958a65a72ed842e6409a85e71b654c82632a5673600f7c5f2da3fa45fa61359ba7d4b83c
7
+ data.tar.gz: 866b270fa71ccb15d2417af5c9acba247ddb329169063d9baf3587e9f35233b6f593e4f44d4713b701b0f4eb0b420532039c219db7c671a782c75137dbfe0897
data/.travis.yml CHANGED
@@ -2,8 +2,8 @@ sudo: false
2
2
  language: ruby
3
3
  cache: bundler
4
4
  rvm:
5
- - 2.5.0
6
- - 2.6.0
5
+ - 2.5.3
6
+ - 2.6.5
7
7
 
8
8
  gemfile:
9
9
  - gemfiles/5.1.gemfile
data/README.md CHANGED
@@ -96,7 +96,7 @@ observable(:name) do
96
96
  end
97
97
  ```
98
98
 
99
- In this case the handler callback will receive no information about changes, even in update.
99
+ In this case the handler callback will receive information about all the changes occurred.
100
100
 
101
101
  You can also observe a model's "presence". Your code will be executed only on create and deletion of the dependant
102
102
  model, but not on updates:
@@ -116,9 +116,9 @@ You can also observe more than one model in one observable, in this case you mus
116
116
 
117
117
  ```ruby
118
118
  observable(:user_sync_to_salesforce) do
119
- depends_on User, :all
119
+ depends_on User, :any
120
120
  depends_on Order, :none
121
- depends_on BillingInfo, :all
121
+ depends_on BillingInfo, :any
122
122
 
123
123
  foo = proc do |obj, event, changes|
124
124
  # reused handler
@@ -214,9 +214,9 @@ class MyObserver < Wazowski::Observer
214
214
  end
215
215
 
216
216
  observable(:user_sync_to_salesforce) do
217
- depends_on User, :all
217
+ depends_on User, :any
218
218
  depends_on Order, :none
219
- depends_on BillingInfo, :all
219
+ depends_on BillingInfo, :any
220
220
 
221
221
  handler(User) { |user|
222
222
  run_only_once { Etl.run(user) }
@@ -55,8 +55,9 @@ module Wazowski
55
55
 
56
56
  before_update do
57
57
  self.class.__wazowski_tracked_any.each do |node_id|
58
- __wazowski_presence_state.push([:update, node_id])
59
- TransactionState.current_state.register_model_changed(self)
58
+ changes.each do |attr, (old_value, _new_value)|
59
+ __wazowski_store_dirty!(attr.to_sym, node_id, :update, old_value)
60
+ end
60
61
  end
61
62
 
62
63
  self.class.__wazowski_tracked_attrs.each do |attr, node_ids|
@@ -139,8 +140,6 @@ module Wazowski
139
140
  info[node_id] << [:insert, self.class, self]
140
141
  when :delete
141
142
  info[node_id] << [:delete, self.class, self]
142
- when :update
143
- info[node_id] << [:update, self.class, self, {}]
144
143
  end
145
144
  end
146
145
  end
@@ -1,3 +1,3 @@
1
1
  module Wazowski
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wazowski
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roger Campos
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-16 00:00:00.000000000 Z
11
+ date: 2020-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord