type_struct 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/type_struct/exceptions.rb +1 -0
- data/lib/type_struct/version.rb +1 -1
- data/lib/type_struct.rb +5 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e71eb2d2e7f2cca02978426927745eef8cecc6b3f091f9418009e7b24c2155f
|
4
|
+
data.tar.gz: de47a1491a131ade2b3e7978e45008176ab10f514658dce5f05e50f0c7af6c80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6fce6b7a938a3aee3f6cee47379243889e8f58b80d2246394e1b629c88956ec1bd162a3afc22f1c9c40faca9562be0cd91b11b07aeb5ccc13a16a8bfed56848
|
7
|
+
data.tar.gz: 3909d8b748d66dd266c7ef24e5693fc2965e2816183f4cfb1c52a30f1993996d24fa3550be7d5d515fa12eda06346d24fa301dc49d196730408e9181b949004b
|
data/README.md
CHANGED
@@ -220,7 +220,7 @@ p Baz.from_hash(qux: [1, 2, false, true]) #=> #<A::Baz qux=[1, 2, false, true]>
|
|
220
220
|
|
221
221
|
## Auto Generator
|
222
222
|
|
223
|
-
```
|
223
|
+
```rb
|
224
224
|
$ echo '{"posts": [{"number":10491,"name":"ksss"}]}' | ruby -r type_struct/generator/json
|
225
225
|
Post = TypeStruct.new(
|
226
226
|
number: Integer,
|
@@ -17,6 +17,7 @@ class TypeStruct
|
|
17
17
|
b = e.backtrace_locations.find do |b|
|
18
18
|
b.absolute_path !~ THIS_LIB_REGEXP
|
19
19
|
end
|
20
|
+
next unless b&.absolute_path
|
20
21
|
pathname = Pathname.new(b.absolute_path)
|
21
22
|
relative_path = if pathname.absolute? && PWD.absolute?
|
22
23
|
pathname.relative_path_from(PWD)
|
data/lib/type_struct/version.rb
CHANGED
data/lib/type_struct.rb
CHANGED
@@ -64,7 +64,11 @@ class TypeStruct
|
|
64
64
|
module ClassMethods
|
65
65
|
def from_hash(arg)
|
66
66
|
unless h = Hash.try_convert(arg)
|
67
|
-
|
67
|
+
begin
|
68
|
+
raise TypeError, "no implicit conversion from #{arg} to Hash"
|
69
|
+
rescue => e
|
70
|
+
raise TypeStruct::MultiTypeError, [e]
|
71
|
+
end
|
68
72
|
end
|
69
73
|
args = {}
|
70
74
|
errors = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: type_struct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Pseudo type system on struct.
|
14
14
|
email:
|
@@ -49,7 +49,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '0'
|
51
51
|
requirements: []
|
52
|
-
rubygems_version: 3.
|
52
|
+
rubygems_version: 3.5.3
|
53
53
|
signing_key:
|
54
54
|
specification_version: 4
|
55
55
|
summary: Pseudo type system on struct.
|