shatter-rb 0.0.1 → 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 +53 -17
  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 +103 -41
  44. data/example_app/bin/console +0 -11
  45. data/lib/shatter/service/function_params.rb +0 -21
  46. data/shatter.gemspec +0 -54
metadata CHANGED
@@ -1,127 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shatter-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
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: rackup
28
+ name: erb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.3
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: 0.2.3
40
+ version: 2.2.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: concurrent-ruby
42
+ name: puma
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.1'
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.1'
54
+ version: '6.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: pg
56
+ name: rack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.4'
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: '1.4'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: zk
70
+ name: rack-cors
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.10'
75
+ version: '1.1'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.10'
82
+ version: '1.1'
83
83
  - !ruby/object:Gem::Dependency
84
- name: puma
84
+ name: thor
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '6.0'
89
+ version: 1.2.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '6.0'
96
+ version: 1.2.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: thor
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
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: 1.2.1
117
+ version: '1.10'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: 1.2.1
124
+ version: '1.10'
111
125
  - !ruby/object:Gem::Dependency
112
- name: erb
126
+ name: zookeeper
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 2.2.0
131
+ version: 1.5.4
118
132
  type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 2.2.0
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'
125
167
  - !ruby/object:Gem::Dependency
126
168
  name: rake
127
169
  requirement: !ruby/object:Gem::Requirement
@@ -168,18 +210,32 @@ dependencies:
168
210
  name: rubocop-rake
169
211
  requirement: !ruby/object:Gem::Requirement
170
212
  requirements:
171
- - - ">="
213
+ - - "~>"
172
214
  - !ruby/object:Gem::Version
173
- version: '0'
215
+ version: 0.6.0
174
216
  type: :development
175
217
  prerelease: false
176
218
  version_requirements: !ruby/object:Gem::Requirement
177
219
  requirements:
178
- - - ">="
220
+ - - "~>"
179
221
  - !ruby/object:Gem::Version
180
- version: '0'
222
+ version: 0.6.0
181
223
  - !ruby/object:Gem::Dependency
182
224
  name: rubocop-rspec
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: 2.16.0
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: 2.16.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: simplecov
183
239
  requirement: !ruby/object:Gem::Requirement
184
240
  requirements:
185
241
  - - ">="
@@ -192,7 +248,7 @@ dependencies:
192
248
  - - ">="
193
249
  - !ruby/object:Gem::Version
194
250
  version: '0'
195
- description: Write a longer description or delete this line.
251
+ description:
196
252
  email:
197
253
  - ericroos@hey.com
198
254
  executables:
@@ -201,6 +257,7 @@ executables:
201
257
  extensions: []
202
258
  extra_rdoc_files: []
203
259
  files:
260
+ - ".husky/commit-msg"
204
261
  - ".rspec"
205
262
  - ".rubocop.yml"
206
263
  - ".ruby-version"
@@ -210,16 +267,18 @@ files:
210
267
  - CODE_OF_CONDUCT.md
211
268
  - Gemfile
212
269
  - Gemfile.lock
270
+ - Guardfile
213
271
  - LICENSE.txt
214
272
  - Procfile
215
273
  - README.md
216
274
  - Rakefile
275
+ - commitlint.config.js
217
276
  - example_app/Gemfile
218
277
  - example_app/Gemfile.lock
278
+ - example_app/app/application.rb
219
279
  - example_app/app/functions/hello_world_function.rb
220
280
  - example_app/app/service_definition.rb
221
281
  - example_app/application.rb
222
- - example_app/bin/console
223
282
  - example_app/bin/server
224
283
  - example_app/bin/service
225
284
  - example_app/config.ru
@@ -232,14 +291,13 @@ files:
232
291
  - lib/shatter/service/base.rb
233
292
  - lib/shatter/service/discovery.rb
234
293
  - lib/shatter/service/function.rb
235
- - lib/shatter/service/function_params.rb
236
294
  - lib/shatter/service/response_pool.rb
237
295
  - lib/shatter/service/service_definition.rb
238
296
  - lib/shatter/util.rb
239
297
  - lib/shatter/version.rb
