dry-types 0.15.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +547 -161
  3. data/LICENSE +17 -17
  4. data/README.md +15 -13
  5. data/dry-types.gemspec +27 -30
  6. data/lib/dry/types/any.rb +23 -12
  7. data/lib/dry/types/array/constructor.rb +32 -0
  8. data/lib/dry/types/array/member.rb +74 -15
  9. data/lib/dry/types/array.rb +18 -2
  10. data/lib/dry/types/builder.rb +118 -22
  11. data/lib/dry/types/builder_methods.rb +46 -16
  12. data/lib/dry/types/coercions/json.rb +43 -7
  13. data/lib/dry/types/coercions/params.rb +117 -32
  14. data/lib/dry/types/coercions.rb +76 -22
  15. data/lib/dry/types/compiler.rb +44 -21
  16. data/lib/dry/types/constrained/coercible.rb +36 -6
  17. data/lib/dry/types/constrained.rb +79 -31
  18. data/lib/dry/types/constraints.rb +18 -4
  19. data/lib/dry/types/constructor/function.rb +216 -0
  20. data/lib/dry/types/constructor/wrapper.rb +94 -0
  21. data/lib/dry/types/constructor.rb +110 -61
  22. data/lib/dry/types/container.rb +6 -1
  23. data/lib/dry/types/core.rb +34 -11
  24. data/lib/dry/types/decorator.rb +38 -17
  25. data/lib/dry/types/default.rb +61 -16
  26. data/lib/dry/types/enum.rb +36 -20
  27. data/lib/dry/types/errors.rb +74 -8
  28. data/lib/dry/types/extensions/maybe.rb +65 -17
  29. data/lib/dry/types/extensions/monads.rb +29 -0
  30. data/lib/dry/types/extensions.rb +7 -1
  31. data/lib/dry/types/fn_container.rb +6 -1
  32. data/lib/dry/types/hash/constructor.rb +17 -4
  33. data/lib/dry/types/hash.rb +32 -20
  34. data/lib/dry/types/inflector.rb +3 -1
  35. data/lib/dry/types/json.rb +18 -16
  36. data/lib/dry/types/lax.rb +75 -0
  37. data/lib/dry/types/map.rb +70 -32
  38. data/lib/dry/types/meta.rb +51 -0
  39. data/lib/dry/types/module.rb +16 -11
  40. data/lib/dry/types/nominal.rb +113 -22
  41. data/lib/dry/types/options.rb +12 -25
  42. data/lib/dry/types/params.rb +39 -25
  43. data/lib/dry/types/predicate_inferrer.rb +238 -0
  44. data/lib/dry/types/predicate_registry.rb +34 -0
  45. data/lib/dry/types/primitive_inferrer.rb +97 -0
  46. data/lib/dry/types/printable.rb +5 -1
  47. data/lib/dry/types/printer.rb +63 -57
  48. data/lib/dry/types/result.rb +29 -3
  49. data/lib/dry/types/schema/key.rb +62 -36
  50. data/lib/dry/types/schema.rb +201 -91
  51. data/lib/dry/types/spec/types.rb +99 -37
  52. data/lib/dry/types/sum.rb +75 -25
  53. data/lib/dry/types/type.rb +49 -0
  54. data/lib/dry/types/version.rb +3 -1
  55. data/lib/dry/types.rb +106 -48
  56. data/lib/dry-types.rb +3 -1
  57. metadata +55 -78
  58. data/.codeclimate.yml +0 -15
  59. data/.gitignore +0 -10
  60. data/.rspec +0 -2
  61. data/.rubocop.yml +0 -43
  62. data/.travis.yml +0 -28
  63. data/.yardopts +0 -5
  64. data/CONTRIBUTING.md +0 -29
  65. data/Gemfile +0 -23
  66. data/Rakefile +0 -20
  67. data/benchmarks/hash_schemas.rb +0 -51
  68. data/lib/dry/types/safe.rb +0 -61
  69. data/log/.gitkeep +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-types
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-22 00:00:00.000000000 Z
11
+ date: 2021-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -25,99 +25,79 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: dry-core
28
+ name: dry-container
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.4'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 0.4.4
33
+ version: '0.3'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: '0.4'
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 0.4.4
40
+ version: '0.3'
47
41
  - !ruby/object:Gem::Dependency
48
- name: dry-inflector
42
+ name: dry-core
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '0.1'
47
+ version: '0.5'
54
48
  - - ">="
55
49
  - !ruby/object:Gem::Version
56
- version: 0.1.2
50
+ version: '0.5'
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
54
  requirements:
61
55
  - - "~>"
62
56
  - !ruby/object:Gem::Version
63
- version: '0.1'
57
+ version: '0.5'
64
58
  - - ">="
65
59
  - !ruby/object:Gem::Version
66
- version: 0.1.2
67
- - !ruby/object:Gem::Dependency
68
- name: dry-container
69
- requirement: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - "~>"
72
- - !ruby/object:Gem::Version
73
- version: '0.3'
74
- type: :runtime
75
- prerelease: false
76
- version_requirements: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - "~>"
79
- - !ruby/object:Gem::Version
80
- version: '0.3'
60
+ version: '0.5'
81
61
  - !ruby/object:Gem::Dependency
82
- name: dry-equalizer
62
+ name: dry-inflector
83
63
  requirement: !ruby/object:Gem::Requirement
84
64
  requirements:
85
65
  - - "~>"
86
66
  - !ruby/object:Gem::Version
87
- version: '0.2'
67
+ version: '0.1'
88
68
  - - ">="
89
69
  - !ruby/object:Gem::Version
90
- version: 0.2.2
70
+ version: 0.1.2
91
71
  type: :runtime
92
72
  prerelease: false
93
73
  version_requirements: !ruby/object:Gem::Requirement
94
74
  requirements:
95
75
  - - "~>"
96
76
  - !ruby/object:Gem::Version
97
- version: '0.2'
77
+ version: '0.1'
98
78
  - - ">="
99
79
  - !ruby/object:Gem::Version
100
- version: 0.2.2
80
+ version: 0.1.2
101
81
  - !ruby/object:Gem::Dependency
102
82
  name: dry-logic
103
83
  requirement: !ruby/object:Gem::Requirement
104
84
  requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- version: '0.5'
108
85
  - - "~>"
109
86
  - !ruby/object:Gem::Version
110
- version: '0.5'
87
+ version: '1.0'
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 1.0.2
111
91
  type: :runtime
112
92
  prerelease: false
113
93
  version_requirements: !ruby/object:Gem::Requirement
114
94
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0.5'
118
95
  - - "~>"
119
96
  - !ruby/object:Gem::Version
120
- version: '0.5'
97
+ version: '1.0'
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 1.0.2
121
101
  - !ruby/object:Gem::Dependency
122
102
  name: bundler
123
103
  requirement: !ruby/object:Gem::Requirement
@@ -133,87 +113,78 @@ dependencies:
133
113
  - !ruby/object:Gem::Version
134
114
  version: '0'
135
115
  - !ruby/object:Gem::Dependency
136
- name: rake
116
+ name: dry-monads
137
117
  requirement: !ruby/object:Gem::Requirement
138
118
  requirements:
139
119
  - - "~>"
140
120
  - !ruby/object:Gem::Version
141
- version: '11.0'
121
+ version: '1.0'
142
122
  type: :development
143
123
  prerelease: false
144
124
  version_requirements: !ruby/object:Gem::Requirement
145
125
  requirements:
146
126
  - - "~>"
147
127
  - !ruby/object:Gem::Version
148
- version: '11.0'
128
+ version: '1.0'
149
129
  - !ruby/object:Gem::Dependency
150
- name: rspec
130
+ name: rake
151
131
  requirement: !ruby/object:Gem::Requirement
152
132
  requirements:
153
- - - "~>"
133
+ - - ">="
154
134
  - !ruby/object:Gem::Version
155
- version: '3.3'
135
+ version: '0'
156
136
  type: :development
157
137
  prerelease: false
158
138
  version_requirements: !ruby/object:Gem::Requirement
159
139
  requirements:
160
- - - "~>"
140
+ - - ">="
161
141
  - !ruby/object:Gem::Version
162
- version: '3.3'
142
+ version: '0'
163
143
  - !ruby/object:Gem::Dependency
164
- name: dry-monads
144
+ name: rspec
165
145
  requirement: !ruby/object:Gem::Requirement
166
146
  requirements:
167
- - - "~>"
147
+ - - ">="
168
148
  - !ruby/object:Gem::Version
169
- version: '0.2'
149
+ version: '0'
170
150
  type: :development
171
151
  prerelease: false
172
152
  version_requirements: !ruby/object:Gem::Requirement
173
153
  requirements:
174
- - - "~>"
154
+ - - ">="
175
155
  - !ruby/object:Gem::Version
176
- version: '0.2'
156
+ version: '0'
177
157
  - !ruby/object:Gem::Dependency
178
158
  name: yard
179
159
  requirement: !ruby/object:Gem::Requirement
180
160
  requirements:
181
- - - "~>"
161
+ - - ">="
182
162
  - !ruby/object:Gem::Version
183
- version: 0.9.5
163
+ version: '0'
184
164
  type: :development
185
165
  prerelease: false
186
166
  version_requirements: !ruby/object:Gem::Requirement
187
167
  requirements:
188
- - - "~>"
168
+ - - ">="
189
169
  - !ruby/object:Gem::Version
190
- version: 0.9.5
170
+ version: '0'
191
171
  description: Type system for Ruby supporting coercions, constraints and complex types
192
- like structs, value objects, enums etc.
172
+ like structs, value objects, enums etc
193
173
  email:
194
174
  - piotr.solnica@gmail.com
195
175
  executables: []
196
176
  extensions: []
197
177
  extra_rdoc_files: []
198
178
  files:
199
- - ".codeclimate.yml"
200
- - ".gitignore"
201
- - ".rspec"
202
- - ".rubocop.yml"
203
- - ".travis.yml"
204
- - ".yardopts"
205
179
  - CHANGELOG.md
206
- - CONTRIBUTING.md
207
- - Gemfile
208
180
  - LICENSE
209
181
  - README.md
210
- - Rakefile
211
- - benchmarks/hash_schemas.rb
212
182
  - dry-types.gemspec
213
183
  - lib/dry-types.rb
214
184
  - lib/dry/types.rb
215
185
  - lib/dry/types/any.rb
216
186
  - lib/dry/types/array.rb
187
+ - lib/dry/types/array/constructor.rb
217
188
  - lib/dry/types/array/member.rb
218
189
  - lib/dry/types/builder.rb
219
190
  - lib/dry/types/builder_methods.rb
@@ -226,6 +197,8 @@ files:
226
197
  - lib/dry/types/constrained/coercible.rb
227
198
  - lib/dry/types/constraints.rb
228
199
  - lib/dry/types/constructor.rb
200
+ - lib/dry/types/constructor/function.rb
201
+ - lib/dry/types/constructor/wrapper.rb
229
202
  - lib/dry/types/container.rb
230
203
  - lib/dry/types/core.rb
231
204
  - lib/dry/types/decorator.rb
@@ -234,28 +207,32 @@ files:
234
207
  - lib/dry/types/errors.rb
235
208
  - lib/dry/types/extensions.rb
236
209
  - lib/dry/types/extensions/maybe.rb
210
+ - lib/dry/types/extensions/monads.rb
237
211
  - lib/dry/types/fn_container.rb
238
212
  - lib/dry/types/hash.rb
239
213
  - lib/dry/types/hash/constructor.rb
240
214
  - lib/dry/types/inflector.rb
241
215
  - lib/dry/types/json.rb
216
+ - lib/dry/types/lax.rb
242
217
  - lib/dry/types/map.rb
218
+ - lib/dry/types/meta.rb
243
219
  - lib/dry/types/module.rb
244
220
  - lib/dry/types/nominal.rb
245
221
  - lib/dry/types/options.rb
246
222
  - lib/dry/types/params.rb
223
+ - lib/dry/types/predicate_inferrer.rb
224
+ - lib/dry/types/predicate_registry.rb
225
+ - lib/dry/types/primitive_inferrer.rb
247
226
  - lib/dry/types/printable.rb
248
227
  - lib/dry/types/printer.rb
249
228
  - lib/dry/types/result.rb
250
- - lib/dry/types/safe.rb
251
229
  - lib/dry/types/schema.rb
252
230
  - lib/dry/types/schema/key.rb
253
231
  - lib/dry/types/spec/types.rb
254
232
  - lib/dry/types/sum.rb
255
233
  - lib/dry/types/type.rb
256
234
  - lib/dry/types/version.rb
257
- - log/.gitkeep
258
- homepage: https://github.com/dry-rb/dry-types
235
+ homepage: https://dry-rb.org/gems/dry-types
259
236
  licenses:
260
237
  - MIT
261
238
  metadata:
@@ -271,16 +248,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
271
248
  requirements:
272
249
  - - ">="
273
250
  - !ruby/object:Gem::Version
274
- version: 2.3.0
251
+ version: 2.5.0
275
252
  required_rubygems_version: !ruby/object:Gem::Requirement
276
253
  requirements:
277
254
  - - ">="
278
255
  - !ruby/object:Gem::Version
279
256
  version: '0'
280
257
  requirements: []
281
- rubygems_version: 3.0.3
258
+ rubygems_version: 3.1.4
282
259
  signing_key:
283
260
  specification_version: 4
