assistant 0.0.2 → 1.0.0.rc1

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +13 -0
  3. data/.github/PULL_REQUEST_TEMPLATE.md +39 -0
  4. data/.github/dependabot.yml +4 -0
  5. data/.github/workflows/ci.yml +140 -0
  6. data/.github/workflows/docs.yml +64 -0
  7. data/.github/workflows/release.yml +46 -0
  8. data/.gitignore +5 -1
  9. data/.markdownlint.json +6 -0
  10. data/.opencode/.gitignore +4 -0
  11. data/.opencode/opencode.json +13 -0
  12. data/.opencode/skills/create-pr/SKILL.md +138 -0
  13. data/.opencode/skills/ruby-services/SKILL.md +81 -0
  14. data/.rubocop.yml +40 -148
  15. data/.ruby-version +1 -1
  16. data/.yardopts +17 -0
  17. data/CHANGELOG.md +434 -0
  18. data/CONTRIBUTING.md +131 -0
  19. data/Gemfile +10 -0
  20. data/Gemfile.lock +264 -94
  21. data/README.md +125 -16
  22. data/Rakefile +53 -3
  23. data/SECURITY.md +50 -0
  24. data/Steepfile +49 -0
  25. data/_config.yml +87 -0
  26. data/assistant.gemspec +33 -20
  27. data/docs/api-reference.md +264 -0
  28. data/docs/changelog.md +26 -0
  29. data/docs/deprecations.md +86 -0
  30. data/docs/examples/cli-handler.md +17 -0
  31. data/docs/examples/composing-services.md +17 -0
  32. data/docs/examples/execute-callbacks.md +17 -0
  33. data/docs/examples/index.md +29 -0
  34. data/docs/examples/instrumentation-notifier.md +17 -0
  35. data/docs/examples/rails-service.md +17 -0
  36. data/docs/examples/rbs-generator.md +17 -0
  37. data/docs/examples/sidekiq-worker.md +17 -0
  38. data/docs/getting-started.md +136 -0
  39. data/docs/guides/composing-services.md +222 -0
  40. data/docs/guides/index.md +25 -0
  41. data/docs/guides/inputs.md +333 -0
  42. data/docs/guides/logging-and-results.md +202 -0
  43. data/docs/guides/rbs-and-types.md +16 -0
  44. data/docs/guides/validation.md +180 -0
  45. data/docs/index.md +69 -0
  46. data/docs/roadmap.md +33 -0
  47. data/exe/assistant-rbs +7 -0
  48. data/lib/assistant/execute_callbacks.rb +103 -0
  49. data/lib/assistant/execute_callbacks.rbs +30 -0
  50. data/lib/assistant/input_builder/accessors.rb +36 -0
  51. data/lib/assistant/input_builder/accessors.rbs +10 -0
  52. data/lib/assistant/input_builder/default_option.rb +41 -0
  53. data/lib/assistant/input_builder/default_option.rbs +11 -0
  54. data/lib/assistant/input_builder/dsl.rb +37 -0
  55. data/lib/assistant/input_builder/dsl.rbs +12 -0
  56. data/lib/assistant/input_builder/optional_option.rb +45 -0
  57. data/lib/assistant/input_builder/optional_option.rbs +10 -0
  58. data/lib/assistant/input_builder/registry.rb +27 -0
  59. data/lib/assistant/input_builder/registry.rbs +13 -0
  60. data/lib/assistant/input_builder/require_validator.rb +104 -0
  61. data/lib/assistant/input_builder/require_validator.rbs +24 -0
  62. data/lib/assistant/input_builder/type_validator.rb +47 -0
  63. data/lib/assistant/input_builder/type_validator.rbs +18 -0
  64. data/lib/assistant/input_builder.rb +28 -0
  65. data/lib/assistant/input_builder.rbs +15 -0
  66. data/lib/assistant/log_item.rb +75 -17
  67. data/lib/assistant/log_item.rbs +40 -0
  68. data/lib/assistant/log_list.rb +44 -12
  69. data/lib/assistant/log_list.rbs +48 -0
  70. data/lib/assistant/rbs_generator/cli.rb +109 -0
  71. data/lib/assistant/rbs_generator/cli.rbs +24 -0
  72. data/lib/assistant/rbs_generator/renderer.rb +67 -0
  73. data/lib/assistant/rbs_generator/renderer.rbs +11 -0
  74. data/lib/assistant/rbs_generator/writer.rb +65 -0
  75. data/lib/assistant/rbs_generator/writer.rbs +24 -0
  76. data/lib/assistant/rbs_generator.rb +38 -0
  77. data/lib/assistant/rbs_generator.rbs +5 -0
  78. data/lib/assistant/refinements/string_blankness.rb +14 -0
  79. data/lib/assistant/refinements/string_blankness.rbs +6 -0
  80. data/lib/assistant/service.rb +328 -8
  81. data/lib/assistant/service.rbs +86 -0
  82. data/lib/assistant/version.rb +5 -1
  83. data/lib/assistant/version.rbs +5 -0
  84. data/lib/assistant.rb +53 -4
  85. data/lib/assistant.rbs +25 -0
  86. data/mise.toml +6 -0
  87. data/sig/examples/greeter.rbs +14 -0
  88. metadata +128 -112
  89. data/.circleci/config.yml +0 -45
  90. data/.fasterer.yml +0 -19
  91. data/.rspec +0 -3
  92. data/.rubocop_todo.yml +0 -0
