type_struct 0.8.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 -3
- data/lib/type_struct/exceptions.rb +1 -0
- data/lib/type_struct/union.rb +3 -1
- data/lib/type_struct/version.rb +1 -1
- data/lib/type_struct.rb +5 -1
- metadata +7 -54
- data/.gitignore +0 -9
- data/.travis.yml +0 -8
- data/Gemfile +0 -4
- data/Rakefile +0 -7
- data/type_struct.gemspec +0 -23
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
@@ -1,7 +1,5 @@
|
|
1
1
|
# TypeStruct
|
2
2
|
|
3
|
-
[](https://travis-ci.org/ksss/type_struct)
|
4
|
-
|
5
3
|
Imitating static typed struct.
|
6
4
|
|
7
5
|
All type is checked by `===` method.
|
@@ -222,7 +220,7 @@ p Baz.from_hash(qux: [1, 2, false, true]) #=> #<A::Baz qux=[1, 2, false, true]>
|
|
222
220
|
|
223
221
|
## Auto Generator
|
224
222
|
|
225
|
-
```
|
223
|
+
```rb
|
226
224
|
$ echo '{"posts": [{"number":10491,"name":"ksss"}]}' | ruby -r type_struct/generator/json
|
227
225
|
Post = TypeStruct.new(
|
228
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/union.rb
CHANGED
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,57 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: type_struct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ksss
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rgot
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
11
|
+
date: 2024-04-14 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
55
13
|
description: Pseudo type system on struct.
|
56
14
|
email:
|
57
15
|
- co000ri@gmail.com
|
@@ -59,12 +17,8 @@ executables: []
|
|
59
17
|
extensions: []
|
60
18
|
extra_rdoc_files: []
|
61
19
|
files:
|
62
|
-
- ".gitignore"
|
63
|
-
- ".travis.yml"
|
64
|
-
- Gemfile
|
65
20
|
- LICENSE.txt
|
66
21
|
- README.md
|
67
|
-
- Rakefile
|
68
22
|
- lib/type_struct.rb
|
69
23
|
- lib/type_struct/array_of.rb
|
70
24
|
- lib/type_struct/exceptions.rb
|
@@ -76,12 +30,11 @@ files:
|
|
76
30
|
- lib/type_struct/interface.rb
|
77
31
|
- lib/type_struct/union.rb
|
78
32
|
- lib/type_struct/version.rb
|
79
|
-
- type_struct.gemspec
|
80
33
|
homepage: https://github.com/ksss/type_struct
|
81
34
|
licenses:
|
82
35
|
- MIT
|
83
36
|
metadata: {}
|
84
|
-
post_install_message:
|
37
|
+
post_install_message:
|
85
38
|
rdoc_options: []
|
86
39
|
require_paths:
|
87
40
|
- lib
|
@@ -96,8 +49,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
49
|
- !ruby/object:Gem::Version
|
97
50
|
version: '0'
|
98
51
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
100
|
-
signing_key:
|
52
|
+
rubygems_version: 3.5.3
|
53
|
+
signing_key:
|
101
54
|
specification_version: 4
|
102
55
|
summary: Pseudo type system on struct.
|
103
56
|
test_files: []
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
data/type_struct.gemspec
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'type_struct/version'
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "type_struct"
|
8
|
-
spec.version = TypeStruct::VERSION
|
9
|
-
spec.authors = ["ksss"]
|
10
|
-
spec.email = ["co000ri@gmail.com"]
|
11
|
-
|
12
|
-
spec.summary = %q{Pseudo type system on struct.}
|
13
|
-
spec.description = %q{Pseudo type system on struct.}
|
14
|
-
spec.homepage = "https://github.com/ksss/type_struct"
|
15
|
-
spec.license = "MIT"
|
16
|
-
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{_test.rb}) }
|
18
|
-
spec.require_paths = ["lib"]
|
19
|
-
|
20
|
-
spec.add_development_dependency "bundler"
|
21
|
-
spec.add_development_dependency "rake"
|
22
|
-
spec.add_development_dependency "rgot"
|
23
|
-
end
|