meshx-plugin-sdk 0.0.5 → 0.0.7

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/meshx-plugin-sdk.rb +60 -22
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b7f873b512044fcb4cf10fec351fbd9ed33fb8cb78a73462e1bbeeca064c1f4
4
- data.tar.gz: d26600272a4f29c4ab678fcef25a38239baa9d10db070185183692ed11aecbb1
3
+ metadata.gz: b3bf6ecabe26119c0568758141559606b088d74e870ea8a6c12833c54f5e4111
4
+ data.tar.gz: ba9b2f28d78e312bfe386e4498b736fdf79956564d180400026b6fc2ac0d41ff
5
5
  SHA512:
6
- metadata.gz: 4b4e9dc7bb143f98b7f64a811cd50e52f951847c048e78e36b8bb5a7acb448ffa5e4bd5576000b33f0c1b2b1f2eea58a63cb509ae4b0e14ff1d2cc0466bfbf88
7
- data.tar.gz: 49cad0a0b6a1640f149a57ab65e09c1a4fc64bc909ecddd4206df57126c8655b31608ea7df5adaa4a00acadf6284c088806d2c0b1320bfe1841dbe8c5e187dd6
6
+ metadata.gz: 347573dfea28927e4d53f8301a138a352fd94d18a611e30fed3587f13e45e7de2eea93fbfc2b52ad8c6a14300b144ac7f1b64d9dae00acf7361415e4def02675
7
+ data.tar.gz: 5ec0f0bfc776a00c00f5c52e2786270df76007bbe10b506bca6c5cf16316cdc4d3a2c259f9cc0ecdbd268ff94c06182942ed90b3f948a2e6b275b878ab2009b2
@@ -121,33 +121,63 @@ class Controller
121
121
  @plugin = Plugin.new(@api, @log, @config)
122
122
  end
123
123
 
124
+ def valid_json?(json)
125
+ JSON.parse(json)
126
+ true
127
+ rescue JSON::ParserError, TypeError => e
128
+ false
129
+ end
130
+
124
131
  def run()
132
+
133
+ begin
134
+ @log.info("calling on_init()")
135
+ @plugin.on_init()
136
+ rescue StandardError => e
137
+ @log.error("error calling on_init(): #{e.message}")
138
+ end
139
+
140
+ begin
141
+ @log.info("calling on_start()")
142
+ @plugin.on_start()
143
+ rescue StandardError => e
144
+ @log.error("error calling on_start(): #{e.message}")
145
+ end
146
+
125
147
  keep_reading = true
126
148
  @log.info("starting controller loop")
127
149
  while keep_reading
128
- rtn = @api.get_messages()
129
- @log.info("rtn: #{rtn.message} #{rtn.error} #{rtn.exit_code}")
130
- # convert message to fileevent
131
- hash = JSON.parse(rtn.message)
132
- hash["items"].each do |item|
133
- @log.info("message kind: #{item["kind"]}")
134
- case item["kind"]
135
- when "FileEvent"
136
- @log.info("FileEvent")
137
- event = FileEvent.new(item)
138
- @plugin.on_file_event(event)
139
- when "FolderEvent"
140
- @log.info("FolderEvent")
141
- event = FolderEvent.new(item)
142
- @plugin.on_folder_event(event)
143
- when "CompleteEvent"
144
- @log.info("CompleteEvent")
145
- event = CompleteEvent.new(item)
146
- @plugin.on_complete_event(event)
147
- keep_reading = false
150
+ begin
151
+ rtn = @api.get_messages()
152
+ @log.info("rtn: #{rtn.message} #{rtn.error} #{rtn.exit_code}")
153
+ # convert message to fileevent
154
+ if valid_json?(rtn.message)
155
+ hash = JSON.parse()
156
+ hash["items"].each do |item|
157
+ @log.info("message kind: #{item["kind"]}")
158
+ case item["kind"]
159
+ when "FileEvent"
160
+ @log.info("FileEvent")
161
+ event = FileEvent.new(item)
162
+ @plugin.on_file_event(event)
163
+ when "FolderEvent"
164
+ @log.info("FolderEvent")
165
+ event = FolderEvent.new(item)
166
+ @plugin.on_folder_event(event)
167
+ when "CompleteEvent"
168
+ @log.info("CompleteEvent")
169
+ event = CompleteEvent.new(item)
170
+ @plugin.on_complete_event(event)
171
+ keep_reading = false
172
+ else
173
+ @log.info("unknown event kind: #{item["kind"]}")
174
+ end
175
+ end
148
176
  else
149
- @log.info("unknown event kind: #{item["kind"]}")
150
- end
177
+ @log.info("invalid message [#{rtn.message}]")
178
+ end
179
+ rescue Exception => e
180
+ @log.error("error event processing: #{e.message}")
151
181
  end
152
182
  end
153
183
  @log.info("ending controller loop sending complete event")
@@ -155,6 +185,14 @@ class Controller
155
185
  if res2.exit_code != 0
156
186
  @log.error("failed to send complete event: #{res2.error} #{res2.exit_code}")
157
187
  end
188
+
189
+ begin
190
+ @log.info("calling on_end()")
191
+ @plugin.on_end()
192
+ rescue StandardError => e
193
+ @log.error("error calling on_end(): #{e.message}")
194
+ end
195
+
158
196
  end
159
197
  end
160
198
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meshx-plugin-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Meshx