workmesh 1.0.5 → 1.0.6

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/workmesh.rb +31 -18
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4e93016a2c4975149768794a4084eb3fb2b86af9752278ff780044d6ade7707
4
- data.tar.gz: 81a01ab4e3d12ccab133853f6acd1233b300be0bfed817f74f53bc258224c86c
3
+ metadata.gz: 255b5cf5609d4a94c1a6ddeb7ae7a0cdcc448999c25f7d86e0714d4882ae66dc
4
+ data.tar.gz: ab3bd85f5e3b7c8944c5680a79d3d07be5256b3ce5d36a86abdfe2413d86443c
5
5
  SHA512:
6
- metadata.gz: cd19ed6730ccee45fd47eec84326b34ca506610ebf3cbabadf8cc5da8acc2a15baac5665140122116233c8d0569943983a2be495677e345789fe98407987d3f7
7
- data.tar.gz: b1868444351445b73e1fbe87397873e40a545cb3bd1be2f697cfc9d719fde1800902cd37a63c332f0d05dc00c962e2bbc513d57c4949f6703c69bd5eed5a4f9c
6
+ metadata.gz: 3fd0f3ecac7a857015e3d26670e43e76344ba57569137b198782af8810450d89c214824c0e0f5c7c7548abaaf3753a6ccfef3105edc23888a62f84d34178c73a
7
+ data.tar.gz: e255c8ce3f9bb80090589f29f551bc509ab50e30a4624f9d258ff046c9f5ea626bd109491dfd4f2f6b093deacadfc5d8857dade51f7e86cc2eac614c0c43203c
data/lib/workmesh.rb CHANGED
@@ -82,7 +82,7 @@ module BlackStack
82
82
  attr_accessor :entity_table, :entity_field_id, :entity_field_sort
83
83
  attr_accessor :push_function, :entity_field_push_time, :entity_field_push_success, :entity_field_push_error_description
84
84
  attr_accessor :pull_status_access_point
85
- attr_accessor :pull_function, :enttity_field_pull_time, :entity_field_pull_success, :entity_field_pull_error_description
85
+ attr_accessor :pull_function #, :enttity_field_pull_time, :entity_field_pull_success, :entity_field_pull_error_description
86
86
 
87
87
  def self.descriptor_errors(h)
88
88
  errors = []
@@ -109,14 +109,14 @@ module BlackStack
109
109
  errors << "The key :entity_field_push_error_description is missing" if h[:push_function] && h[:entity_field_push_error_description].nil?
110
110
 
111
111
  # valiudate: if :pull_function exists, the key :pull_status_access_point exists and it is a string
112
- errors << "The key :pull_status_access_point is missing" if h[:pull_function] && h[:pull_status_access_point].nil?
113
- errors << "The key :pull_status_access_point must be an String" unless h[:pull_function].nil? || h[:pull_status_access_point].is_a?(String)
112
+ #errors << "The key :pull_status_access_point is missing" if h[:pull_function] && h[:pull_status_access_point].nil?
113
+ #errors << "The key :pull_status_access_point must be an String" unless h[:pull_function].nil? || h[:pull_status_access_point].is_a?(String)
114
114
  # validate: if :pull_function exists, the key :entity_field_pull_time exists and it is a symbol
115
- errors << "The key :entity_field_pull_time is missing" if h[:pull_function] && h[:entity_field_pull_time].nil?
115
+ #errors << "The key :entity_field_pull_time is missing" if h[:pull_function] && h[:entity_field_pull_time].nil?
116
116
  # validate: if :pull_function exists, the key :entity_field_pull_success exists and it is a symbol
117
- errors << "The key :entity_field_pull_success is missing" if h[:pull_function] && h[:entity_field_pull_success].nil?
117
+ #errors << "The key :entity_field_pull_success is missing" if h[:pull_function] && h[:entity_field_pull_success].nil?
118
118
  # validate: if :pull_function exists, the key :entity_field_pull_error_description exists and it is a symbol
119
- errors << "The key :entity_field_pull_error_description is missing" if h[:pull_function] && h[:entity_field_pull_error_description].nil?
119
+ #errors << "The key :entity_field_pull_error_description is missing" if h[:pull_function] && h[:entity_field_pull_error_description].nil?
120
120
 
121
121
  # return list of errors
122
122
  errors.uniq
@@ -134,9 +134,9 @@ module BlackStack
134
134
  self.entity_field_push_success = h[:entity_field_push_success]