@@ -1,5 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Assistant
4
- VERSION = '0.0.2'
4
+ # Semantic version of the `assistant` gem. Follows the semver contract
5
+ # documented in `docs/v1/01-api-surface.md` from 1.0.0 onward.
6
+ #
7
+ # @return [String]
8
+ VERSION = '1.0.0.rc1'
5
9
  end
@@ -0,0 +1,5 @@
1
+ # Type signatures for `lib/assistant/version.rb`. See docs/v1/01-api-surface.md.
2
+
3
+ module Assistant
4
+ VERSION: String
5
+ end
data/lib/assistant.rb CHANGED
@@ -1,10 +1,59 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # Predeclare the namespace shells that multi-segment files
4
+ # (`module Assistant::Refinements::StringBlankness`, etc.) need to exist
5
+ # before they load, and declare the M-S3 instrumentation notifier
6
+ # accessor. Two sibling submodules in one wrapper avoid the
7
+ # `Style/CompactModuleNesting` single-child collapse trigger.
8
+ module Assistant
9
+ # M-S3: frozen no-op default notifier. Identity-compared by
10
+ # `Assistant.notifier=` so callers can detect the unconfigured state
11
+ # if they ever need to. See docs/v1/02-features.md (M-S3) and
12
+ # docs/v1/01-api-surface.md.
13
+ DEFAULT_NOTIFIER = ->(_event, _payload) {}
14
+ DEFAULT_NOTIFIER.freeze
15
+
16
+ # Namespace for the InputBuilder DSL and its submodules. Populated by
17
+ # `lib/assistant/input_builder*.rb`.
18
+ module InputBuilder; end
19
+
20
+ # Namespace for refinements bundled with the gem (`Refinements::*`).
21
+ module Refinements; end
22
+
23
+ @notifier = DEFAULT_NOTIFIER
24
+
25
+ class << self
26
+ # Reader for the configured instrumentation callable. Always returns
27
+ # a callable; returns `DEFAULT_NOTIFIER` when never assigned or when
28
+ # explicitly reset with `Assistant.notifier = nil`.
29
+ attr_reader :notifier
30
+
31
+ # Writer for the instrumentation callable. Accepts any object
32
+ # responding to `#call(event, payload)`, or `nil` to reset to the
33
+ # built-in no-op default. Anything else raises `ArgumentError`
34
+ # immediately so misconfiguration surfaces at boot rather than at
35
+ # the first service run.
36
+ def notifier=(callable)
37
+ @notifier =
38
+ if callable.nil?
39
+ DEFAULT_NOTIFIER
40
+ elsif callable.respond_to?(:call)
41
+ callable
42
+ else
43
+ raise ArgumentError,
44
+ "Assistant.notifier= expected nil or an object responding to #call, got #{callable.inspect}"
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ # Core building blocks for the Assistant gem. Listed alphabetically so the
51
+ # top-level entry point exposes every public constant after a bare
52
+ # `require "assistant"` (M6).
53
+ require 'assistant/execute_callbacks'
54
+ require 'assistant/input_builder'
3
55
  require 'assistant/log_item'
4
56
  require 'assistant/log_list'
57
+ require 'assistant/refinements/string_blankness'
5
58
  require 'assistant/service'
6
59
  require 'assistant/version'
7
-
8
- # Main Assistant lib entry point
9
- module Assistant
10
- end
data/lib/assistant.rbs ADDED
@@ -0,0 +1,25 @@
1
+ # Type signatures for `lib/assistant.rb` — declares the top-level
2
+ # `Assistant` namespace, the empty namespace shells for
3
+ # `Assistant::InputBuilder` and `Assistant::Refinements` that the
4
+ # multi-segment submodule files reopen, and the M-S3 instrumentation
5
+ # notifier accessor. See docs/v1/01-api-surface.md.
6
+
7
+ module Assistant
8
+ # M-S3: instrumentation notifier. The setter accepts any object
9
+ # responding to `#call(event, payload)` or `nil` (reset to default).
10
+ # The contract is documented in docs/v1/01-api-surface.md; we use
11
+ # `untyped` for the setter parameter because the runtime check is
12
+ # `respond_to?(:call)` rather than a structural Proc type.
13
+ DEFAULT_NOTIFIER: ^(Symbol, Hash[Symbol, untyped]) -> void
14
+
15
+ self.@notifier: ^(Symbol, Hash[Symbol, untyped]) -> void
16
+
17
+ def self.notifier: () -> ^(Symbol, Hash[Symbol, untyped]) -> void
18
+ def self.notifier=: (untyped callable) -> ^(Symbol, Hash[Symbol, untyped]) -> void
19
+
20
+ module InputBuilder
21
+ end
22
+
23
+ module Refinements
24
+ end
25
+ end
data/mise.toml ADDED
@@ -0,0 +1,6 @@
1
+ [tools]
2
+ opencode="latest"
3
+ ruby="3.4"
4
+ gh="latest"
5
+ node="latest"
6
+ npm="latest"
@@ -0,0 +1,14 @@
1
+ # Generated by assistant-rbs; do not edit.
2
+
3
+ module Examples
4
+ class Greeter < Assistant::Service
5
+
6
+ def name: () -> String
7
+ def name?: () -> bool
8
+ def age: () -> (Integer | Float)
9
+ def age?: () -> bool
10
+ def nickname: () -> String?
11
+ def nickname?: () -> bool
12
+
13
+ end
14
+ end
metadata CHANGED
@@ -1,301 +1,318 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assistant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ramon Rodrigues
8
- autorequire:
9
- bindir: bin
8
+ bindir: exe
10
9
  cert_chain: []
11
- date: 2023-05-15 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: brakeman
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '5.2'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 5.2.3
23
- type: :development
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '5.2'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 5.2.3
33
12
  - !ruby/object:Gem::Dependency
34
13
  name: bundler
35
14
  requirement: !ruby/object:Gem::Requirement
36
15
  requirements:
37
16
  - - "~>"
38
17
  - !ruby/object:Gem::Version
39
- version: '2.3'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 2.3.19
18
+ version: '4.0'
43
19
  type: :development
44
20
  prerelease: false
45
21
  version_requirements: !ruby/object:Gem::Requirement
46
22
  requirements:
47
23
  - - "~>"
48
24
  - !ruby/object:Gem::Version
49
- version: '2.3'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 2.3.19
25
+ version: '4.0'
53
26
  - !ruby/object:Gem::Dependency
54
27
  name: byebug
55
28
  requirement: !ruby/object:Gem::Requirement
56
29
  requirements:
57
30
  - - "~>"
58
31
  - !ruby/object:Gem::Version
59
- version: '11.1'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 11.1.3
32
+ version: '13.0'
63
33
  type: :development
64
34
  prerelease: false
65
35
  version_requirements: !ruby/object:Gem::Requirement
66
36
  requirements:
67
37
  - - "~>"
68
38
  - !ruby/object:Gem::Version
69
- version: '11.1'
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- version: 11.1.3
39
+ version: '13.0'
73
40
  - !ruby/object:Gem::Dependency
74
41
  name: colorize
75
42
  requirement: !ruby/object:Gem::Requirement
76
43
  requirements:
77
44
  - - "~>"
78
45
  - !ruby/object:Gem::Version
79
- version: 0.8.1
46
+ version: '1.1'
80
47
  type: :development
81
48
  prerelease: false
82
49
  version_requirements: !ruby/object:Gem::Requirement
83
50
  requirements:
84
51
  - - "~>"
85
52
  - !ruby/object:Gem::Version
86
- version: 0.8.1
53
+ version: '1.1'
87
54
  - !ruby/object:Gem::Dependency
88
- name: factory_bot
55
+ name: minitest
89
56
  requirement: !ruby/object:Gem::Requirement
90
57
  requirements:
91
58
  - - "~>"
92
59
  - !ruby/object:Gem::Version
93
- version: '6.2'
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 6.2.1
60
+ version: '6.0'
97
61
  type: :development
98
62
  prerelease: false
99
63
  version_requirements: !ruby/object:Gem::Requirement
100
64
  requirements:
101
65
  - - "~>"
102
66
  - !ruby/object:Gem::Version
103
- version: '6.2'
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: 6.2.1
67
+ version: '6.0'
107
68
  - !ruby/object:Gem::Dependency
108
- name: fasterer
69
+ name: rake
109
70
  requirement: !ruby/object:Gem::Requirement
110
71
  requirements:
111
72
  - - "~>"
112
73
  - !ruby/object:Gem::Version
113
- version: 0.10.1
74
+ version: '13.4'
114
75
  type: :development
115
76
  prerelease: false
116
77
  version_requirements: !ruby/object:Gem::Requirement
117
78
  requirements:
118
79
  - - "~>"
119
80
  - !ruby/object:Gem::Version
120
- version: 0.10.1
81
+ version: '13.4'
121
82
  - !ruby/object:Gem::Dependency
122
- name: rake
83
+ name: rubocop
123
84
  requirement: !ruby/object:Gem::Requirement
124
85
  requirements:
125
86
  - - "~>"
126
87
  - !ruby/object:Gem::Version
127
- version: '13.0'
88
+ version: '1.86'
128
89
  - - ">="
129
90
  - !ruby/object:Gem::Version
130
- version: 13.0.6
91
+ version: 1.86.2
131
92
  type: :development
132
93
  prerelease: false
133
94
  version_requirements: !ruby/object:Gem::Requirement
134
95
  requirements:
135
96
  - - "~>"
136
97
  - !ruby/object:Gem::Version
137
- version: '13.0'
98
+ version: '1.86'
138
99
  - - ">="
139
100
  - !ruby/object:Gem::Version
140
- version: 13.0.6
101
+ version: 1.86.2
141
102
  - !ruby/object:Gem::Dependency
142
- name: rspec
103
+ name: rubocop-minitest
143
104
  requirement: !ruby/object:Gem::Requirement
144
105
  requirements:
145
106
  - - "~>"
146
107
  - !ruby/object:Gem::Version
147
- version: '3.12'
108
+ version: '0.39'
148
109
  type: :development
149
110
  prerelease: false
150
111
  version_requirements: !ruby/object:Gem::Requirement
151
112
  requirements:
152
113
  - - "~>"
153
114
  - !ruby/object:Gem::Version
154
- version: '3.12'
115
+ version: '0.39'
155
116
  - !ruby/object:Gem::Dependency
156
- name: rspec-collection_matchers
157
- requirement: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: '1.2'
162
- type: :development
163
- prerelease: false
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - "~>"
167
- - !ruby/object:Gem::Version
168
- version: '1.2'
169
- - !ruby/object:Gem::Dependency
170
- name: rspec_junit_formatter
117
+ name: rubocop-performance
171
118
  requirement: !ruby/object:Gem::Requirement
172
119
  requirements:
173
120
  - - "~>"
174
121
  - !ruby/object:Gem::Version
175
- version: 0.6.0
122
+ version: '1.26'
176
123
  type: :development
177
124
  prerelease: false
178
125
  version_requirements: !ruby/object:Gem::Requirement
