u-struct 1.0.0 → 2.0.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +62 -17
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +137 -0
  5. data/.rubocop_todo.yml +10 -0
  6. data/.tool-versions +1 -0
  7. data/Appraisals +84 -0
  8. data/CHANGELOG.md +101 -47
  9. data/CLAUDE.md +144 -0
  10. data/Gemfile +20 -3
  11. data/README.md +187 -72
  12. data/Rakefile +35 -5
  13. data/bin/console +3 -3
  14. data/bin/matrix +16 -0
  15. data/bin/setup +4 -0
  16. data/bin/tapioca +28 -0
  17. data/examples/rgb/number.rb +1 -1
  18. data/examples/rgb_1.rb +3 -3
  19. data/examples/rgb_2.rb +2 -2
  20. data/examples/rgb_3.rb +1 -1
  21. data/lib/micro/struct/factory/create_struct.rb +12 -5
  22. data/lib/micro/struct/factory/members.rb +1 -0
  23. data/lib/micro/struct/factory.rb +10 -5
  24. data/lib/micro/struct/features.rb +18 -23
  25. data/lib/micro/struct/normalize_names.rb +4 -3
  26. data/lib/micro/struct/version.rb +2 -1
  27. data/lib/micro/struct.rb +32 -5
  28. data/lib/u-struct.rb +2 -0
  29. data/rbi/micro/struct/factory/create_struct.rbi +60 -0
  30. data/rbi/micro/struct/factory/members.rbi +67 -0
  31. data/rbi/micro/struct/factory.rbi +41 -0
  32. data/rbi/micro/struct/features.rbi +41 -0
  33. data/rbi/micro/struct/normalize_names.rbi +20 -0
  34. data/rbi/micro/struct/version.rbi +3 -0
  35. data/rbi/micro/struct.rbi +68 -0
  36. data/sorbet/config +8 -0
  37. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  38. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  39. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +11 -0
  40. data/sorbet/rbi/gems/docile@1.4.0.rbi +54 -0
  41. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  42. data/sorbet/rbi/gems/minitest@5.15.0.rbi +345 -0
  43. data/sorbet/rbi/gems/parser@3.1.0.0.rbi +1196 -0
  44. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  45. data/sorbet/rbi/gems/rake@13.0.6.rbi +806 -0
  46. data/sorbet/rbi/gems/rbi@0.0.9.rbi +1602 -0
  47. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +89 -0
  48. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +577 -0
  49. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi +8 -0
  50. data/sorbet/rbi/gems/spoom@1.1.8.rbi +1252 -0
  51. data/sorbet/rbi/gems/tapioca@0.6.2.rbi +1232 -0
  52. data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
  53. data/sorbet/rbi/gems/unparser@0.6.3.rbi +8 -0
  54. data/sorbet/rbi/gems/webrick@1.7.0.rbi +601 -0
  55. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +199 -0
  56. data/sorbet/rbi/gems/yard@0.9.27.rbi +4112 -0
  57. data/sorbet/tapioca/config.yml +13 -0
  58. data/sorbet/tapioca/require.rb +4 -0
  59. data/u-struct.gemspec +9 -9
  60. metadata +60 -14
  61. data/.vscode/settings.json +0 -8
  62. data/bin/prepare_coverage +0 -27
  63. data/bin/test +0 -8
@@ -0,0 +1,13 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ # exclude:
5
+ # - gem_name
6
+ # doc: true
7
+ # workers: 5
8
+ dsl:
9
+ # Add your `dsl` command parameters here:
10
+ #
11
+ # exclude:
12
+ # - SomeGeneratorName
13
+ # workers: 5
@@ -0,0 +1,4 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ # Add your extra requires here (`bin/tapioca require` can be used to boostrap this list)
data/u-struct.gemspec CHANGED
@@ -8,29 +8,29 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ['Rodrigo Serradura']
9
9
  spec.email = ['rodrigo.serradura@gmail.com']
