rbs_config 0.2.1 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 214aeb4d1563d548e95f738b906554c68ddd2a2bad39bfb9fc0906a23eeba005
4
- data.tar.gz: 013072d9063caf8f220ed4dc7ed52470d755e8e80be9265dca1b37136e1299d6
3
+ metadata.gz: 7c379914fccfe5ef6d08534927a87f1df4cfab80f84da0ffe80fd638d2ba35bb
4
+ data.tar.gz: deda4664549517817ae600c005ebfb5af42f12b65ffb437a36879d4092a5a2fb
5
5
  SHA512:
6
- metadata.gz: 177c407ec2c7f25d4081658816729faf91ccf66f69d38cf5ae5abbc3283625327d77565dc67a56b1e19f2d8ae03bfb3dba6d449f9aa0b7761279e95abbb8883a
7
- data.tar.gz: 2a3ed93b17a077d1ad9d718e05608f2a6efb2f19bffce73703ba206cfa28d445d096dc2b4b653f0a6532d36797c828ea2fd96de8df5eda3c6d416b0eadbb3b36
6
+ metadata.gz: cb35f250bd004771189c8c6b540ac317d8a64ae5c6f8b3e80bbbc11dc19210380cacdd4f15b9184ef0dfe35f9b43648b3abd1de886a0db6dee426328fd57377d
7
+ data.tar.gz: e34cda204e7094262317525dae5c2885a6621dbd9760bb780304faad8df4d2c8806a7998cf5b8dffacf2f37ab438a8bb9fbc68f155323c6f086a294daf1a7730
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.6
2
+ TargetRubyVersion: 2.7
3
3
 
4
4
  Style/Documentation:
5
5
  Enabled: false
@@ -41,17 +41,20 @@ module RbsConfig
41
41
 
42
42
  def generate_classes(config)
43
43
  config.filter_map do |key, value|
44
- next unless value.is_a?(Hash)
44
+ case value
45
+ when Array
46
+ generate_classes({ key => value.first }).first if value.first.is_a?(Hash)
47
+ when Hash
48
+ classes = generate_classes(value)
49
+ methods = generate_methods(value)
45
50
 
46
- classes = generate_classes(value)
47
- methods = generate_methods(value)
48
-
49
- <<~RBS
50
- class #{key.camelize}
51
- #{classes.join("\n")}
52
- #{methods.join("\n")}
53
- end
54
- RBS
51
+ <<~RBS
52
+ class #{key.camelize}
53
+ #{classes.join("\n")}
54
+ #{methods.join("\n")}
55
+ end
56
+ RBS
57
+ end
55
58
  end
56
59
  end
57
60
 
@@ -78,7 +81,15 @@ module RbsConfig
78
81
  end
79
82
 
80
83
  def load_config(files)
81
- files.map { |f| YAML.unsafe_load(f.read) }.inject { |a, b| a.deep_merge(b) }
84
+ configs = files.map do |f|
85
+ content = ERB.new(f.read).result
86
+ if YAML.respond_to?(:unsafe_load)
87
+ YAML.unsafe_load(content)
88
+ else
89
+ YAML.load(content) # rubocop:disable Security/YAMLLoad
90
+ end
91
+ end
92
+ configs.inject { |a, b| a.deep_merge(b) }
82
93
  end
83
94
  end
84
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RbsConfig
4
- VERSION = "0.2.1"
4
+ VERSION = "1.0.0"
5
5
  end
@@ -2,7 +2,7 @@
2
2
  sources:
3
3
  - type: git
4
4
  name: ruby/gem_rbs_collection
5
- revision: 5666e737d2b27a8425b4e3855c1a38cae54989f7
5
+ revision: c34ed02f870fb02571f664062eb13ef507702029
6
6
  remote: https://github.com/ruby/gem_rbs_collection.git
7
7
  repo_dir: gems
8
8
  path: ".gem_rbs_collection"
@@ -16,7 +16,7 @@ gems:
16
16
  source:
17
17
  type: git
18
18
  name: ruby/gem_rbs_collection
19
- revision: 5666e737d2b27a8425b4e3855c1a38cae54989f7
19
+ revision: c34ed02f870fb02571f664062eb13ef507702029
20
20
  remote: https://github.com/ruby/gem_rbs_collection.git