284
261
  summary: Type system for Ruby supporting coercions, constraints and complex types
285
- like structs, value objects, enums etc.
262
+ like structs, value objects, enums etc
286
263
  test_files: []
data/.codeclimate.yml DELETED
@@ -1,15 +0,0 @@
1
- version: "2"
2
-
3
- prepare:
4
- fetch:
5
- - url: "https://raw.githubusercontent.com/dry-rb/devtools/master/.rubocop.yml"
6
- path: ".rubocop.yml"
7
-
8
- exclude_patterns:
9
- - "benchmarks/"
10
- - "examples/"
11
- - "spec/"
12
-
13
- plugins:
14
- rubocop:
15
- enabled: true
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- log/
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --color
2
- --require ./spec/spec_helper
data/.rubocop.yml DELETED
@@ -1,43 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.4
3
-
4
- Style/StringLiterals:
5
- Enabled: true
6
- EnforcedStyle: single_quotes
7
-
8
- Style/Alias:
9
- Enabled: false
10
-
11
- Style/LambdaCall:
12
- Enabled: false
13
-
14
- Style/StabbyLambdaParentheses:
15
- Enabled: false
16
-
17
- Layout/MultilineMethodCallIndentation:
18
- Enabled: true
19
- EnforcedStyle: indented
20
-
21
- Metrics/LineLength:
22
- Max: 100
23
-
24
- Metrics/MethodLength:
25
- Max: 22
26
-
27
- Metrics/ClassLength:
28
- Max: 150
29
-
30
- Metrics/AbcSize:
31
- Max: 20
32
-
33
- Metrics/BlockLength:
34
- Enabled: true
35
- Exclude:
36
- - 'spec/**/*_spec.rb'
37
-
38
- Metrics/CyclomaticComplexity:
39
- Enabled: true
40
- Max: 10
41
-
42
- Lint/BooleanSymbol:
43
- Enabled: false
data/.travis.yml DELETED
@@ -1,28 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- sudo: false
4
- bundler_args: --without benchmarks tools
5
- before_script:
6
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
7
- - chmod +x ./cc-test-reporter
8
- - ./cc-test-reporter before-build
9
- after_script:
10
- - "[ -d coverage ] && ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
11
- script:
12
- - bundle exec rake
13
- rvm:
14
- - 2.6.1
15
- - 2.5.3
16
- - 2.4.5
17
- - jruby-9.2.6.0
18
- env:
19
- global:
20
- - COVERAGE=true
21
- notifications:
22
- email: false
23
- webhooks:
24
- urls:
25
- - https://webhooks.gitter.im/e/19098b4253a72c9796db
26
- on_success: change # options: [always|never|change] default: always
27
- on_failure: always # options: [always|never|change] default: always
28
- on_start: false # default: false
data/.yardopts DELETED
@@ -1,5 +0,0 @@
1
- --title 'dry-types'
2
- --markup markdown
3
- --readme README.md
4
- --private
5
- lib/**/*.rb
data/CONTRIBUTING.md DELETED
@@ -1,29 +0,0 @@
1
- # Issue Guidelines
2
-
3
- ## Reporting bugs
4
-
5
- If you found a bug, report an issue and describe what's the expected behavior versus what actually happens. If the bug causes a crash, attach a full backtrace. If possible, a reproduction script showing the problem is highly appreciated.
6
-
7
- ## Reporting feature requests
8
-
9
- Report a feature request **only after discussing it first on [discourse.dry-rb.org](https://discourse.dry-rb.org)** where it was accepted. Please provide a concise description of the feature, don't link to a discussion thread, and instead summarize what was discussed.
10
-
11
- ## Reporting questions, support requests, ideas, concerns etc.
12
-
13
- **PLEASE DON'T** - use [discourse.dry-rb.org](https://discourse.dry-rb.org) instead.
14
-
15
- # Pull Request Guidelines
16
-
17
- A Pull Request will only be accepted if it addresses a specific issue that was reported previously, or fixes typos, mistakes in documentation etc.
18
-
19
- Other requirements:
20
-
21
- 1) Do not open a pull request if you can't provide tests along with it. If you have problems writing tests, ask for help in the related issue.
22
- 2) Follow the style conventions of the surrounding code. In most cases, this is standard ruby style.
23
- 3) Add API documentation if it's a new feature
24
- 4) Update API documentation if it changes an existing feature
25
- 5) Bonus points for sending a PR to [github.com/dry-rb/dry-rb.org](github.com/dry-rb/dry-rb.org) which updates user documentation and guides
26
-
27
- # Asking for help
28
-
29
- If these guidelines aren't helpful, and you're stuck, please post a message on [discourse.dry-rb.org](https://discourse.dry-rb.org).
data/Gemfile DELETED
@@ -1,23 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
-
5
- gemspec
6
-
7
- group :test do
8
- platform :mri do
9
- gem 'simplecov', require: false
10
- end
11
- end
12
-
13
- group :tools do
14
- gem 'pry-byebug', platform: :mri
15
- end
16
-
17
- group :benchmarks do
18
- gem 'benchmark-ips'
19
- gem 'virtus'
20
- gem 'fast_attributes'
21
- gem 'attrio'
22
- gem 'dry-struct'
23
- end
data/Rakefile DELETED
@@ -1,20 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- task :run_specs do
5
- require 'rspec/core'
6
-
7
- types_result = RSpec::Core::Runner.run(['spec/dry'])
8
- RSpec.clear_examples
9
-
10
- Dry::Types.load_extensions(:maybe)
11
- ext_result = RSpec::Core::Runner.run(['spec'])
12
-
13
- exit [types_result, ext_result].max
14
- end
15
-
16
- task default: :run_specs
17
-
18
- require 'yard'
19
- require 'yard/rake/yardoc_task'
20
- YARD::Rake::YardocTask.new(:doc)
@@ -1,51 +0,0 @@
1
- $LOAD_PATH.unshift('lib')
2
-
3
- require 'bundler/setup'
4
- require 'dry-types'
5
-
6
- module SchemaBench
7
- def self.hash_schema(type)
8
- Dry::Types['nominal.hash'].public_send(type,
9
- email: Dry::Types['nominal.string'],
10
- age: Dry::Types['params.integer'],
11
- admin: Dry::Types['params.bool'],
12
- address: Dry::Types['nominal.hash'].public_send(type,
13
- city: Dry::Types['nominal.string'],
14
- street: Dry::Types['nominal.string']
15
- )
16
- )
17
- end
18
-
19
- private_class_method(:hash_schema)
20
-
21
- SCHEMAS =
22
- Dry::Types::Hash
23
- .public_instance_methods(false)
24
- .map { |schema_type| [schema_type, hash_schema(schema_type)] }
25
- .to_h
26
-
27
- INPUT = {
28
- email: 'jane@doe.org',
29
- age: '20',
30
- admin: '1',
31
- address: { city: 'NYC', street: 'Street 1/2' }
32
- }
33
- end
34
-
35
- require 'benchmark/ips'
36
-
37
- Benchmark.ips do |x|
38
- SchemaBench::SCHEMAS.each do |schema_type, schema|
39
- x.report("#{schema_type}#call") do
40
- schema.call(SchemaBench::INPUT)
41
- end
42
- end
43
-
44
- SchemaBench::SCHEMAS.each do |schema_type, schema|
45
- x.report("#{schema_type}#try") do
46
- schema.try(SchemaBench::INPUT)
47
- end
48
- end
49
-
50
- x.compare!
51
- end
@@ -1,61 +0,0 @@
1
- require 'dry/types/decorator'
2
-
3
- module Dry
4
- module Types
5
- class Safe
6
- include Type
7
- include Decorator
8
- include Builder
9
- include Printable
10
- include Dry::Equalizer(:type, inspect: false)
11
-
12
- private :options, :meta
13
-
14
- # @param [Object] input
15
- # @return [Object]
16
- def call(input)
17
- result = try(input)
18
-
19
- if result.respond_to?(:input)
20
- result.input
21
- else
22
- input
23
- end
24
- end
25
- alias_method :[], :call
26
-
27
- # @param [Object] input
28
- # @param [#call,nil] block
29
- # @yieldparam [Failure] failure
30
- # @yieldreturn [Result]
31
- # @return [Result,Logic::Result]
32
- def try(input, &block)
33
- type.try(input, &block)
34
- rescue TypeError, ArgumentError => e
35
- result = failure(input, e.message)
36
- block ? yield(result) : result
37
- end
38
-
39
- # @api public
40
- #
41
- # @see Nominal#to_ast
42
- def to_ast(meta: true)
43
- [:safe, [type.to_ast(meta: meta), EMPTY_HASH]]
44
- end
45
-
46
- # @api public
47
- # @return [Safe]
48
- def safe
49
- self
50
- end
51
-
52
- private
53
-
54
- # @param [Object, Dry::Types::Constructor] response
55
- # @return [Boolean]
56
- def decorate?(response)
57
- super || response.kind_of?(Constructor)
58
- end
59
- end
60
- end
61
- end
data/log/.gitkeep DELETED
File without changes