rggen-core 0.20.0 → 0.24.0

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