21
21
  repo_dir: gems
22
22
  - name: actionview
@@ -24,7 +24,7 @@ gems:
24
24
  source:
25
25
  type: git
26
26
  name: ruby/gem_rbs_collection
27
- revision: 5666e737d2b27a8425b4e3855c1a38cae54989f7
27
+ revision: c34ed02f870fb02571f664062eb13ef507702029
28
28
  remote: https://github.com/ruby/gem_rbs_collection.git
29
29
  repo_dir: gems
30
30
  - name: activesupport
@@ -32,7 +32,7 @@ gems:
32
32
  source:
33
33
  type: git
34
34
  name: ruby/gem_rbs_collection
35
- revision: 306d1aec19defeb177e217d8aad9812a52bcd5eb
35
+ revision: c34ed02f870fb02571f664062eb13ef507702029
36
36
  remote: https://github.com/ruby/gem_rbs_collection.git
37
37
  repo_dir: gems
38
38
  - name: ast
@@ -40,7 +40,7 @@ gems:
40
40
  source:
41
41
  type: git
42
42
  name: ruby/gem_rbs_collection
43
- revision: 306d1aec19defeb177e217d8aad9812a52bcd5eb
43
+ revision: c34ed02f870fb02571f664062eb13ef507702029
44
44
  remote: https://github.com/ruby/gem_rbs_collection.git
45
45
  repo_dir: gems
46
46
  - name: base64
@@ -56,19 +56,31 @@ gems:
56
56
  source:
57
57
  type: git
58
58
  name: ruby/gem_rbs_collection
59
- revision: 306d1aec19defeb177e217d8aad9812a52bcd5eb
59
+ revision: c34ed02f870fb02571f664062eb13ef507702029
60
60
  remote: https://github.com/ruby/gem_rbs_collection.git
61
61
  repo_dir: gems
62
62
  - name: date
63
63
  version: '0'
64
64
  source:
65
65
  type: stdlib
66
+ - name: dbm
67
+ version: '0'
68
+ source:
69
+ type: stdlib
70
+ - name: erb
71
+ version: '0'
72
+ source:
73
+ type: stdlib
74
+ - name: fileutils
75
+ version: '0'
76
+ source:
77
+ type: stdlib
66
78
  - name: i18n
67
79
  version: '1.10'
68
80
  source:
69
81
  type: git
70
82
  name: ruby/gem_rbs_collection
71
- revision: 306d1aec19defeb177e217d8aad9812a52bcd5eb
83
+ revision: c34ed02f870fb02571f664062eb13ef507702029
72
84
  remote: https://github.com/ruby/gem_rbs_collection.git
73
85
  repo_dir: gems
74
86
  - name: json
@@ -100,19 +112,31 @@ gems:
100
112
  source:
101
113
  type: git
102
114
  name: ruby/gem_rbs_collection
103
- revision: 306d1aec19defeb177e217d8aad9812a52bcd5eb
115
+ revision: c34ed02f870fb02571f664062eb13ef507702029
116
+ remote: https://github.com/ruby/gem_rbs_collection.git
117
+ repo_dir: gems
118
+ - name: parser
119
+ version: '3.2'
120
+ source:
121
+ type: git
122
+ name: ruby/gem_rbs_collection
123
+ revision: c34ed02f870fb02571f664062eb13ef507702029
104
124
  remote: https://github.com/ruby/gem_rbs_collection.git
105
125
  repo_dir: gems
106
126
  - name: pathname
107
127
  version: '0'
108
128
  source:
109
129
  type: stdlib
130
+ - name: pstore
131
+ version: '0'
132
+ source:
133
+ type: stdlib
110
134
  - name: rack
111
135
  version: '2.2'
112
136
  source:
113
137
  type: git
114
138
  name: ruby/gem_rbs_collection
115
- revision: 5666e737d2b27a8425b4e3855c1a38cae54989f7
139
+ revision: c34ed02f870fb02571f664062eb13ef507702029
116
140
  remote: https://github.com/ruby/gem_rbs_collection.git
117
141
  repo_dir: gems
118
142
  - name: railties
@@ -120,7 +144,7 @@ gems:
120
144
  source:
121
145
  type: git
122
146
  name: ruby/gem_rbs_collection
123
- revision: 5666e737d2b27a8425b4e3855c1a38cae54989f7
147
+ revision: c34ed02f870fb02571f664062eb13ef507702029
124
148
  remote: https://github.com/ruby/gem_rbs_collection.git
125
149
  repo_dir: gems
126
150
  - name: rainbow
@@ -128,17 +152,49 @@ gems:
128
152
  source:
129
153
  type: git
130
154
  name: ruby/gem_rbs_collection
131
- revision: 306d1aec19defeb177e217d8aad9812a52bcd5eb
155
+ revision: c34ed02f870fb02571f664062eb13ef507702029
156
+ remote: https://github.com/ruby/gem_rbs_collection.git
157
+ repo_dir: gems
158
+ - name: rake
159
+ version: '13.0'
160
+ source:
161
+ type: git
162
+ name: ruby/gem_rbs_collection
163
+ revision: c34ed02f870fb02571f664062eb13ef507702029
132
164
  remote: https://github.com/ruby/gem_rbs_collection.git
133
165
  repo_dir: gems
134
166
  - name: rbs
135
- version: 3.2.0
167
+ version: 3.1.3
136
168
  source:
137
169
  type: rubygems
138
170
  - name: rdoc
139
171
  version: '0'
140
172
  source:
141
173
  type: stdlib
174
+ - name: regexp_parser
175
+ version: '2.8'
176
+ source:
177
+ type: git
178
+ name: ruby/gem_rbs_collection
179
+ revision: c34ed02f870fb02571f664062eb13ef507702029
180
+ remote: https://github.com/ruby/gem_rbs_collection.git
181
+ repo_dir: gems
182
+ - name: rubocop
183
+ version: '1.57'
184
+ source:
185
+ type: git
186
+ name: ruby/gem_rbs_collection
187
+ revision: c34ed02f870fb02571f664062eb13ef507702029
188
+ remote: https://github.com/ruby/gem_rbs_collection.git
189
+ repo_dir: gems
190
+ - name: rubocop-ast
191
+ version: '1.30'
192
+ source:
193
+ type: git
194
+ name: ruby/gem_rbs_collection
195
+ revision: c34ed02f870fb02571f664062eb13ef507702029
196
+ remote: https://github.com/ruby/gem_rbs_collection.git
197
+ repo_dir: gems
142
198
  - name: securerandom
143
199
  version: '0'
144
200
  source:
@@ -147,10 +203,22 @@ gems:
147
203
  version: '0'
148
204
  source:
149
205
  type: stdlib
206
+ - name: strscan
207
+ version: '0'
208
+ source:
209
+ type: stdlib
150
210
  - name: tempfile
151
211
  version: '0'
152
212
  source:
153
213
  type: stdlib
214
+ - name: thor
215
+ version: '1.2'
216
+ source:
217
+ type: git
218
+ name: ruby/gem_rbs_collection
219
+ revision: c34ed02f870fb02571f664062eb13ef507702029
220
+ remote: https://github.com/ruby/gem_rbs_collection.git
221
+ repo_dir: gems
154
222
  - name: time
155
223
  version: '0'
156
224
  source:
@@ -159,8 +227,20 @@ gems:
159
227
  version: '0'
160
228
  source:
161
229
  type: stdlib
230
+ - name: tzinfo
231
+ version: '2.0'
232
+ source:
233
+ type: git
234
+ name: ruby/gem_rbs_collection
235
+ revision: c34ed02f870fb02571f664062eb13ef507702029
236
+ remote: https://github.com/ruby/gem_rbs_collection.git
237
+ repo_dir: gems
162
238
  - name: uri
163
239
  version: '0'
164
240
  source:
165
241
  type: stdlib
242
+ - name: yaml
243
+ version: '0'
244
+ source:
245
+ type: stdlib
166
246
  gemfile_lock_path: Gemfile.lock
data/rbs_collection.yaml CHANGED
@@ -24,3 +24,5 @@ gems:
24
24
  - name: pathname
25
25
  - name: rack
26
26
  - name: railties
27
+ - name: thor
28
+ - name: yaml
data/rbs_config.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = "A RBS files generator for Config gem"
13
13
  spec.homepage = "https://github.com/tk0miya/rbs_config"
14
14
  spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.6.0"
15
+ spec.required_ruby_version = ">= 2.7.0"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
@@ -1,19 +1,19 @@
1
1
  module RbsConfig
2
2
  module RailsConfig
3
- def self.generate: (mapping: Hash[untyped, Hash[untyped, untyped] | ActiveSupport::OrderedOptions[untyped, untyped]]) -> String
3
+ def self.generate: (mapping: Hash[untyped, Hash[untyped, untyped] | ActiveSupport::OrderedOptions]) -> String
4
4
 
5
5
  class Generator
6
- attr_reader mapping: Hash[untyped, Hash[untyped, untyped] | ActiveSupport::OrderedOptions[untyped, untyped]]
6
+ attr_reader mapping: Hash[untyped, Hash[untyped, untyped] | ActiveSupport::OrderedOptions]
7
7
 
8
- def initialize: (mapping: Hash[untyped, Hash[untyped, untyped] | ActiveSupport::OrderedOptions[untyped, untyped]]) -> void
8
+ def initialize: (mapping: Hash[untyped, Hash[untyped, untyped] | ActiveSupport::OrderedOptions]) -> void
9
9
  def generate: () -> String
10
10
 
11
11
  private
12
12
 
13
13
  def format: (String rbs) -> String
14
- def generate_classes: (Hash[untyped, untyped] | ActiveSupport::OrderedOptions[untyped, untyped] config) -> Array[String]
15
- def generate_methods: (Hash[untyped, untyped] | ActiveSupport::OrderedOptions[untyped, untyped] config) -> Array[string]
16
- def generate_ordered_options_methods: (ActiveSupport::OrderedOptions[untyped, untyped] config) -> Array[string]
14
+ def generate_classes: (Hash[untyped, untyped] | ActiveSupport::OrderedOptions config) -> Array[String]
15
+ def generate_methods: (Hash[untyped, untyped] | ActiveSupport::OrderedOptions config) -> Array[string]
16
+ def generate_ordered_options_methods: (ActiveSupport::OrderedOptions config) -> Array[string]
17
17
  def generate_hash_methods: (Hash[untyped, untyped]) -> Array[string]
18
18
  def stringify_type: (untyped name, untyped value) -> String
19
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs_config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takeshi KOMIYA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-02 00:00:00.000000000 Z
11
+ date: 2024-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -66,8 +66,6 @@ files:
66
66
  - sig/rbs_config/config.rbs
67
67
  - sig/rbs_config/rails_config.rbs
68
68
  - sig/rbs_config/rake_task.rbs
69
- - sig/shims/rake.rbs
70
- - sig/shims/thor.rbs
71
69
  homepage: https://github.com/tk0miya/rbs_config
72
70
  licenses:
73
71
  - MIT
@@ -83,14 +81,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
81
  requirements:
84
82
  - - ">="
85
83
  - !ruby/object:Gem::Version
86
- version: 2.6.0
84
+ version: 2.7.0
87
85
  required_rubygems_version: !ruby/object:Gem::Requirement
88
86
  requirements:
89
87
  - - ">="
90
88
  - !ruby/object:Gem::Version
91
89
  version: '0'
92
90
  requirements: []
93
- rubygems_version: 3.4.10
91
+ rubygems_version: 3.4.19
94
92
  signing_key:
95
93
  specification_version: 4
96
94
  summary: A RBS files generator for Config gem
data/sig/shims/rake.rbs DELETED
@@ -1,18 +0,0 @@
1
- module Rake
2
- class TaskLib
3
- include Rake::DSL
4
- end
5
-
6
- module DSL
7
- private
8
-
9
- def desc: (String description) -> void
10
- def file: (*untyped args) ?{ () -> void } -> void
11
- def import: (*String fns) -> void
12
- def multitask: (*untyped args) ?{ () -> void } -> void
13
- def namespace: (?String? name) ?{ () -> void } -> void
14
- def rule: (*untyped args) ?{ () -> void } -> void
15
- def task: (*untyped args) ?{ () -> void } -> void
16
- def sh: (*String cmd) ?{ (bool, Process::Status) -> void } -> void
17
- end
18
- end
data/sig/shims/thor.rbs DELETED
@@ -1,5 +0,0 @@
1
- class Thor
2
- module Actions
3
- def create_file: (String destination, *String? args, ?config: bool) ?{ () -> void } -> untyped
4
- end
5
- end