179
126
  requirements:
180
127
  - - "~>"
181
128
  - !ruby/object:Gem::Version
182
- version: 0.6.0
129
+ version: '1.26'
183
130
  - !ruby/object:Gem::Dependency
184
- name: rubocop
131
+ name: rubocop-rake
185
132
  requirement: !ruby/object:Gem::Requirement
186
133
  requirements:
187
134
  - - "~>"
188
135
  - !ruby/object:Gem::Version
189
- version: '1.51'
136
+ version: '0.7'
190
137
  type: :development
191
138
  prerelease: false
192
139
  version_requirements: !ruby/object:Gem::Requirement
193
140
  requirements:
194
141
  - - "~>"
195
142
  - !ruby/object:Gem::Version
196
- version: '1.51'
143
+ version: '0.7'
197
144
  - !ruby/object:Gem::Dependency
198
- name: rubocop-faker
145
+ name: rubocop-style-compact_nesting
199
146
  requirement: !ruby/object:Gem::Requirement
200
147
  requirements:
201
148
  - - "~>"
202
149
  - !ruby/object:Gem::Version
203
- version: '1.1'
150
+ version: '0.1'
204
151
  type: :development
205
152
  prerelease: false
206
153
  version_requirements: !ruby/object:Gem::Requirement
207
154
  requirements:
208
155
  - - "~>"
209
156
  - !ruby/object:Gem::Version
210
- version: '1.1'
157
+ version: '0.1'
211
158
  - !ruby/object:Gem::Dependency
212
- name: rubocop-performance
159
+ name: simplecov
213
160
  requirement: !ruby/object:Gem::Requirement
214
161
  requirements:
215
162
  - - "~>"
216
163
  - !ruby/object:Gem::Version
217
- version: '1.17'
218
- - - ">="
219
- - !ruby/object:Gem::Version
220
- version: 1.17.1
164
+ version: '0.22'
221
165
  type: :development
222
166
  prerelease: false
223
167
  version_requirements: !ruby/object:Gem::Requirement
224
168
  requirements:
225
169
  - - "~>"
226
170
  - !ruby/object:Gem::Version
227
- version: '1.17'
228
- - - ">="
229
- - !ruby/object:Gem::Version
230
- version: 1.17.1
171
+ version: '0.22'
231
172
  - !ruby/object:Gem::Dependency
232
- name: rubocop-rake
173
+ name: steep
233
174
  requirement: !ruby/object:Gem::Requirement
234
175
  requirements:
235
176
  - - "~>"
236
177
  - !ruby/object:Gem::Version
237
- version: 0.6.0
178
+ version: '2.0'
238
179
  type: :development
239
180
  prerelease: false
240
181
  version_requirements: !ruby/object:Gem::Requirement
241
182
  requirements:
242
183
  - - "~>"
243
184
  - !ruby/object:Gem::Version
244
- version: 0.6.0
185
+ version: '2.0'
245
186
  - !ruby/object:Gem::Dependency
246
- name: rubocop-rspec
187
+ name: yard
247
188
  requirement: !ruby/object:Gem::Requirement
248
189
  requirements:
249
190
  - - "~>"
250
191
  - !ruby/object:Gem::Version
251
- version: '2.22'
192
+ version: '0.9'
252
193
  type: :development
253
194
  prerelease: false
254
195
  version_requirements: !ruby/object:Gem::Requirement
255
196
  requirements:
256
197
  - - "~>"
257
198
  - !ruby/object:Gem::Version
258
- version: '2.22'
259
- description: Simple, composable services
199
+ version: '0.9'
200
+ description: |
201
+ Assistant is a tiny, dependency-free Ruby library for writing soft-fail,
202
+ composable service objects. A service declares its inputs, validates
203
+ them, runs its body, and returns a uniform result that always carries
204
+ either a value plus warnings or a list of errors — never raising for
205
+ expected failures. Ships with RBS signatures, a 1.0-frozen public API,
206
+ and zero runtime gem dependencies.
260
207
  email:
261
208
  - cerberus.ramon@gmail.com
262
- executables: []
209
+ executables:
210
+ - assistant-rbs
263
211
  extensions: []
264
212
  extra_rdoc_files: []
