pub_sub_model_sync 0.4.1 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a910b6aaf6b7051bac254fe6ae47a718c52bf963e6226192f3f5e7f32053cca7
4
- data.tar.gz: dae3eb67c4b2aff89864688365c5e73a4328c6e477d3e1e8595ddfee3201e697
3
+ metadata.gz: c0bd383488f8214ca409871adf231319b905f41833b8a9db9c2bc58a9d5a2691
4
+ data.tar.gz: c05ca888a6c085280407f9a1e26fe7552efa1c33f6be7735129ff2f8addd77fc
5
5
  SHA512:
6
- metadata.gz: f74d72720c029d27746a44e870e440458eeb7d09bd4cd3768dd024abe52881c43c1cdb1601344b92e6e8d012e098b72faab592a115692e897d0808e558958fcd
7
- data.tar.gz: e8613ccd802d0e47eca855e5ed216cba50a75d19c0aea0d3171cfede8bb26cad3b0ad7266a1f15f584c274d7aa3458af375594043afb43c179e941847bc49467
6
+ metadata.gz: f8769aee9d08936fd9fd4707e1dd5664c30ccbb6b2b59e386182ac4a0c173b46813df9ca5ccc3a3e3139af4297c160ca5ddb05a555d8f2c1fbb719e7a54384f4
7
+ data.tar.gz: bc25309e3894fd5905d0e3fdc180d93a98cfced77ff006f24d0044f1db717f5b0fa475722126901ec18381d3e4890a2a0ff00f7ecb234405cdad4a1e7049a5fb
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- # 0.4.1 (May 06, 2020)
3
+ # 0.4.1 (May 12, 2020)
4
4
  - chore: improve log messages
5
5
  - feat: do not update model if no changes
6
6
  - feat: skip publisher after updating if no changes
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pub_sub_model_sync (0.4.1)
4
+ pub_sub_model_sync (0.4.2)
5
5
  rails
6
6
 
7
7
  GEM
@@ -122,7 +122,7 @@ GEM
122
122
  concurrent-ruby (~> 1.0)
123
123
  jaro_winkler (1.5.4)
124
124
  jwt (2.2.1)
125
- loofah (2.5.0)
125
+ loofah (2.6.0)
126
126
  crass (~> 1.0.2)
127
127
  nokogiri (>= 1.5.9)
128
128
  mail (2.7.1)
@@ -131,21 +131,21 @@ GEM
131
131
  mimemagic (~> 0.3.2)
132
132
  memoist (0.16.2)
133
133
  method_source (1.0.0)
134
- mimemagic (0.3.4)
134
+ mimemagic (0.3.5)
135
135
  mini_mime (1.0.2)
136
136
  mini_portile2 (2.4.0)
137
137
  minitest (5.14.0)
138
138
  multi_json (1.14.1)
139
139
  multipart-post (2.1.1)
140
140
  nio4r (2.5.2)
141
- nokogiri (1.10.9)
141
+ nokogiri (1.10.10)
142
142
  mini_portile2 (~> 2.4.0)
143
143
  os (1.0.1)
144
144
  parallel (1.19.1)
145
145
  parser (2.7.0.4)
146
146
  ast (~> 2.4.0)
147
147
  public_suffix (4.0.3)
148
- rack (2.2.2)
148
+ rack (2.2.3)
149
149
  rack-test (1.1.0)
150
150
  rack (>= 1.0, < 3)
151
151
  rails (6.0.2.2)
@@ -207,7 +207,7 @@ GEM
207
207
  faraday (~> 0.9)
208
208
  jwt (>= 1.5, < 3.0)
209
209
  multi_json (~> 1.10)
210
- sprockets (4.0.0)
210
+ sprockets (4.0.2)
211
211
  concurrent-ruby (~> 1.0)
212
212
  rack (> 1, < 3)
213
213
  sprockets-rails (3.2.1)
@@ -220,9 +220,9 @@ GEM
220
220
  tzinfo (1.2.7)
221
221
  thread_safe (~> 0.1)
