rggen-core 0.20.0 → 0.24.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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +2 -1
  4. data/exe/rggen +2 -2
  5. data/lib/rggen/core.rb +9 -1
  6. data/lib/rggen/core/builder/builder.rb +30 -36
  7. data/lib/rggen/core/builder/component_registry.rb +8 -9
  8. data/lib/rggen/core/builder/feature_registry.rb +6 -9
  9. data/lib/rggen/core/builder/input_component_registry.rb +43 -10
  10. data/lib/rggen/core/builder/layer.rb +44 -29
  11. data/lib/rggen/core/builder/loader_registry.rb +48 -0
  12. data/lib/rggen/core/builder/plugin_manager.rb +122 -0
  13. data/lib/rggen/core/builder/plugin_spec.rb +83 -0
  14. data/lib/rggen/core/configuration.rb +5 -3
  15. data/lib/rggen/core/configuration/hash_loader.rb +4 -2
  16. data/lib/rggen/core/configuration/toml_loader.rb +18 -0
  17. data/lib/rggen/core/dsl.rb +3 -1
  18. data/lib/rggen/core/exceptions.rb +9 -4
  19. data/lib/rggen/core/facets.rb +0 -1
  20. data/lib/rggen/core/generator.rb +3 -3
  21. data/lib/rggen/core/input_base/feature.rb +2 -2
  22. data/lib/rggen/core/input_base/input_data.rb +8 -4
  23. data/lib/rggen/core/input_base/input_value_extractor.rb +34 -0
  24. data/lib/rggen/core/input_base/loader.rb +64 -20
  25. data/lib/rggen/core/input_base/toml_loader.rb +16 -0
  26. data/lib/rggen/core/input_base/yaml_loader.rb +12 -8
  27. data/lib/rggen/core/options.rb +18 -14
  28. data/lib/rggen/core/output_base/code_generator.rb +1 -1
  29. data/lib/rggen/core/plugin.rb +16 -0
  30. data/lib/rggen/core/printers.rb +11 -7
  31. data/lib/rggen/core/register_map.rb +6 -6
  32. data/lib/rggen/core/register_map/hash_loader.rb +58 -17
  33. data/lib/rggen/core/register_map/toml_loader.rb +18 -0
  34. data/lib/rggen/core/utility/attribute_setter.rb +5 -0
  35. data/lib/rggen/core/utility/error_utility.rb +33 -6
  36. data/lib/rggen/core/version.rb +2 -4
  37. metadata +32 -5
  38. data/lib/rggen/core/builder/plugins.rb +0 -79
@@ -2,9 +2,7 @@
2
2
 
3
3
  module RgGen
4
4
  module Core
5
- MAJOR = 0
6
- MINOR = 20
7
- PATCH = 0
8
- VERSION = "#{MAJOR}.#{MINOR}.#{PATCH}"
5
+ VERSION = '0.24.0'
6
+ MAJOR, MINOR, PATCH = VERSION.split('.').map(&:to_i)
9
7
  end
10
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2021-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docile
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.1.5
20
+ - - "!="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.3.3
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 1.1.5
30
+ - - "!="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.3.3
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: erubi
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +58,20 @@ dependencies:
52
58
  - - ">="
53
59
  - !ruby/object:Gem::Version
54
60
  version: '3.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: tomlrb
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '2.0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '2.0'
55
75
  - !ruby/object:Gem::Dependency
56
76
  name: bundler
57
77
  requirement: !ruby/object:Gem::Requirement
@@ -96,8 +116,10 @@ files:
96
116
  - lib/rggen/core/builder/input_component_registry.rb
97
117
  - lib/rggen/core/builder/layer.rb
98
118
  - lib/rggen/core/builder/list_feature_entry.rb
119
+ - lib/rggen/core/builder/loader_registry.rb
99
120
  - lib/rggen/core/builder/output_component_registry.rb
100
- - lib/rggen/core/builder/plugins.rb
121
+ - lib/rggen/core/builder/plugin_manager.rb
122
+ - lib/rggen/core/builder/plugin_spec.rb
101
123
  - lib/rggen/core/builder/simple_feature_entry.rb
102
124
  - lib/rggen/core/cli.rb
103
125
  - lib/rggen/core/configuration.rb
@@ -111,6 +133,7 @@ files:
111
133
  - lib/rggen/core/configuration/json_loader.rb
112
134
  - lib/rggen/core/configuration/loader.rb
113
135
  - lib/rggen/core/configuration/ruby_loader.rb