265
213
  files:
266
- - ".circleci/config.yml"
267
- - ".fasterer.yml"
214
+ - ".editorconfig"
215
+ - ".github/PULL_REQUEST_TEMPLATE.md"
268
216
  - ".github/dependabot.yml"
217
+ - ".github/workflows/ci.yml"
218
+ - ".github/workflows/docs.yml"
219
+ - ".github/workflows/release.yml"
269
220
  - ".gitignore"
270
- - ".rspec"
221
+ - ".markdownlint.json"
222
+ - ".opencode/.gitignore"
223
+ - ".opencode/opencode.json"
224
+ - ".opencode/skills/create-pr/SKILL.md"
225
+ - ".opencode/skills/ruby-services/SKILL.md"
271
226
  - ".rubocop.yml"
272
- - ".rubocop_todo.yml"
273
227
  - ".ruby-version"
228
+ - ".yardopts"
229
+ - CHANGELOG.md
274
230
  - CODE_OF_CONDUCT.md
231
+ - CONTRIBUTING.md
275
232
  - Gemfile
276
233
  - Gemfile.lock
277
234
  - LICENSE.txt
278
235
  - README.md
279
236
  - Rakefile
237
+ - SECURITY.md
238
+ - Steepfile
239
+ - _config.yml
280
240
  - assistant.gemspec
281
241
  - bin/console
282
242
  - bin/setup
283
243
  - bin/version
244
+ - docs/api-reference.md
245
+ - docs/changelog.md
246
+ - docs/deprecations.md
247
+ - docs/examples/cli-handler.md
248
+ - docs/examples/composing-services.md
249
+ - docs/examples/execute-callbacks.md
250
+ - docs/examples/index.md
251
+ - docs/examples/instrumentation-notifier.md
252
+ - docs/examples/rails-service.md
253
+ - docs/examples/rbs-generator.md
254
+ - docs/examples/sidekiq-worker.md
255
+ - docs/getting-started.md
256
+ - docs/guides/composing-services.md
257
+ - docs/guides/index.md
258
+ - docs/guides/inputs.md
259
+ - docs/guides/logging-and-results.md
260
+ - docs/guides/rbs-and-types.md
261
+ - docs/guides/validation.md
262
+ - docs/index.md
263
+ - docs/roadmap.md
264
+ - exe/assistant-rbs
284
265
  - lib/assistant.rb
266
+ - lib/assistant.rbs
267
+ - lib/assistant/execute_callbacks.rb
268
+ - lib/assistant/execute_callbacks.rbs
269
+ - lib/assistant/input_builder.rb
270
+ - lib/assistant/input_builder.rbs
271
+ - lib/assistant/input_builder/accessors.rb
272
+ - lib/assistant/input_builder/accessors.rbs
273
+ - lib/assistant/input_builder/default_option.rb
274
+ - lib/assistant/input_builder/default_option.rbs
275
+ - lib/assistant/input_builder/dsl.rb
276
+ - lib/assistant/input_builder/dsl.rbs
277
+ - lib/assistant/input_builder/optional_option.rb
278
+ - lib/assistant/input_builder/optional_option.rbs
279
+ - lib/assistant/input_builder/registry.rb
280
+ - lib/assistant/input_builder/registry.rbs
281
+ - lib/assistant/input_builder/require_validator.rb
282
+ - lib/assistant/input_builder/require_validator.rbs
283
+ - lib/assistant/input_builder/type_validator.rb
284
+ - lib/assistant/input_builder/type_validator.rbs
285
285
  - lib/assistant/log_item.rb
286
+ - lib/assistant/log_item.rbs
286
287
  - lib/assistant/log_list.rb
288
+ - lib/assistant/log_list.rbs
289
+ - lib/assistant/rbs_generator.rb
290
+ - lib/assistant/rbs_generator.rbs
291
+ - lib/assistant/rbs_generator/cli.rb
292
+ - lib/assistant/rbs_generator/cli.rbs
293
+ - lib/assistant/rbs_generator/renderer.rb
294
+ - lib/assistant/rbs_generator/renderer.rbs
295
+ - lib/assistant/rbs_generator/writer.rb
296
+ - lib/assistant/rbs_generator/writer.rbs
297
+ - lib/assistant/refinements/string_blankness.rb
298
+ - lib/assistant/refinements/string_blankness.rbs
287
299
  - lib/assistant/service.rb