240
298
  - lib/shatter/web/application.rb
241
299
  - lib/shatter/web/server.rb
242
- - shatter.gemspec
300
+ - package.json
243
301
  - sig/shatter.rbs
244
302
  - templates/Gemfile.template
245
303
  - templates/application.erb
@@ -247,16 +305,20 @@ files:
247
305
  - templates/docker-compose.yml
248
306
  - templates/docker-compose.yml.example
249
307
  - templates/environment.rb.erb
308
+ - templates/function_definition.ts.erb
250
309
  - templates/hello_world_function.rb.erb
310
+ - templates/service_client.ts.erb
251
311
  - templates/service_definition.rb.erb
252
- homepage: https://rubygems.org/gems/shatter
312
+ - yarn.lock
313
+ homepage: https://rubygems.org/gems/shatter-rb
253
314
  licenses:
254
315
  - MIT
255
316
  metadata:
256
- homepage_uri: https://rubygems.org/gems/shatter
317
+ homepage_uri: https://rubygems.org/gems/shatter-rb
257
318
  source_code_uri: https://github.com/EricRoos/shatter
258
319
  changelog_uri: https://github.com/EricRoos/shatter/tree/master/CHANGELOG
259
- post_install_message:
320
+ rubygems_mfa_required: 'true'
321
+ post_install_message:
260
322
  rdoc_options: []
261
323
  require_paths:
262
324
  - lib
@@ -271,8 +333,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
333
  - !ruby/object:Gem::Version
272
334
  version: '0'
273
335
  requirements: []
274
- rubygems_version: 3.4.1
275
- signing_key:
336
+ rubygems_version: 3.3.3
337
+ signing_key:
276
338
  specification_version: 4
277
- summary: Write a short summary, because RubyGems requires one.
339
+ summary: An async first RPC web app server for Ruby
278
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,54 +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 = "Write a short summary, because RubyGems requires one."
12
- spec.description = "Write a longer description or delete this line."
13
- spec.homepage = "https://rubygems.org/gems/shatter"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = ">= 3.1.0"
16
-
17
- #spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
18
-
19
- spec.metadata["homepage_uri"] = spec.homepage
20
- spec.metadata["source_code_uri"] = "https://github.com/EricRoos/shatter"
21
- spec.metadata["changelog_uri"] = "https://github.com/EricRoos/shatter/tree/master/CHANGELOG"
22
-
23
- # Specify which files should be added to the gem when it is released.
24
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
25
- spec.files = Dir.chdir(__dir__) do
26
- `git ls-files -z`.split("\x0").reject do |f|
27
- (f == __FILE__) || f.match(%r{\A(?:(?:javascript|bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
28
- end
29
- end
30
- spec.bindir = "exe"
31
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
- spec.require_paths = ["lib"]
33
-
34
- # Uncomment to register a new dependency of your gem
35
- # spec.add_dependency "example-gem", "~> 1.0"
36
- spec.add_dependency "rack", "~> 3.0"
37
- spec.add_dependency "rackup", "~> 0.2.3"
38
- spec.add_dependency "concurrent-ruby", "~> 1.1"
39
- spec.add_dependency "pg", "~> 1.4"
40
- spec.add_dependency "zk", "~> 1.10"
41
- spec.add_dependency "puma", "~> 6.0"
42
- spec.add_dependency "thor", "~> 1.2.1"
43
- spec.add_dependency "erb", "~> 2.2.0"
44
- # spec.add_dependency "zookeeper", "~>1.5.4", github: 'EricRoos/zookeeper'
45
-
46
- spec.add_development_dependency "rake", "~> 13.0"
47
- spec.add_development_dependency "rspec", "~> 3.0"
48
- spec.add_development_dependency "rubocop", "~> 1.21"
49
- spec.add_development_dependency "rubocop-rake"
50
- spec.add_development_dependency "rubocop-rspec"
51
- # For more information and examples about making a new gem, check out our
52
- # guide at: https://bundler.io/guides/creating_gem.html
53
- #spec.metadata["rubygems_mfa_required"] = "true"
54
- end