222
222
  unicode-display_width (1.6.1)
223
- websocket-driver (0.7.1)
223
+ websocket-driver (0.7.3)
224
224
  websocket-extensions (>= 0.1.0)
225
- websocket-extensions (0.1.4)
225
+ websocket-extensions (0.1.5)
226
226
  zeitwerk (2.3.0)
227
227
 
228
228
  PLATFORMS
data/README.md CHANGED
@@ -61,6 +61,9 @@ And then execute: $ bundle install
61
61
  ```
62
62
  Note: Publishers do not need todo this
63
63
 
64
+ - Check the service status with:
65
+ ```PubSubModelSync::MessagePublisher.publish_data('Test message', {sample_value: 10}, :create)```
66
+
64
67
  ## Examples
65
68
  ```ruby
66
69
  # App 1 (Publisher)
@@ -153,9 +156,13 @@ Note: Be careful with collision of names
153
156
  ```User.ps_subscriber(action_name)```
154
157
  * action_name (default :create, :sym): can be :create, :update, :destroy
155
158
 
156
- - Inspect all configured subscribers
159
+ - Inspect all configured subscribers
157
160
  ```PubSubModelSync::Config.subscribers```
158
161
 
162
+ - Permit to customize the way to detect if the subscribed model was changed (Only for update action).
163
+ ```.ps_subscriber_changed?(data)```
164
+ By default: ```model.changed?```
165
+
159
166
  ### Publishers
160
167
  - Permit to configure crud publishers
161
168
  ```ps_publish(attrs, actions: nil, as_klass: nil)```
@@ -64,8 +64,7 @@ module PubSubModelSync
64
64
 
65
65
  def ps_register_callback(action, publisher)
66
66
  after_commit(on: action) do |model|
67
- if !(action == :update && previous_changes.empty?) &&
68
- !model.ps_skip_callback?(action)
67
+ unless model.ps_skip_callback?(action)
69
68
  klass = PubSubModelSync::MessagePublisher
70
69
  klass.publish_model(model, action.to_sym, publisher)
71
70
  end
@@ -37,7 +37,7 @@ module PubSubModelSync
37
37
  model.destroy!
38
38
  else
39
39
  populate_model(model, message)
40
- return if action == :update && !model.changed? # skip if no changes
40
+ return if action == :update && !model.ps_subscriber_changed?(message)
41
41
 
42
42
  model.save!
43
43
  end
@@ -59,7 +59,6 @@ module PubSubModelSync
59
59
 
60
60
  def populate_model(model, message)
61
61
  values = message.slice(*attrs)
62
- puts "===========values: #{values.inspect}-------#{message.inspect}"
63
62
  values.each do |attr, value|
64
63
  model.send("#{attr}=", value)
65
64
  end
@@ -6,6 +6,11 @@ module PubSubModelSync
6
6
  base.extend(ClassMethods)
7
7
  end
8
8
 
9
+ # check if model was changed to .save!
10
+ def ps_subscriber_changed?(_data)
11
+ changed?
12
+ end
13
+
9
14
  module ClassMethods
10
15
  def ps_subscribe(attrs, actions: nil, from_klass: name, id: :id)
11
16
  settings = { id: id, from_klass: from_klass }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PubSubModelSync
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pub_sub_model_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-12 00:00:00.000000000 Z
11
+ date: 2020-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -131,7 +131,7 @@ metadata:
131
131
  homepage_uri: https://github.com/owen2345/pub_sub_model_sync
132
132
  source_code_uri: https://github.com/owen2345/pub_sub_model_sync
133
133
  changelog_uri: https://github.com/owen2345/pub_sub_model_sync/blob/master/CHANGELOG.md
134
- post_install_message:
134
+ post_install_message:
135
135
  rdoc_options: []
136
136
  require_paths:
137
137
  - lib
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubygems_version: 3.0.8
150
- signing_key:
150
+ signing_key:
151
151
  specification_version: 4
152
152
  summary: Permit to sync models between apps through pub/sub
153
153
  test_files: []