136
+ - lib/rggen/core/configuration/toml_loader.rb
114
137
  - lib/rggen/core/configuration/yaml_loader.rb
115
138
  - lib/rggen/core/core_extensions/object.rb
116
139
  - lib/rggen/core/dsl.rb
@@ -124,9 +147,11 @@ files:
124
147
  - lib/rggen/core/input_base/input_data.rb
125
148
  - lib/rggen/core/input_base/input_matcher.rb
126
149
  - lib/rggen/core/input_base/input_value.rb
150
+ - lib/rggen/core/input_base/input_value_extractor.rb
127
151
  - lib/rggen/core/input_base/json_loader.rb
128
152
  - lib/rggen/core/input_base/loader.rb
129
153
  - lib/rggen/core/input_base/property.rb
154
+ - lib/rggen/core/input_base/toml_loader.rb
130
155
  - lib/rggen/core/input_base/verifier.rb
131
156
  - lib/rggen/core/input_base/yaml_loader.rb
132
157
  - lib/rggen/core/options.rb
@@ -139,6 +164,7 @@ files:
139
164
  - lib/rggen/core/output_base/file_writer.rb
140
165
  - lib/rggen/core/output_base/raise_error.rb
141
166
  - lib/rggen/core/output_base/template_engine.rb
167
+ - lib/rggen/core/plugin.rb
142
168
  - lib/rggen/core/printers.rb
143
169
  - lib/rggen/core/register_map.rb
144
170
  - lib/rggen/core/register_map/component.rb
@@ -151,6 +177,7 @@ files:
151
177
  - lib/rggen/core/register_map/json_loader.rb
152
178
  - lib/rggen/core/register_map/loader.rb
153
179
  - lib/rggen/core/register_map/ruby_loader.rb
180
+ - lib/rggen/core/register_map/toml_loader.rb
154
181
  - lib/rggen/core/register_map/yaml_loader.rb
155
182
  - lib/rggen/core/utility/attribute_setter.rb
156
183
  - lib/rggen/core/utility/code_utility.rb
@@ -184,8 +211,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
211
  - !ruby/object:Gem::Version
185
212
  version: '0'
186
213
  requirements: []
187
- rubygems_version: 3.1.2
214
+ rubygems_version: 3.2.3
188
215
  signing_key:
189
216
  specification_version: 4
190
- summary: rggen-core-0.20.0
217
+ summary: rggen-core-0.24.0
191
218
  test_files: []
@@ -1,79 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RgGen
4
- module Core
5
- module Builder
6
- class Plugin
7
- DEFAULT_PLUGIN_VERSION = '0.0.0'
8
-
9
- def initialize(name, module_or_version, &block)
10
- @name = name
11
- @block = block
12
- @version, @plugin_module =
13
- if module_or_version.is_a?(Module)
14
- [extract_version(module_or_version), module_or_version]
15
- else
16
- [module_or_version || DEFAULT_PLUGIN_VERSION]
17
- end
18
- end
19
-
20
- attr_reader :name
21
- attr_reader :version
22
-
23
- def default_setup(builder)
24
- @plugin_module &&
25
- begin
26
- @plugin_module.respond_to?(:default_setup) &&
27
- @plugin_module.default_setup(builder)
28
- end
29
- end
30
-
31
- def optional_setup(builder)
32
- @block &&
33
- if @plugin_module
34
- @plugin_module.instance_exec(builder, &@block)
35
- else
36
- @block.call(builder)
37
- end
38
- end
39
-
40
- def version_info
41
- "#{name} #{version}"
42
- end
43
-
44
- private
45
-
46
- def extract_version(plugin_module)
47
- if plugin_module.const_defined?(:VERSION)
48
- plugin_module.const_get(:VERSION)
49
- elsif plugin_module.respond_to?(:version)
50
- plugin_module.version
51
- else
52
- DEFAULT_PLUGIN_VERSION
53
- end
54
- end
55
- end
56
-
57
- class Plugins
58
- def initialize
59
- @plugins = []
60
- end
61
-
62
- def add(name, module_or_version, &block)
63
- @plugins << Plugin.new(name, module_or_version, &block)
64
- end
65
-
66
- def activate(builder, **options)
67
- options[:no_default_setup] ||
68
- @plugins.each { |plugin| plugin.default_setup(builder) }
69
- options[:no_optional_setup] ||
70
- @plugins.each { |plugin| plugin.optional_setup(builder) }
71
- end
72
-
73
- def version_info
74
- @plugins.map(&:version_info)
75
- end
76
- end
77
- end
78
- end
79
- end