300
+ - lib/assistant/service.rbs
288
301
  - lib/assistant/version.rb
302
+ - lib/assistant/version.rbs
303
+ - mise.toml
304
+ - sig/examples/greeter.rbs
289
305
  homepage: https://github.com/ramongr/assistant
290
306
  licenses:
291
307
  - MIT
292
308
  metadata:
293
309
  allowed_push_host: https://rubygems.org
294
- changelog_uri: https://github.com/ramongr/assistant/blob/main/CODE_OF_CONDUCT.md
310
+ bug_tracker_uri: https://github.com/ramongr/assistant/issues
311
+ changelog_uri: https://github.com/ramongr/assistant/blob/main/CHANGELOG.md
312
+ documentation_uri: https://rubydoc.info/gems/assistant
295
313
  homepage_uri: https://github.com/ramongr/assistant
296
314
  rubygems_mfa_required: 'true'
297
315
  source_code_uri: https://github.com/ramongr/assistant
298
- post_install_message:
299
316
  rdoc_options: []
300
317
  require_paths:
301
318
  - lib
@@ -303,15 +320,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
303
320
  requirements:
304
321
  - - ">="
305
322
  - !ruby/object:Gem::Version
306
- version: 2.7.6
323
+ version: '3.4'
307
324
  required_rubygems_version: !ruby/object:Gem::Requirement
308
325
  requirements:
309
326
  - - ">="
310
327
  - !ruby/object:Gem::Version
311
328
  version: '0'
312
329
  requirements: []
313
- rubygems_version: 3.1.6
314
- signing_key:
330
+ rubygems_version: 4.0.10
315
331
  specification_version: 4
316
- summary: Simple, soft fail enabled, composable services
332
+ summary: Tiny, dependency-free soft-fail service objects for Ruby
317
333
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,45 +0,0 @@
1
- ---
2
- version: 2.1 # Use 2.1 to enable using orbs and other features.
3
-
4
- commands:
5
- install_ruby_deps:
6
- steps:
7
- - checkout
8
- - ruby/install-deps:
9
- key: gems-v1
10
-
11
- orbs:
12
- ruby: circleci/ruby@2.0.0
13
- executors:
14
- ruby-executor:
15
- working_directory: ~/assistant
16
- docker:
17
- - image: cimg/ruby:2.7.6
18
- jobs:
19
- build-ruby:
20
- executor: ruby-executor
21
- steps:
22
- - install_ruby_deps
23
- ruby-unit-test:
24
- executor: ruby-executor
25
- steps:
26
- - install_ruby_deps
27
- - run:
28
- name: Run Unit Tests
29
- command: bundle exec rspec
30
- rubocop-check:
31
- executor: ruby-executor
32
- steps:
33
- - install_ruby_deps
34
- - ruby/rubocop-check
35
-
36
- workflows:
37
- build_check_and_test:
38
- jobs:
39
- - build-ruby
40
- - ruby-unit-test:
41
- requires:
42
- - build-ruby
43
- - rubocop-check:
44
- requires:
45
- - build-ruby
data/.fasterer.yml DELETED
@@ -1,19 +0,0 @@
1
- speedups:
2
- rescue_vs_respond_to: true
3
- module_eval: true
4
- shuffle_first_vs_sample: true
5
- for_loop_vs_each: true
6
- each_with_index_vs_while: false
7
- map_flatten_vs_flat_map: true
8
- reverse_each_vs_reverse_each: true
9
- select_first_vs_detect: true
10
- select_last_vs_reverse_detect: true
11
- sort_vs_sort_by: true
12
- fetch_with_argument_vs_block: true
13
- keys_each_vs_each_key: true
14
- hash_merge_bang_vs_hash_brackets: true
15
- block_vs_symbol_to_proc: true
16
- proc_call_vs_yield: true
17
- gsub_vs_tr: true
18
- getter_vs_attr_reader: true
19
- setter_vs_attr_writer: true
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop_todo.yml DELETED
File without changes