slnky 0.8.3 → 0.9.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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-gemset +1 -0
  3. data/.ruby-version +1 -0
  4. data/bin/slnky +1 -0
  5. data/lib/slnky/cli/command.rb +78 -0
  6. data/lib/slnky/cli/generate.rb +3 -1
  7. data/lib/slnky/cli/service.rb +30 -0
  8. data/lib/slnky/cli.rb +4 -1
  9. data/lib/slnky/command/request.rb +7 -0
  10. data/lib/slnky/command/response.rb +43 -0
  11. data/lib/slnky/command.rb +100 -0
  12. data/lib/slnky/config.rb +69 -0
  13. data/lib/slnky/data.rb +14 -3
  14. data/lib/slnky/generator.rb +44 -18
  15. data/lib/slnky/log.rb +117 -0
  16. data/lib/slnky/service/subscriber.rb +57 -0
  17. data/lib/slnky/service/timer.rb +45 -0
  18. data/lib/slnky/service.rb +58 -96
  19. data/lib/slnky/system.rb +19 -0
  20. data/lib/slnky/template/service/.ruby-version +1 -0
  21. data/lib/slnky/template/service/config/deploy.rb.erb +3 -6
  22. data/lib/slnky/template/service/lib/slnky/NAME/client.rb.erb +11 -0
  23. data/lib/slnky/template/service/lib/slnky/NAME/command.rb.erb +15 -0
  24. data/lib/slnky/template/service/lib/slnky/NAME/mock.rb.erb +11 -0
  25. data/lib/slnky/template/service/lib/slnky/{service/NAME.rb.erb → NAME/service.rb.erb} +7 -4
  26. data/lib/slnky/template/service/lib/slnky/NAME.rb.erb +6 -0
  27. data/lib/slnky/template/service/service-slnky-NAME.erb +2 -2
  28. data/lib/slnky/template/service/spec/slnky/NAME/command_spec.rb.erb +17 -0
  29. data/lib/slnky/template/service/spec/slnky/NAME/service_spec.rb.erb +14 -0
  30. data/lib/slnky/template/service/spec/spec_helper.rb.erb +15 -4
  31. data/lib/slnky/template/service/test/commands/echo.json.erb +11 -0
  32. data/lib/slnky/template/service/test/config.yaml.erb +1 -1
  33. data/lib/slnky/transport.rb +98 -0
  34. data/lib/slnky/version.rb +1 -1
  35. data/lib/slnky.rb +15 -14
  36. data/slnky.gemspec +2 -0
  37. metadata +52 -8
  38. data/lib/slnky/service/exchanges.rb +0 -33
  39. data/lib/slnky/service/periodics.rb +0 -19
  40. data/lib/slnky/service/queues.rb +0 -27
  41. data/lib/slnky/service/subscriptions.rb +0 -27
  42. data/lib/slnky/template/service/spec/slnky/service/NAME_spec.rb.erb +0 -10
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slnky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn Catanzarite
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-28 00:00:00.000000000 Z
11
+ date: 2016-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -150,6 +150,34 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.8.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: docopt
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.5.0
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.5.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: highline
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 1.7.8
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.7.8
153
181
  description: core slnky lib and command line
154
182
  email:
155
183
  - me@shawncatz.com
@@ -160,6 +188,8 @@ extra_rdoc_files: []
160
188
  files:
161
189
  - ".gitignore"
162
190
  - ".rspec"
191
+ - ".ruby-gemset"
192
+ - ".ruby-version"
163
193
  - ".travis.yml"
164
194
  - CODE_OF_CONDUCT.md
165
195
  - Gemfile
@@ -173,22 +203,29 @@ files:
173
203
  - lib/capistrano/tasks/slnky.rake
174
204
  - lib/slnky.rb
175
205
  - lib/slnky/cli.rb
206
+ - lib/slnky/cli/command.rb
176
207
  - lib/slnky/cli/generate.rb
177
208
  - lib/slnky/cli/notify.rb
209
+ - lib/slnky/cli/service.rb
210
+ - lib/slnky/command.rb
211
+ - lib/slnky/command/request.rb
212
+ - lib/slnky/command/response.rb
213
+ - lib/slnky/config.rb
178
214
  - lib/slnky/data.rb
179
215
  - lib/slnky/ext/deep_struct.rb
180
216
  - lib/slnky/generator.rb
181
217
  - lib/slnky/generator/command.rb
182
218
  - lib/slnky/generator/service.rb
219
+ - lib/slnky/log.rb
183
220
  - lib/slnky/message.rb
184
221
  - lib/slnky/service.rb
185
- - lib/slnky/service/exchanges.rb
186
- - lib/slnky/service/periodics.rb
187
- - lib/slnky/service/queues.rb
188
- - lib/slnky/service/subscriptions.rb
222
+ - lib/slnky/service/subscriber.rb
223
+ - lib/slnky/service/timer.rb
224
+ - lib/slnky/system.rb
189
225
  - lib/slnky/template/service/.env.sample
190
226
  - lib/slnky/template/service/.gitignore.erb
191
227
  - lib/slnky/template/service/.rspec
228
+ - lib/slnky/template/service/.ruby-version
192
229
  - lib/slnky/template/service/.travis.yml
193
230
  - lib/slnky/template/service/CODE_OF_CONDUCT.md
194
231
  - lib/slnky/template/service/Capfile
@@ -199,13 +236,20 @@ files:
199
236
  - lib/slnky/template/service/config/deploy/staging.rb
200
237
  - lib/slnky/template/service/deploy.env.erb
201
238
  - lib/slnky/template/service/lib/capistrano/tasks/NAME.rake.erb
202
- - lib/slnky/template/service/lib/slnky/service/NAME.rb.erb
239
+ - lib/slnky/template/service/lib/slnky/NAME.rb.erb
240
+ - lib/slnky/template/service/lib/slnky/NAME/client.rb.erb
241
+ - lib/slnky/template/service/lib/slnky/NAME/command.rb.erb
242
+ - lib/slnky/template/service/lib/slnky/NAME/mock.rb.erb
243
+ - lib/slnky/template/service/lib/slnky/NAME/service.rb.erb
203
244
  - lib/slnky/template/service/log/.keep
204
245
  - lib/slnky/template/service/service-slnky-NAME.erb
205
- - lib/slnky/template/service/spec/slnky/service/NAME_spec.rb.erb
246
+ - lib/slnky/template/service/spec/slnky/NAME/command_spec.rb.erb
247
+ - lib/slnky/template/service/spec/slnky/NAME/service_spec.rb.erb
206
248
  - lib/slnky/template/service/spec/spec_helper.rb.erb
249
+ - lib/slnky/template/service/test/commands/echo.json.erb
207
250
  - lib/slnky/template/service/test/config.yaml.erb
208
251
  - lib/slnky/template/service/test/events/test.json
252
+ - lib/slnky/transport.rb
209
253
  - lib/slnky/version.rb
210
254
  - slnky.gemspec
211
255
  homepage: https://github.com/slnky/slnky-cli
@@ -1,33 +0,0 @@
1
- module Slnky
2
- module Service
3
- class Exchanges
4
- def initialize(channel)
5
- @channel = channel
6
- @exchanges = {}
7
- end
8
-
9
- def create(name, overrides={})
10
- options = {
11
- type: :fanout
12
- }.merge(overrides)
13
- @exchanges[name] =
14
- case options[:type]
15
- when :fanout
16
- @channel.fanout("slnky.#{name}")
17
- else
18
- raise "unknown exchange type: #{options[:type]}"
19
- end
20
- end
21
-
22
- def [](name)
23
- @exchanges["slnky.#{name}"] || @exchanges[name] || raise("no exchange found: #{name}")
24
- end
25
-
26
- def each
27
- @exchanges.each do |name, exchange|
28
- yield name, exchange
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,19 +0,0 @@
1
- module Slnky
2
- module Service
3
- class Periodics
4
- def initialize
5
- @timers = []
6
- end
7
-
8
- def add(seconds, method)
9
- @timers << {seconds: seconds, method: method}
10
- end
11
-
12
- def each
13
- @timers.each do |timer|
14
- yield timer['seconds'], timer['method']
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,27 +0,0 @@
1
- module Slnky
2
- module Service
3
- class Queues
4
- def initialize(channel)
5
- @channel = channel
6
- @queues = {}
7
- end
8
-
9
- def create(name, exchange, overrides={})
10
- options = {
11
- durable: true
12
- }.merge(overrides)
13
- @queues[name] = @channel.queue("service.#{name}.events", options).bind(exchange)
14
- end
15
-
16
- def [](name)
17
- @queues["service.#{name}.events"] || @queues[name] || raise("no queue found: #{name}")
18
- end
19
-
20
- def each
21
- @queues.each do |name, exchange|
22
- yield name, exchange
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- module Slnky
2
- module Service
3
- class Subscriptions
4
- def initialize
5
- @subs = []
6
- end
7
-
8
- def add(name, method)
9
- @subs << {name: name, method: method}
10
- end
11
-
12
- def each
13
- @subs.each do |sub|
14
- yield sub[:name], sub[:method]
15
- end
16
- end
17
-
18
- def for(name)
19
- @subs.each do |sub|
20
- if sub[:name] == name || File.fnmatch(sub[:name], name)
21
- yield sub[:name], sub[:method] if block_given?
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,10 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Slnky::Service::<%= name.capitalize %> do
4
- subject { described_class.new("http://localhost:3000", test_config) }
5
- let(:test_event) { event_load('test')}
6
-
7
- it 'handles event' do
8
- expect(subject.handler(test_event.name, test_event.payload)).to eq(true)
9
- end
10
- end