10
10
 
11
- spec.summary = %q{Create powered Ruby structs.}
12
- spec.description = %q{Create powered Ruby structs.}
13
- spec.homepage = 'https://github.com/serradura/u-struct'
11
+ spec.summary = 'Create powered Ruby structs.'
12
+ spec.description = 'Create powered Ruby structs.'
13
+ spec.homepage = 'https://github.com/u-gems/u-struct'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = '>= 2.2.0'
15
+ spec.required_ruby_version = '>= 2.7.0'
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
- spec.metadata['source_code_uri'] = 'https://github.com/serradura/u-struct'
19
- spec.metadata['changelog_uri'] = 'https://github.com/serradura/u-struct/blob/main/CHANGELOG.md'
18
+ spec.metadata['source_code_uri'] = 'https://github.com/u-gems/u-struct'
19
+ spec.metadata['changelog_uri'] = 'https://github.com/u-gems/u-struct/blob/main/CHANGELOG.md'
20
+ spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues"
20
21
 
21
22
  # Specify which files should be added to the gem when it is released.
22
23
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
25
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
26
  end
26
27
  spec.bindir = 'exe'
27
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
28
29
  spec.require_paths = ['lib']
29
30
 
30
- # Uncomment to register a new dependency of your gem
31
-
32
31
  # For more information and examples about making a new gem, checkout our
33
32
  # guide at: https://bundler.io/guides/creating_gem.html
33
+ spec.add_development_dependency 'appraisal', '~> 2.5'
34
34
  spec.add_development_dependency 'bundler'
35
35
  spec.add_development_dependency 'rake', '~> 13.0'
36
36
  end
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: u-struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Serradura
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2022-01-20 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: appraisal
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.5'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.5'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: bundler
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -47,17 +60,21 @@ extra_rdoc_files: []
47
60
  files:
48
61
  - ".github/workflows/ci.yml"
49
62
  - ".gitignore"
50
- - ".vscode/settings.json"
63
+ - ".rubocop.yml"
64
+ - ".rubocop_todo.yml"
65
+ - ".tool-versions"
66
+ - Appraisals
51
67
  - CHANGELOG.md
68
+ - CLAUDE.md
52
69
  - CODE_OF_CONDUCT.md
53
70
  - Gemfile
54
71
  - LICENSE.txt
55
72
  - README.md
56
73
  - Rakefile
57
74
  - bin/console
58
- - bin/prepare_coverage
75
+ - bin/matrix
59
76
  - bin/setup
60
- - bin/test
77
+ - bin/tapioca
61
78
  - examples/person_1.rb
62
79
  - examples/person_2.rb
63
80
  - examples/rgb/color.rb
@@ -73,15 +90,45 @@ files:
73
90
  - lib/micro/struct/normalize_names.rb
74
91
  - lib/micro/struct/version.rb
75
92
  - lib/u-struct.rb