135
135
  self.entity_field_push_error_description = h[:entity_field_push_error_description]
136
136
  self.pull_function = h[:pull_function]
137
- self.enttity_field_pull_time = h[:entity_field_pull_time]
138
- self.entity_field_pull_success = h[:entity_field_pull_success]
139
- self.entity_field_pull_error_description = h[:entity_field_pull_error_description]
137
+ #self.enttity_field_pull_time = h[:entity_field_pull_time]
138
+ #self.entity_field_pull_success = h[:entity_field_pull_success]
139
+ #self.entity_field_pull_error_description = h[:entity_field_pull_error_description]
140
140
  end
141
141
 
142
142
  def to_hash()
@@ -150,18 +150,19 @@ module BlackStack
150
150
  ret[:entity_field_push_success] = self.entity_field_push_success
151
151
  ret[:entity_field_push_error_description] = self.entity_field_push_error_description
152
152
  ret[:pull_function] = self.pull_function
153
- ret[:enttity_field_pull_time] = self.enttity_field_pull_time
154
- ret[:entity_field_pull_success] = self.entity_field_pull_success
155
- ret[:entity_field_pull_error_description] = self.entity_field_pull_error_description
153
+ #ret[:enttity_field_pull_time] = self.enttity_field_pull_time
154
+ #ret[:entity_field_pull_success] = self.entity_field_pull_success
155
+ #ret[:entity_field_pull_error_description] = self.entity_field_pull_error_description
156
156
  ret
157
157
  end
158
158
 
159
159
  # execute the push function of this protocol, and update the push flags
160
- def push(entity, node)
160
+ def push(entity, node, l=nil)
161
+ l = BlackStack::DummyLogger.new(nil) if l.nil?
161
162
  raise 'The push function is not defined' if self.push_function.nil?
162
163
  entity[entity_field_push_time] = now()
163
164
  begin
164
- self.push_function.call(entity, node)
165
+ self.push_function.call(entity, node, l)
165
166
  entity[entity_field_push_success] = true
166
167
  entity[entity_field_push_error_description] = nil
167
168
  entity.save
@@ -171,7 +172,19 @@ module BlackStack
171
172
  entity.save
172
173
  raise e
173
174
  end
174
- end
175
+ end # def push(entity, node, l=nil)
176
+
177
+ # execute the pull function of this protocol, and update the push flags
178
+ def pull(node, l=nil)
179
+ l = BlackStack::DummyLogger.new(nil) if l.nil?
180
+ raise 'The pull function is not defined' if self.pull_function.nil?
181
+ begin
182
+ self.pull_function.call(node, l)
183
+ rescue => e
184
+ raise e
185
+ end
186
+ end # def pull(node, l=nil)
187
+
175
188
  end # class Protocol
176
189
 
177
190
  # stub worker class
@@ -196,8 +209,8 @@ module BlackStack
196
209
  if h[:protocols].is_a?(Array)
197
210
  h[:protocols].each do |protocol|
198
211
  errors << "The key :protocols must be an Array of valid hash descritors of the Protocol class" unless protocol.is_a?(Hash)
199
- protocol_errors = Protocol.descriptor_errors(protocol)
200
- errors << "The key :protocols must be an Array of valid hash descritors of the Protocol class. Errors found are: #{protocol_errors.join('. ')}" unless protocol_errors.length == 0
212
+ z = Protocol.descriptor_errors(protocol)
213
+ errors << "The key :protocols must be an Array of valid hash descritors of the Protocol class (errors: #{z.join('. ')})" unless z.length == 0
201
214
  end
202
215
  end
203
216
  # validate: the key :assignation is nil or it is a symbol belonging the array ASSIGANTIONS
@@ -211,7 +224,7 @@ module BlackStack
211
224
  # setup dispatcher configuration here
212
225
  def initialize(h)
213
226
  errors = BlackStack::Workmesh::Service.descriptor_errors(h)
214
- raise "The worker descriptor is not valid: #{errors.uniq.join(".\n")}" if errors.length > 0
227
+ raise "The service descriptor is not valid: #{errors.uniq.join(".\n")}" if errors.length > 0
215
228
  self.name = h[:name]
216
229
  self.entity_table = h[:entity_table]
217
230
  self.entity_field_assignation = h[:entity_field_assignation]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workmesh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leandro Daniel Sardi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-18 00:00:00.000000000 Z
11
+ date: 2023-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel