shatter-rb 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.husky/commit-msg +5 -0
  3. data/.rubocop.yml +4 -0
  4. data/.ruby-version +1 -1
  5. data/.tool-versions +1 -1
  6. data/Gemfile +0 -2
  7. data/Gemfile.lock +51 -8
  8. data/Guardfile +72 -0
  9. data/README.md +76 -14
  10. data/commitlint.config.js +1 -0
  11. data/example_app/Gemfile +3 -2
  12. data/example_app/Gemfile.lock +9 -16
  13. data/example_app/app/application.rb +4 -0
  14. data/example_app/app/functions/hello_world_function.rb +8 -16
  15. data/example_app/app/service_definition.rb +2 -6
  16. data/example_app/application.rb +4 -2
  17. data/example_app/bin/service +2 -2
  18. data/example_app/config/environment.rb +13 -7
  19. data/example_app/config.ru +8 -0
  20. data/exe/console +1 -1
  21. data/exe/shatter +33 -23
  22. data/lib/shatter/config.rb +14 -4
  23. data/lib/shatter/service/base.rb +28 -35
  24. data/lib/shatter/service/discovery.rb +32 -19
  25. data/lib/shatter/service/function.rb +45 -31
  26. data/lib/shatter/service/response_pool.rb +12 -7
  27. data/lib/shatter/service/service_definition.rb +10 -4
  28. data/lib/shatter/util.rb +21 -5
  29. data/lib/shatter/version.rb +1 -1
  30. data/lib/shatter/web/application.rb +34 -32
  31. data/lib/shatter/web/server.rb +25 -18
  32. data/lib/shatter.rb +59 -11
  33. data/package.json +7 -0
  34. data/templates/Gemfile.template +1 -3
  35. data/templates/application.erb +2 -6
  36. data/templates/config.ru +8 -0
  37. data/templates/environment.rb.erb +9 -8
  38. data/templates/function_definition.ts.erb +5 -0
  39. data/templates/hello_world_function.rb.erb +6 -14
  40. data/templates/service_client.ts.erb +25 -0
  41. data/templates/service_definition.rb.erb +3 -7
  42. data/yarn.lock +1338 -0
  43. metadata +115 -25
  44. data/example_app/bin/console +0 -11
  45. data/lib/shatter/service/function_params.rb +0 -21
  46. data/shatter.gemspec +0 -51
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shatter-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Roos
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-05 00:00:00.000000000 Z
11
+ date: 2023-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rack
14
+ name: concurrent-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '1.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: concurrent-ruby
28
+ name: erb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.1'
33
+ version: 2.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.1'
40
+ version: 2.2.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: zk
42
+ name: puma
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.10'
47
+ version: '6.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.10'
54
+ version: '6.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: puma
56
+ name: rack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '6.0'
61
+ version: '3.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '6.0'
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack-cors
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.1'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: thor
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -81,19 +95,75 @@ dependencies:
81
95
  - !ruby/object:Gem::Version
82
96
  version: 1.2.1
83
97
  - !ruby/object:Gem::Dependency
84
- name: erb
98
+ name: zeitwerk
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: zk
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: 2.2.0
117
+ version: '1.10'
90
118
  type: :runtime
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: 2.2.0
124
+ version: '1.10'
125
+ - !ruby/object:Gem::Dependency
126
+ name: zookeeper
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.5.4
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.5.4
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
97
167
  - !ruby/object:Gem::Dependency
98
168
  name: rake
99
169
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +234,21 @@ dependencies:
164
234
  - - "~>"
165
235
  - !ruby/object:Gem::Version
166
236
  version: 2.16.0
167
- description:
237
+ - !ruby/object:Gem::Dependency
238
+ name: simplecov
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ description:
168
252
  email:
169
253
  - ericroos@hey.com
170
254
  executables:
@@ -173,6 +257,7 @@ executables:
173
257
  extensions: []
174
258
  extra_rdoc_files: []
175
259
  files:
260
+ - ".husky/commit-msg"
176
261
  - ".rspec"
177
262
  - ".rubocop.yml"
178
263
  - ".ruby-version"
@@ -182,16 +267,18 @@ files:
182
267
  - CODE_OF_CONDUCT.md
183
268
  - Gemfile
184
269
  - Gemfile.lock
270
+ - Guardfile
185
271
  - LICENSE.txt
186
272
  - Procfile
187
273
  - README.md
188
274
  - Rakefile
275
+ - commitlint.config.js
189
276
  - example_app/Gemfile
190
277
  - example_app/Gemfile.lock
278
+ - example_app/app/application.rb
191
279
  - example_app/app/functions/hello_world_function.rb
192
280
  - example_app/app/service_definition.rb
193
281
  - example_app/application.rb
194
- - example_app/bin/console
195
282
  - example_app/bin/server
196
283
  - example_app/bin/service
197
284
  - example_app/config.ru
@@ -204,14 +291,13 @@ files:
204
291
  - lib/shatter/service/base.rb
