rggen-core 0.33.1 → 0.35.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +2 -2
  4. data/lib/rggen/core/base/component_factory.rb +2 -2
  5. data/lib/rggen/core/base/feature.rb +5 -4
  6. data/lib/rggen/core/base/feature_variable.rb +123 -0
  7. data/lib/rggen/core/base/internal_struct.rb +2 -2
  8. data/lib/rggen/core/builder/builder.rb +5 -4
  9. data/lib/rggen/core/builder/component_registry.rb +6 -6
  10. data/lib/rggen/core/builder/feature_entry_base.rb +4 -4
  11. data/lib/rggen/core/builder/feature_registry.rb +21 -20
  12. data/lib/rggen/core/builder/general_feature_entry.rb +5 -6
  13. data/lib/rggen/core/builder/input_component_registry.rb +2 -2
  14. data/lib/rggen/core/builder/layer.rb +65 -34
  15. data/lib/rggen/core/builder/list_feature_entry.rb +12 -9
  16. data/lib/rggen/core/builder/loader_registry.rb +4 -4
  17. data/lib/rggen/core/builder/plugin_manager.rb +14 -3
  18. data/lib/rggen/core/builder/simple_feature_entry.rb +5 -6
  19. data/lib/rggen/core/configuration/component_factory.rb +2 -2
  20. data/lib/rggen/core/configuration/feature.rb +0 -2
  21. data/lib/rggen/core/configuration/feature_factory.rb +0 -1
  22. data/lib/rggen/core/configuration/input_data.rb +2 -4
  23. data/lib/rggen/core/configuration/loader.rb +0 -1
  24. data/lib/rggen/core/core_extensions/kernel.rb +1 -1
  25. data/lib/rggen/core/core_extensions/object.rb +0 -7
  26. data/lib/rggen/core/dsl.rb +2 -1
  27. data/lib/rggen/core/exceptions.rb +3 -3
  28. data/lib/rggen/core/generator.rb +0 -2
  29. data/lib/rggen/core/input_base/component_factory.rb +27 -15
  30. data/lib/rggen/core/input_base/error.rb +1 -1
  31. data/lib/rggen/core/input_base/feature.rb +68 -72
  32. data/lib/rggen/core/input_base/feature_factory.rb +2 -1
  33. data/lib/rggen/core/input_base/input_data.rb +6 -4
  34. data/lib/rggen/core/input_base/input_vaue_parser.rb +2 -12
  35. data/lib/rggen/core/input_base/loader.rb +24 -4
  36. data/lib/rggen/core/input_base/option_hash_parser.rb +1 -1
  37. data/lib/rggen/core/input_base/property.rb +7 -17
  38. data/lib/rggen/core/input_base/verifier.rb +11 -4
  39. data/lib/rggen/core/options.rb +2 -2
  40. data/lib/rggen/core/output_base/code_generatable.rb +82 -0
  41. data/lib/rggen/core/output_base/feature.rb +16 -86
  42. data/lib/rggen/core/register_map/component_factory.rb +9 -4
  43. data/lib/rggen/core/register_map/feature.rb +0 -1
  44. data/lib/rggen/core/register_map/feature_factory.rb +0 -1
  45. data/lib/rggen/core/register_map/input_data.rb +10 -12
  46. data/lib/rggen/core/utility/attribute_setter.rb +13 -10
  47. data/lib/rggen/core/utility/code_utility/source_file.rb +1 -1
  48. data/lib/rggen/core/utility/code_utility.rb +2 -2
  49. data/lib/rggen/core/utility/regexp_patterns.rb +1 -1
  50. data/lib/rggen/core/version.rb +1 -1
  51. data/lib/rggen/core.rb +2 -3
  52. metadata +7 -11
  53. data/lib/rggen/core/configuration/error.rb +0 -20
  54. data/lib/rggen/core/output_base/code_generator.rb +0 -45
  55. data/lib/rggen/core/register_map/error.rb +0 -20
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RgGen
4
- module Core
5
- module OutputBase
6
- class CodeGenerator
7
- def register(kind, &block)
8
- block_given? && (code_blocks[kind] << block)
9
- end
10
-
11
- def generate(context, code, kind)
12
- code_blocks[kind].each do |block|
13
- execute_code_block(context, code, &block)
14
- end
15
- end
16
-
17
- def copy
18
- generator = CodeGenerator.new
19
- generator.copy_code_blocks(@code_blocks) if @code_blocks
20
- generator
21
- end
22
-
23
- private
24
-
25
- def code_blocks
26
- @code_blocks ||= Hash.new { |blocks, kind| blocks[kind] = [] }
27
- end
28
-
29
- def execute_code_block(context, code, &block)
30
- if block.arity.zero?
31
- code << context.instance_exec(&block)
32
- else
33
- context.instance_exec(code, &block)
34
- end
35
- end
36
-
37
- protected
38
-
39
- def copy_code_blocks(original_blocks)
40
- original_blocks.each { |kind, blocks| code_blocks[kind] = blocks.dup }
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RgGen
4
- module Core
5
- module RegisterMap
6
- class RegisterMapError < Core::RuntimeError
7
- end
8
-
9
- module RaiseError
10
- include InputBase::RaiseError
11
-
12
- private
13
-
14
- def error_exception
15
- RegisterMapError
16
- end
17
- end
18
- end
19
- end
20
- end