rggen-core 0.35.1 → 0.36.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/LICENSE +1 -1
- data/README.md +3 -3
- data/lib/rggen/core/base/component.rb +2 -2
- data/lib/rggen/core/base/component_factory.rb +4 -4
- data/lib/rggen/core/base/feature_factory.rb +4 -4
- data/lib/rggen/core/builder/builder.rb +20 -6
- data/lib/rggen/core/builder/component_registry.rb +4 -0
- data/lib/rggen/core/builder/feature_registry.rb +41 -36
- data/lib/rggen/core/builder/input_component_registry.rb +2 -3
- data/lib/rggen/core/builder/layer.rb +4 -0
- data/lib/rggen/core/builder/list_feature_entry.rb +1 -1
- data/lib/rggen/core/builder/loader_registry.rb +6 -6
- data/lib/rggen/core/configuration/json_loader.rb +0 -4
- data/lib/rggen/core/configuration/toml_loader.rb +0 -4
- data/lib/rggen/core/configuration/yaml_loader.rb +0 -4
- data/lib/rggen/core/dsl.rb +1 -0
- data/lib/rggen/core/generator.rb +2 -0
- data/lib/rggen/core/input_base/feature_factory.rb +4 -5
- data/lib/rggen/core/input_base/input_data.rb +3 -2
- data/lib/rggen/core/input_base/input_value.rb +4 -4
- data/lib/rggen/core/input_base/json_loader.rb +2 -3
- data/lib/rggen/core/input_base/toml_loader.rb +2 -3
- data/lib/rggen/core/input_base/yaml_loader.rb +5 -83
- data/lib/rggen/core/register_map/input_data.rb +1 -0
- data/lib/rggen/core/register_map/json_loader.rb +0 -4
- data/lib/rggen/core/register_map/toml_loader.rb +0 -4
- data/lib/rggen/core/register_map/yaml_loader.rb +0 -4
- data/lib/rggen/core/version.rb +1 -1
- data/lib/rggen/core.rb +3 -4
- metadata +19 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 307421fc81ca655e7025cfcb8374ef8d896d5000ed64a738523b876a8b09e471
|
|
4
|
+
data.tar.gz: 87b69bd57fb525e5e1782b0c257d7a8b020647fe2cd90dcefac9dccf5f9d3c62
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5ead051d4fb49347d039fa862d8e01237d154b3fdffea3dde316e818b176f3ff0460159f4e94c349beaaac05df0f8afb504157d1ff7126cab416b2f2a651e924
|
|
7
|
+
data.tar.gz: f5830b7b5ac206bf9af38d53583b8cc3b0ad7a45f8b74f3197399263588512d9bbe9eaba14031fac324711d85dfd628c6e98cdebe3236df12bf2b801c15953f4
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
[](https://github.com/rggen/rggen-core/actions?query=workflow%3ACI)
|
|
3
3
|
[](https://qlty.sh/gh/rggen/projects/rggen-core)
|
|
4
4
|
[](https://codecov.io/gh/rggen/rggen-core)
|
|
5
|
-
[](https://discord.com/invite/KWya83ZZxr)
|
|
6
6
|
|
|
7
7
|
# RgGen::Core
|
|
8
8
|
|
|
@@ -38,13 +38,13 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
|
|
|
38
38
|
|
|
39
39
|
* [GitHub Issue Tracker](https://github.com/rggen/rggen/issues)
|
|
40
40
|
* [GitHub Discussions](https://github.com/rggen/rggen/discussions)
|
|
41
|
-
* [
|
|
41
|
+
* [Discord](https://discord.com/invite/KWya83ZZxr)
|
|
42
42
|
* [Mailing List](https://groups.google.com/d/forum/rggen)
|
|
43
43
|
* [Mail](mailto:rggen@googlegroups.com)
|
|
44
44
|
|
|
45
45
|
## Copyright & License
|
|
46
46
|
|
|
47
|
-
Copyright © 2017-
|
|
47
|
+
Copyright © 2017-2026 Taichi Ishitani. RgGen::Core is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
|
|
48
48
|
|
|
49
49
|
## Code of Conduct
|
|
50
50
|
|
|
@@ -4,7 +4,7 @@ module RgGen
|
|
|
4
4
|
module Core
|
|
5
5
|
module Base
|
|
6
6
|
class Component
|
|
7
|
-
def initialize(parent, base_name, layer,
|
|
7
|
+
def initialize(parent, base_name, layer, ...)
|
|
8
8
|
@parent = parent
|
|
9
9
|
@base_name = base_name
|
|
10
10
|
@layer = layer
|
|
@@ -13,7 +13,7 @@ module RgGen
|
|
|
13
13
|
@features = {}
|
|
14
14
|
@depth = (parent&.depth || 0) + 1
|
|
15
15
|
@component_index = parent&.children&.size || 0
|
|
16
|
-
post_initialize(
|
|
16
|
+
post_initialize(...)
|
|
17
17
|
block_given? && yield(self)
|
|
18
18
|
end
|
|
19
19
|
|
|
@@ -87,12 +87,12 @@ module RgGen
|
|
|
87
87
|
def finalize(_component)
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
def create_feature(component, factory,
|
|
91
|
-
factory.create(component,
|
|
90
|
+
def create_feature(component, factory, ...)
|
|
91
|
+
factory.create(component, ...)
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
-
def create_child(component,
|
|
95
|
-
find_child_factory(
|
|
94
|
+
def create_child(component, ...)
|
|
95
|
+
find_child_factory(...).create(component, ...)
|
|
96
96
|
end
|
|
97
97
|
end
|
|
98
98
|
end
|
|
@@ -14,8 +14,8 @@ module RgGen
|
|
|
14
14
|
attr_setter :target_feature
|
|
15
15
|
attr_setter :target_features
|
|
16
16
|
|
|
17
|
-
def create_feature(component,
|
|
18
|
-
klass, sub_feature_name = select_feature(
|
|
17
|
+
def create_feature(component, ...)
|
|
18
|
+
klass, sub_feature_name = select_feature(...)
|
|
19
19
|
klass.new(@feature_name, sub_feature_name, component) do |feature|
|
|
20
20
|
feature.available? || break
|
|
21
21
|
block_given? && yield(feature)
|
|
@@ -25,8 +25,8 @@ module RgGen
|
|
|
25
25
|
|
|
26
26
|
private
|
|
27
27
|
|
|
28
|
-
def select_feature(
|
|
29
|
-
key = @target_features && target_feature_key(
|
|
28
|
+
def select_feature(...)
|
|
29
|
+
key = @target_features && target_feature_key(...)
|
|
30
30
|
feature = (key && @target_features[key]) || @target_feature
|
|
31
31
|
[feature, key]
|
|
32
32
|
end
|
|
@@ -61,14 +61,28 @@ module RgGen
|
|
|
61
61
|
end
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
def enable(layer,
|
|
65
|
-
@layers[layer].enable(
|
|
64
|
+
def enable(layer, ...)
|
|
65
|
+
@layers[layer].enable(...)
|
|
66
66
|
end
|
|
67
67
|
|
|
68
68
|
def enable_all
|
|
69
69
|
@layers.each_value(&:enable_all)
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
+
def disable_all
|
|
73
|
+
@layers.each_value(&:disable_all)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def disable_unused_output_features(used_writers)
|
|
77
|
+
return if used_writers.empty?
|
|
78
|
+
|
|
79
|
+
@component_registries[:output].each do |name, registry|
|
|
80
|
+
next if used_writers.include?(name)
|
|
81
|
+
|
|
82
|
+
registry.disable_all_features
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
72
86
|
def build_factory(type, component)
|
|
73
87
|
@component_registries[type][component].build_factory
|
|
74
88
|
end
|
|
@@ -78,13 +92,13 @@ module RgGen
|
|
|
78
92
|
if targets.empty?
|
|
79
93
|
@component_registries[type]
|
|
80
94
|
else
|
|
81
|
-
|
|
95
|
+
collect_component_registries(type, targets)
|
|
82
96
|
end
|
|
83
97
|
registries.each_value.map(&:build_factory)
|
|
84
98
|
end
|
|
85
99
|
|
|
86
|
-
def delete(layer,
|
|
87
|
-
@layers.key?(layer) && @layers[layer].delete(
|
|
100
|
+
def delete(layer, ...)
|
|
101
|
+
@layers.key?(layer) && @layers[layer].delete(...)
|
|
88
102
|
end
|
|
89
103
|
|
|
90
104
|
def register_input_components
|
|
@@ -134,7 +148,7 @@ module RgGen
|
|
|
134
148
|
body && Docile.dsl_eval(registries[name], &body) || registries[name]
|
|
135
149
|
end
|
|
136
150
|
|
|
137
|
-
def
|
|
151
|
+
def collect_component_registries(type, targets)
|
|
138
152
|
unknown_components = targets - @component_registries[type].keys
|
|
139
153
|
unknown_components.empty? ||
|
|
140
154
|
(raise BuilderError.new("unknown component: #{unknown_components.first}"))
|
|
@@ -43,21 +43,35 @@ module RgGen
|
|
|
43
43
|
list_item_entry(list_name).modify_feature(feature_name, bodies)
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
def enable(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
def enable(list_name_or_feature_names, feature_names = nil)
|
|
47
|
+
feature_names, list_name =
|
|
48
|
+
[feature_names, list_name_or_feature_names].compact
|
|
49
|
+
Array(list_name || feature_names)
|
|
50
|
+
.each { |name| @enabled_features[name] ||= [] }
|
|
51
|
+
|
|
52
|
+
return unless list_name
|
|
53
|
+
|
|
54
|
+
@enabled_features[list_name].merge!(Array(feature_names))
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def enable_all
|
|
58
|
+
disable_all
|
|
59
|
+
@feature_entries.each do |name, entry|
|
|
60
|
+
if entry.match_entry_type?(:list)
|
|
61
|
+
enable(name, entry.features)
|
|
62
|
+
else
|
|
63
|
+
enable(name)
|
|
52
64
|
end
|
|
53
65
|
end
|
|
54
66
|
end
|
|
55
67
|
|
|
56
|
-
def
|
|
68
|
+
def disable_all
|
|
57
69
|
@enabled_features.clear
|
|
58
70
|
end
|
|
59
71
|
|
|
60
|
-
def delete(
|
|
72
|
+
def delete(list_name_or_feature_names, feature_names = nil)
|
|
73
|
+
feature_names, list_name =
|
|
74
|
+
[feature_names, list_name_or_feature_names].compact
|
|
61
75
|
if list_name
|
|
62
76
|
@feature_entries[list_name]&.delete(feature_names)
|
|
63
77
|
else
|
|
@@ -67,9 +81,12 @@ module RgGen
|
|
|
67
81
|
|
|
68
82
|
def delete_all
|
|
69
83
|
@feature_entries.clear
|
|
84
|
+
@enabled_features.clear
|
|
70
85
|
end
|
|
71
86
|
|
|
72
|
-
def feature?(
|
|
87
|
+
def feature?(list_name_or_feature_name, feature_name = nil)
|
|
88
|
+
feature_name, list_name =
|
|
89
|
+
[feature_name, list_name_or_feature_name].compact
|
|
73
90
|
if list_name
|
|
74
91
|
list_feature?(list_name, feature_name)
|
|
75
92
|
else
|
|
@@ -78,19 +95,16 @@ module RgGen
|
|
|
78
95
|
end
|
|
79
96
|
|
|
80
97
|
def enabled_features(list_name = nil)
|
|
81
|
-
if list_name
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
@enabled_features
|
|
85
|
-
@enabled_features.keys & @feature_entries.keys
|
|
98
|
+
if !list_name
|
|
99
|
+
@enabled_features.keys.select { |name| feature?(name) }
|
|
100
|
+
elsif enabled_list?(list_name)
|
|
101
|
+
@enabled_features[list_name] & @feature_entries[list_name].features
|
|
86
102
|
end
|
|
87
103
|
end
|
|
88
104
|
|
|
89
105
|
def build_factories
|
|
90
|
-
target_features =
|
|
91
|
-
(@enabled_features.empty? && @feature_entries || @enabled_features).keys
|
|
92
106
|
@feature_entries
|
|
93
|
-
.slice(
|
|
107
|
+
.slice(*@enabled_features.keys)
|
|
94
108
|
.transform_values(&method(:build_factory))
|
|
95
109
|
end
|
|
96
110
|
|
|
@@ -118,26 +132,9 @@ module RgGen
|
|
|
118
132
|
|
|
119
133
|
def list_item_entry(list_name)
|
|
120
134
|
entry = @feature_entries[list_name]
|
|
121
|
-
entry&.match_entry_type?(:list)
|
|
122
|
-
(raise BuilderError.new("unknown feature: #{list_name}"))
|
|
123
|
-
entry
|
|
124
|
-
end
|
|
135
|
+
return entry if entry&.match_entry_type?(:list)
|
|
125
136
|
|
|
126
|
-
|
|
127
|
-
return [] unless enabled_list?(list_name)
|
|
128
|
-
features = @feature_entries[list_name].features
|
|
129
|
-
(@enabled_features[list_name] || features) & features
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def enabled_list?(list_name)
|
|
133
|
-
return false unless @feature_entries[list_name]&.match_entry_type?(:list)
|
|
134
|
-
return true if @enabled_features.empty?
|
|
135
|
-
return true if @enabled_features.key?(list_name)
|
|
136
|
-
false
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def build_factory(entry)
|
|
140
|
-
entry.build_factory(@enabled_features[entry.name])
|
|
137
|
+
raise BuilderError.new("unknown feature: #{list_name}")
|
|
141
138
|
end
|
|
142
139
|
|
|
143
140
|
def list_feature?(list_name, feature_name)
|
|
@@ -146,6 +143,14 @@ module RgGen
|
|
|
146
143
|
|
|
147
144
|
entry.match_entry_type?(:list) && entry.feature?(feature_name)
|
|
148
145
|
end
|
|
146
|
+
|
|
147
|
+
def enabled_list?(name)
|
|
148
|
+
@feature_entries[name]&.match_entry_type?(:list) && @enabled_features.key?(name)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def build_factory(entry)
|
|
152
|
+
entry.build_factory(@enabled_features[entry.name])
|
|
153
|
+
end
|
|
149
154
|
end
|
|
150
155
|
end
|
|
151
156
|
end
|
|
@@ -23,9 +23,8 @@ module RgGen
|
|
|
23
23
|
block_given? && yield(@loader_registries[loader_type])
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
def define_value_extractor(loader_type,
|
|
27
|
-
@loader_registries[loader_type]
|
|
28
|
-
.define_value_extractor(layers, value, &)
|
|
26
|
+
def define_value_extractor(loader_type, ...)
|
|
27
|
+
@loader_registries[loader_type].define_value_extractor(...)
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
def build_factory
|
|
@@ -143,6 +143,10 @@ module RgGen
|
|
|
143
143
|
@feature_registries.each_value(&:enable_all)
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
+
def disable_all
|
|
147
|
+
@feature_registries.each_value(&:disable_all)
|
|
148
|
+
end
|
|
149
|
+
|
|
146
150
|
def delete(...)
|
|
147
151
|
@feature_registries.each_value do |registry|
|
|
148
152
|
registry.delete(...)
|
|
@@ -18,20 +18,20 @@ module RgGen
|
|
|
18
18
|
@loaders.concat(Array(loaders))
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def define_value_extractor(
|
|
21
|
+
def define_value_extractor(layers_or_value, value = nil, &)
|
|
22
|
+
value, layers = [value, layers_or_value].compact
|
|
22
23
|
@extractors << create_extractor(layers, value, &)
|
|
23
24
|
end
|
|
24
25
|
|
|
25
|
-
def
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def ignore_values(layers = nil, values)
|
|
26
|
+
def ignore_values(layers_or_values, values = nil)
|
|
27
|
+
values, layers = [values, layers_or_values].compact
|
|
30
28
|
[layers].flatten.each do |layer|
|
|
31
29
|
(@ignore_values[layer] ||= []).concat(Array(values))
|
|
32
30
|
end
|
|
33
31
|
end
|
|
34
32
|
|
|
33
|
+
alias_method :ignore_value, :ignore_values
|
|
34
|
+
|
|
35
35
|
def create_loaders
|
|
36
36
|
@loaders.map { |loader| loader.new(@extractors, @ignore_values) }
|
|
37
37
|
end
|
data/lib/rggen/core/dsl.rb
CHANGED
data/lib/rggen/core/generator.rb
CHANGED
|
@@ -52,10 +52,7 @@ module RgGen
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def process_active_input_value(input_value)
|
|
55
|
-
parsed_value, options =
|
|
56
|
-
if self.class.value_format
|
|
57
|
-
parse_input_value(input_value, self.class.value_format)
|
|
58
|
-
end
|
|
55
|
+
parsed_value, options = parse_input_value(input_value, self.class.value_format)
|
|
59
56
|
override_input_value(input_value, parsed_value, options) || input_value
|
|
60
57
|
end
|
|
61
58
|
|
|
@@ -66,13 +63,15 @@ module RgGen
|
|
|
66
63
|
}.freeze
|
|
67
64
|
|
|
68
65
|
def parse_input_value(input_value, value_format)
|
|
66
|
+
return unless value_format
|
|
67
|
+
|
|
69
68
|
format, options = value_format
|
|
70
69
|
VALUE_PARSERS[format].new(**options).parse(input_value)
|
|
71
70
|
end
|
|
72
71
|
|
|
73
72
|
def override_input_value(input_value, parsed_value, options)
|
|
74
73
|
(convert_value(input_value, parsed_value) || parsed_value)
|
|
75
|
-
&.then { |v| InputValue.new(v,
|
|
74
|
+
&.then { |v| InputValue.new(v, input_value.position, options) }
|
|
76
75
|
end
|
|
77
76
|
|
|
78
77
|
def convert_value(input_value, parsed_value)
|
|
@@ -24,7 +24,8 @@ module RgGen
|
|
|
24
24
|
assign_value(symbolized_name, value, position)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
def []=(value_name,
|
|
27
|
+
def []=(value_name, value_and_position)
|
|
28
|
+
value, position = value_and_position
|
|
28
29
|
value(value_name, value, position)
|
|
29
30
|
end
|
|
30
31
|
|
|
@@ -48,7 +49,7 @@ module RgGen
|
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
def load_file(file)
|
|
51
|
-
build_by_block { instance_eval(File.
|
|
52
|
+
build_by_block { instance_eval(File.read(file), file, 1) }
|
|
52
53
|
end
|
|
53
54
|
|
|
54
55
|
private
|
|
@@ -4,12 +4,12 @@ module RgGen
|
|
|
4
4
|
module Core
|
|
5
5
|
module InputBase
|
|
6
6
|
class InputValue < ::SimpleDelegator
|
|
7
|
-
|
|
7
|
+
NO_VALUE = Object.new.freeze
|
|
8
8
|
|
|
9
|
-
def initialize(value, options =
|
|
9
|
+
def initialize(value, position, options = NO_VALUE)
|
|
10
10
|
super((value.is_a?(String) && value.strip) || value)
|
|
11
|
-
@options = options
|
|
12
11
|
@position = position
|
|
12
|
+
@options = options
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
alias_method :value, :__getobj__
|
|
@@ -33,7 +33,7 @@ module RgGen
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def with_options?
|
|
36
|
-
!@options.equal?(
|
|
36
|
+
!@options.equal?(NO_VALUE)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def available?
|
|
@@ -4,91 +4,13 @@ module RgGen
|
|
|
4
4
|
module Core
|
|
5
5
|
module InputBase
|
|
6
6
|
module YAMLLoader
|
|
7
|
-
Position = Struct.new(:file, :line, :column) do
|
|
8
|
-
def to_s
|
|
9
|
-
"file #{file} line #{line} column #{column}"
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
module PsychExtension
|
|
14
|
-
refine ::Psych::Nodes::Node do
|
|
15
|
-
attr_accessor :filename
|
|
16
|
-
|
|
17
|
-
attr_writer :mapping_key
|
|
18
|
-
|
|
19
|
-
def mapping_key?
|
|
20
|
-
@mapping_key || false
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
using PsychExtension
|
|
26
|
-
|
|
27
|
-
class TreeBuilder < ::Psych::TreeBuilder
|
|
28
|
-
def initialize(filename)
|
|
29
|
-
super()
|
|
30
|
-
@filename = filename
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def set_start_location(node)
|
|
34
|
-
super
|
|
35
|
-
node.filename = @filename
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def scalar(value, anchor, tag, plain, quated, style)
|
|
39
|
-
node = super
|
|
40
|
-
node.mapping_key = mapping_key?
|
|
41
|
-
node
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
-
def mapping_key?
|
|
47
|
-
@last.mapping? && @last.children.size.odd?
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class Visitor < ::Psych::Visitors::ToRuby
|
|
52
|
-
def initialize(scalar_scanner, class_loader)
|
|
53
|
-
super(scalar_scanner, class_loader, symbolize_names: true)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def accept(node)
|
|
57
|
-
object = super
|
|
58
|
-
if override_object?(node)
|
|
59
|
-
file = node.filename
|
|
60
|
-
line = node.start_line + 1
|
|
61
|
-
column = node.start_column + 1
|
|
62
|
-
InputValue.new(object, Position.new(file, line, column))
|
|
63
|
-
else
|
|
64
|
-
object
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
private
|
|
69
|
-
|
|
70
|
-
def override_object?(node)
|
|
71
|
-
node.mapping? || node.sequence? || (node.scalar? && !node.mapping_key?)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
7
|
private
|
|
76
8
|
|
|
77
|
-
def
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
def parse_yaml(yaml, file)
|
|
83
|
-
parser = ::Psych::Parser.new(TreeBuilder.new(file))
|
|
84
|
-
parser.parse(yaml, file)
|
|
85
|
-
parser.handler.root.children.first
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def to_ruby(result)
|
|
89
|
-
cl = ::Psych::ClassLoader::Restricted.new(['Symbol'], [])
|
|
90
|
-
ss = ::Psych::ScalarScanner.new(cl)
|
|
91
|
-
Visitor.new(ss, cl).accept(result)
|
|
9
|
+
def read_file(file)
|
|
10
|
+
YPS.load_file(
|
|
11
|
+
file,
|
|
12
|
+
aliases: true, symbolize_names: true, freeze: true, value_class: InputValue
|
|
13
|
+
)
|
|
92
14
|
end
|
|
93
15
|
end
|
|
94
16
|
end
|
data/lib/rggen/core/version.rb
CHANGED
data/lib/rggen/core.rb
CHANGED
|
@@ -8,10 +8,9 @@ require 'forwardable'
|
|
|
8
8
|
require 'optparse'
|
|
9
9
|
require 'pathname'
|
|
10
10
|
require 'singleton'
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
autoload :Tomlrb, 'tomlrb'
|
|
11
|
+
require 'json'
|
|
12
|
+
require 'tomlrb'
|
|
13
|
+
require 'yps'
|
|
15
14
|
|
|
16
15
|
require_relative 'core/version'
|
|
17
16
|
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rggen-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.36.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Taichi Ishitani
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: docile
|
|
@@ -71,6 +71,20 @@ dependencies:
|
|
|
71
71
|
- - ">="
|
|
72
72
|
- !ruby/object:Gem::Version
|
|
73
73
|
version: '2.0'
|
|
74
|
+
- !ruby/object:Gem::Dependency
|
|
75
|
+
name: yps
|
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: 1.0.0
|
|
81
|
+
type: :runtime
|
|
82
|
+
prerelease: false
|
|
83
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: 1.0.0
|
|
74
88
|
description: Core library of RgGen tool.
|
|
75
89
|
email:
|
|
76
90
|
- rggen@googlegroups.com
|
|
@@ -198,14 +212,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
198
212
|
requirements:
|
|
199
213
|
- - ">="
|
|
200
214
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: 3.
|
|
215
|
+
version: 3.2.0
|
|
202
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
217
|
requirements:
|
|
204
218
|
- - ">="
|
|
205
219
|
- !ruby/object:Gem::Version
|
|
206
220
|
version: '0'
|
|
207
221
|
requirements: []
|
|
208
|
-
rubygems_version:
|
|
222
|
+
rubygems_version: 4.0.3
|
|
209
223
|
specification_version: 4
|
|
210
|
-
summary: rggen-core-0.
|
|
224
|
+
summary: rggen-core-0.36.0
|
|
211
225
|
test_files: []
|