205
292
  - lib/shatter/service/discovery.rb
206
293
  - lib/shatter/service/function.rb
207
- - lib/shatter/service/function_params.rb
208
294
  - lib/shatter/service/response_pool.rb
209
295
  - lib/shatter/service/service_definition.rb
210
296
  - lib/shatter/util.rb
211
297
  - lib/shatter/version.rb
212
298
  - lib/shatter/web/application.rb
213
299
  - lib/shatter/web/server.rb
214
- - shatter.gemspec
300
+ - package.json
215
301
  - sig/shatter.rbs
216
302
  - templates/Gemfile.template
217
303
  - templates/application.erb
@@ -219,8 +305,11 @@ files:
219
305
  - templates/docker-compose.yml
220
306
  - templates/docker-compose.yml.example
221
307
  - templates/environment.rb.erb
308
+ - templates/function_definition.ts.erb
222
309
  - templates/hello_world_function.rb.erb
310
+ - templates/service_client.ts.erb
223
311
  - templates/service_definition.rb.erb
312
+ - yarn.lock
224
313
  homepage: https://rubygems.org/gems/shatter-rb
225
314
  licenses:
226
315
  - MIT
@@ -228,7 +317,8 @@ metadata:
228
317
  homepage_uri: https://rubygems.org/gems/shatter-rb
229
318
  source_code_uri: https://github.com/EricRoos/shatter
230
319
  changelog_uri: https://github.com/EricRoos/shatter/tree/master/CHANGELOG
231
- post_install_message:
320
+ rubygems_mfa_required: 'true'
321
+ post_install_message:
232
322
  rdoc_options: []
233
323
  require_paths:
234
324
  - lib
@@ -243,8 +333,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
333
  - !ruby/object:Gem::Version
244
334
  version: '0'
245
335
  requirements: []
246
- rubygems_version: 3.4.1
247
- signing_key:
336
+ rubygems_version: 3.3.3
337
+ signing_key:
248
338
  specification_version: 4
249
339
  summary: An async first RPC web app server for Ruby
250
340
  test_files: []
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "shatter"
5
- $stdout.sync = true
6
-
7
- require_relative "../config/environment"
8
- require_relative "../application"
9
-
10
- require 'irb'
11
- IRB.start(__FILE__)
@@ -1,21 +0,0 @@
1
- module Shatter
2
- module Service
3
- class FunctionParams < Data
4
-
5
- def self.generate(*args, &block)
6
- args << :uuid
7
-
8
- Data.define(*args) do
9
- def to_typescript
10
- typescript_name = self.class.to_s.split("::").last(2).join
11
- out = <<-HEREDOC.gsub(/^\s+/, "")
12
- type #{typescript_name} {
13
- };
14
- export default #{typescript_name}
15
- HEREDOC
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
data/shatter.gemspec DELETED
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/shatter/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "shatter-rb"
7
- spec.version = Shatter::VERSION
8
- spec.authors = ["Eric Roos"]
9
- spec.email = ["ericroos@hey.com"]
10
-
11
- spec.summary = "An async first RPC web app server for Ruby"
12
- spec.homepage = "https://rubygems.org/gems/shatter-rb"
13
- spec.license = "MIT"
14
- spec.required_ruby_version = ">= 3.1.0"
15
-
16
- #spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
17
-
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/EricRoos/shatter"
20
- spec.metadata["changelog_uri"] = "https://github.com/EricRoos/shatter/tree/master/CHANGELOG"
21
-
22
- # Specify which files should be added to the gem when it is released.
23
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
- spec.files = Dir.chdir(__dir__) do
25
- `git ls-files -z`.split("\x0").reject do |f|
26
- (f == __FILE__) || f.match(%r{\A(?:(?:javascript|bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
27
- end
28
- end
29
- spec.bindir = "exe"
30
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
32
-
33
- # Uncomment to register a new dependency of your gem
34
- # spec.add_dependency "example-gem", "~> 1.0"
35
- spec.add_dependency "rack", "~> 3.0"
36
- spec.add_dependency "concurrent-ruby", "~> 1.1"
37
- spec.add_dependency "zk", "~> 1.10"
38
- spec.add_dependency "puma", "~> 6.0"
39
- spec.add_dependency "thor", "~> 1.2.1"
40
- spec.add_dependency "erb", "~> 2.2.0"
41
- # spec.add_dependency "zookeeper", "~>1.5.4", github: 'EricRoos/zookeeper'
42
-
43
- spec.add_development_dependency "rake", "~> 13.0"
44
- spec.add_development_dependency "rspec", "~> 3.0"
45
- spec.add_development_dependency "rubocop", "~> 1.21"
46
- spec.add_development_dependency "rubocop-rake", "~> 0.6.0"
47
- spec.add_development_dependency "rubocop-rspec", "~> 2.16.0"
48
- # For more information and examples about making a new gem, check out our
49
- # guide at: https://bundler.io/guides/creating_gem.html
50
- #spec.metadata["rubygems_mfa_required"] = "true"
51
- end