rbs_config 0.2.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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