93
+ - rbi/micro/struct.rbi
94
+ - rbi/micro/struct/factory.rbi
95
+ - rbi/micro/struct/factory/create_struct.rbi
96
+ - rbi/micro/struct/factory/members.rbi
97
+ - rbi/micro/struct/features.rbi
98
+ - rbi/micro/struct/normalize_names.rbi
99
+ - rbi/micro/struct/version.rbi
100
+ - sorbet/config
101
+ - sorbet/rbi/gems/ast@2.4.2.rbi
102
+ - sorbet/rbi/gems/coderay@1.1.3.rbi
103
+ - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
104
+ - sorbet/rbi/gems/docile@1.4.0.rbi
105
+ - sorbet/rbi/gems/method_source@1.0.0.rbi
106
+ - sorbet/rbi/gems/minitest@5.15.0.rbi
107
+ - sorbet/rbi/gems/parser@3.1.0.0.rbi
108
+ - sorbet/rbi/gems/pry@0.14.1.rbi
109
+ - sorbet/rbi/gems/rake@13.0.6.rbi
110
+ - sorbet/rbi/gems/rbi@0.0.9.rbi
111
+ - sorbet/rbi/gems/simplecov-html@0.12.3.rbi
112
+ - sorbet/rbi/gems/simplecov@0.21.2.rbi
113
+ - sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi
114
+ - sorbet/rbi/gems/spoom@1.1.8.rbi
115
+ - sorbet/rbi/gems/tapioca@0.6.2.rbi
116
+ - sorbet/rbi/gems/thor@1.2.1.rbi
117
+ - sorbet/rbi/gems/unparser@0.6.3.rbi
118
+ - sorbet/rbi/gems/webrick@1.7.0.rbi
119
+ - sorbet/rbi/gems/yard-sorbet@0.6.1.rbi
120
+ - sorbet/rbi/gems/yard@0.9.27.rbi
121
+ - sorbet/tapioca/config.yml
122
+ - sorbet/tapioca/require.rb
76
123
  - u-struct.gemspec
77
- homepage: https://github.com/serradura/u-struct
124
+ homepage: https://github.com/u-gems/u-struct
78
125
  licenses:
79
126
  - MIT
80
127
  metadata:
81
- homepage_uri: https://github.com/serradura/u-struct
82
- source_code_uri: https://github.com/serradura/u-struct
83
- changelog_uri: https://github.com/serradura/u-struct/blob/main/CHANGELOG.md
84
- post_install_message:
128
+ homepage_uri: https://github.com/u-gems/u-struct
129
+ source_code_uri: https://github.com/u-gems/u-struct
130
+ changelog_uri: https://github.com/u-gems/u-struct/blob/main/CHANGELOG.md
131
+ bug_tracker_uri: https://github.com/u-gems/u-struct/issues
85
132
  rdoc_options: []
86
133
  require_paths:
87
134
  - lib
@@ -89,15 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
136
  requirements:
90
137
  - - ">="
91
138
  - !ruby/object:Gem::Version
92
- version: 2.2.0
139
+ version: 2.7.0
93
140
  required_rubygems_version: !ruby/object:Gem::Requirement
94
141
  requirements:
95
142
  - - ">="
96
143
  - !ruby/object:Gem::Version
97
144
  version: '0'
98
145
  requirements: []
99
- rubygems_version: 3.3.4
100
- signing_key:
146
+ rubygems_version: 4.0.12
101
147
  specification_version: 4
102
148
  summary: Create powered Ruby structs.
103
149
  test_files: []
@@ -1,8 +0,0 @@
1
- {
2
- "cSpell.enabled": true,
3
- "cSpell.ignoreWords": [
4
- "paambaati",
5
- "resultset",
6
- "simplecov"
7
- ]
8
- }
data/bin/prepare_coverage DELETED
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
- # Borrowed from https://gist.github.com/qortex/7e7c49f3731391a91ee898336183acef
4
-
5
- # Temporary hack to get CodeClimate to work with SimpleCov 0.18 JSON format until issue is fixed
6
- # upstream: https://github.com/codeclimate/test-reporter/issues/413
7
-
8
- require "json"
9
-
10
- filename = "coverage/.resultset.json"
11
- contents = JSON.parse(File.read(filename))
12
-
13
- def remove_lines_key(obj)
14
- case obj
15
- when Hash
16
- obj.transform_values do |val|
17
- val.is_a?(Hash) && val.key?("lines") ? val["lines"] : remove_lines_key(val)
18
- end
19
- else
20
- obj
21
- end
22
- end
23
-
24
- # overwrite
25
- File.write(filename, JSON.generate(remove_lines_key(contents)))
26
-
27
- puts Dir['coverage/.*.json']
data/bin/test DELETED
@@ -1,8 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -e
4
-
5
- rm Gemfile.lock
6
-
7
- bundle update
8
- bundle exec rake test