power_stencil 0.3.1

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 (132) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +198 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/bin/update_plugin_template +79 -0
  13. data/doc/builds.md +267 -0
  14. data/doc/entities.md +964 -0
  15. data/doc/example_use_cases.md +59 -0
  16. data/doc/images/power-stencil-entity-build.svg +481 -0
  17. data/doc/images/power-stencil-entity-creation.svg +375 -0
  18. data/doc/images/power-stencil-simple-flow.svg +265 -0
  19. data/doc/plugins.md +169 -0
  20. data/doc/templates.md +333 -0
  21. data/etc/base_commands_definition.yml +259 -0
  22. data/etc/meta_templates/plugin_seed/etc/command_line.yaml +12 -0
  23. data/etc/meta_templates/plugin_seed/etc/plugin_config.yaml +4 -0
  24. data/etc/meta_templates/plugin_seed/etc/templates/.git_keep +0 -0
  25. data/etc/meta_templates/plugin_seed/lib/{entity}.rb.erb +34 -0
  26. data/etc/meta_templates/plugin_seed/lib/{entity}/entity_definitions/{entity}_entity.rb.erb +11 -0
  27. data/etc/meta_templates/plugin_seed/lib/{entity}/plugin_helper.rb.erb +17 -0
  28. data/etc/meta_templates/plugin_seed/lib/{entity}/version.rb.erb +3 -0
  29. data/etc/meta_templates/plugin_seed/lib/{entity}/{entity}_processor.rb.erb +19 -0
  30. data/etc/meta_templates/plugin_seed/psplugin_{entity}.gemspec +36 -0
  31. data/etc/power_stencil.yaml +92 -0
  32. data/etc/templates/plugin_definition/.gitignore +11 -0
  33. data/etc/templates/plugin_definition/.rspec +3 -0
  34. data/etc/templates/plugin_definition/.travis.yml +5 -0
  35. data/etc/templates/plugin_definition/CODE_OF_CONDUCT.md +74 -0
  36. data/etc/templates/plugin_definition/Gemfile +6 -0
  37. data/etc/templates/plugin_definition/LICENSE.txt +21 -0
  38. data/etc/templates/plugin_definition/README.md +43 -0
  39. data/etc/templates/plugin_definition/Rakefile +6 -0
  40. data/etc/templates/plugin_definition/bin/console +14 -0
  41. data/etc/templates/plugin_definition/bin/setup +8 -0
  42. data/etc/templates/plugin_definition/etc/command_line.yaml +12 -0
  43. data/etc/templates/plugin_definition/etc/plugin_config.yaml +4 -0
  44. data/etc/templates/plugin_definition/etc/templates/.git_keep +1 -0
  45. data/etc/templates/plugin_definition/lib/{entity}.rb.erb +34 -0
  46. data/etc/templates/plugin_definition/lib/{entity}/entity_definitions/{entity}_entity.rb.erb +11 -0
  47. data/etc/templates/plugin_definition/lib/{entity}/plugin_helper.rb.erb +17 -0
  48. data/etc/templates/plugin_definition/lib/{entity}/version.rb.erb +3 -0
  49. data/etc/templates/plugin_definition/lib/{entity}/{entity}_processor.rb.erb +19 -0
  50. data/etc/templates/plugin_definition/psplugin_{entity}.gemspec +36 -0
  51. data/etc/templates/plugin_definition/spec/spec_helper.rb +14 -0
  52. data/etc/templates/plugin_definition/spec/{entity}_spec.rb +9 -0
  53. data/etc/templates/project/.copy_ignore +2 -0
  54. data/etc/templates/project/.gitignore.erb +6 -0
  55. data/etc/templates/project/.ps_project/entities/.gitkeep +0 -0
  56. data/etc/templates/project/.ps_project/entities/README.md +11 -0
  57. data/etc/templates/project/.ps_project/entity_definitions/.gitkeep +0 -0
  58. data/etc/templates/project/.ps_project/entity_definitions/README.md +15 -0
  59. data/etc/templates/project/.ps_project/personal-config.yaml +8 -0
  60. data/etc/templates/project/.ps_project/plugins/.gitkeep +0 -0
  61. data/etc/templates/project/.ps_project/templates-templates/.gitkeep +0 -0
  62. data/etc/templates/project/.ps_project/templates-templates/README.md +13 -0
  63. data/etc/templates/project/.ps_project/user_entities/.gitkeep +0 -0
  64. data/etc/templates/project/.ps_project/user_entities/README.md +12 -0
  65. data/etc/templates/project/.ps_project/versioned-config.yaml +6 -0
  66. data/etc/templates/simple_exec/main.sh +4 -0
  67. data/exe/power_stencil +28 -0
  68. data/lib/power_stencil.rb +53 -0
  69. data/lib/power_stencil/command_processors/build.rb +43 -0
  70. data/lib/power_stencil/command_processors/check.rb +35 -0
  71. data/lib/power_stencil/command_processors/create.rb +70 -0
  72. data/lib/power_stencil/command_processors/delete.rb +38 -0
  73. data/lib/power_stencil/command_processors/edit.rb +35 -0
  74. data/lib/power_stencil/command_processors/entity_helper.rb +105 -0
  75. data/lib/power_stencil/command_processors/get.rb +22 -0
  76. data/lib/power_stencil/command_processors/info.rb +41 -0
  77. data/lib/power_stencil/command_processors/init.rb +47 -0
  78. data/lib/power_stencil/command_processors/new_plugin.rb +31 -0
  79. data/lib/power_stencil/command_processors/root.rb +27 -0
  80. data/lib/power_stencil/command_processors/shell.rb +37 -0
  81. data/lib/power_stencil/command_processors/trace_helper.rb +20 -0
  82. data/lib/power_stencil/dsl/base.rb +24 -0
  83. data/lib/power_stencil/dsl/entities.rb +46 -0
  84. data/lib/power_stencil/dsl/plugin_generation.rb +17 -0
  85. data/lib/power_stencil/engine/base.rb +50 -0
  86. data/lib/power_stencil/engine/build_handling.rb +77 -0
  87. data/lib/power_stencil/engine/directory_processor.rb +111 -0
  88. data/lib/power_stencil/engine/entities_definitions.rb +42 -0
  89. data/lib/power_stencil/engine/entities_handling.rb +76 -0
  90. data/lib/power_stencil/engine/entity_engine.rb +20 -0
  91. data/lib/power_stencil/engine/init_engine.rb +18 -0
  92. data/lib/power_stencil/engine/project_engine.rb +75 -0
  93. data/lib/power_stencil/engine/renderers/erb.rb +21 -0
  94. data/lib/power_stencil/error.rb +20 -0
  95. data/lib/power_stencil/initializer.rb +87 -0
  96. data/lib/power_stencil/plugins/base.rb +54 -0
  97. data/lib/power_stencil/plugins/capabilities.rb +30 -0
  98. data/lib/power_stencil/plugins/command_line.rb +27 -0
  99. data/lib/power_stencil/plugins/config.rb +32 -0
  100. data/lib/power_stencil/plugins/dependencies.rb +32 -0
  101. data/lib/power_stencil/plugins/gem.rb +57 -0
  102. data/lib/power_stencil/plugins/require.rb +77 -0
  103. data/lib/power_stencil/plugins/templates.rb +21 -0
  104. data/lib/power_stencil/project/base.rb +79 -0
  105. data/lib/power_stencil/project/config.rb +54 -0
  106. data/lib/power_stencil/project/create.rb +30 -0
  107. data/lib/power_stencil/project/info.rb +72 -0
  108. data/lib/power_stencil/project/paths.rb +119 -0
  109. data/lib/power_stencil/project/plugins.rb +89 -0
  110. data/lib/power_stencil/project/proxy.rb +13 -0
  111. data/lib/power_stencil/project/templates.rb +56 -0
  112. data/lib/power_stencil/project/versioning.rb +29 -0
  113. data/lib/power_stencil/system_entity_definitions/all.rb +14 -0
  114. data/lib/power_stencil/system_entity_definitions/buildable.rb +23 -0
  115. data/lib/power_stencil/system_entity_definitions/entity_override.rb +8 -0
  116. data/lib/power_stencil/system_entity_definitions/entity_project_common.rb +33 -0
  117. data/lib/power_stencil/system_entity_definitions/has_associated_files.rb +13 -0
  118. data/lib/power_stencil/system_entity_definitions/non_persistent.rb +14 -0
  119. data/lib/power_stencil/system_entity_definitions/plugin.rb +17 -0
  120. data/lib/power_stencil/system_entity_definitions/process_descriptor.rb +15 -0
  121. data/lib/power_stencil/system_entity_definitions/project_config.rb +24 -0
  122. data/lib/power_stencil/system_entity_definitions/project_entity.rb +16 -0
  123. data/lib/power_stencil/system_entity_definitions/simple_exec.rb +47 -0
  124. data/lib/power_stencil/utils/directory_processor.rb +54 -0
  125. data/lib/power_stencil/utils/file_edit.rb +87 -0
  126. data/lib/power_stencil/utils/file_helper.rb +56 -0
  127. data/lib/power_stencil/utils/gem_utils.rb +13 -0
  128. data/lib/power_stencil/utils/secure_require.rb +26 -0
  129. data/lib/power_stencil/utils/semantic_version.rb +128 -0
  130. data/lib/power_stencil/version.rb +3 -0
  131. data/power_stencil.gemspec +32 -0
  132. metadata +287 -0
@@ -0,0 +1,13 @@
1
+ PowerStencil project templates
2
+ ==============================
3
+
4
+
5
+ In this directory, you can define project specific templates for entities
6
+ defined locally in this project.
7
+
8
+ Templates can be a whole tree structure in a directory named from the entity
9
+ type of entities you defined in `entity_definitions` folder that are `buildable`.
10
+
11
+ __It is strongly advised to keep this directory under source control__
12
+
13
+ This should be the PowerStencil default behaviour.
@@ -0,0 +1,12 @@
1
+ PowerStencil user entities
2
+ ==========================
3
+
4
+
5
+ In this directory, you will find all project entities locally defined by
6
+ the user (overrides but also entities not meant to be versioned)
7
+
8
+ They are organized as `<entity_type>/<entity_name>.yaml`
9
+
10
+ __It is strongly advised NOT to keep this directory under source control__
11
+
12
+ This should be the default PowerStencil behaviour.
@@ -0,0 +1,6 @@
1
+ # This file has been generated on the <%= Time.now %> by the power stencil framework (v: <%= PowerStencil::VERSION %>)
2
+ # THIS FILE *IS* MEANT TO BE VERSIONED (and is by default)
3
+ # You can use it for any configuration you want to keep at repository level
4
+
5
+ # If you want to ensure a minimal version number of PowerStencil
6
+ :min_power_stencil_version: <%= PowerStencil::VERSION %>
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+ # Generated on the <%= Time.now %>
3
+
4
+ echo "Nothing to do... Easy task..."
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'power_stencil'
5
+ require 'climatic/script/base'
6
+
7
+ PowerStencil.bootstrap
8
+
9
+ module PowerStencil
10
+ class Script
11
+
12
+ include Climatic::Script::Base
13
+ include Climatic::Proxy
14
+
15
+ private
16
+
17
+ def display_help_and_exit
18
+ puts config.command_line_help
19
+ exit 0
20
+ end
21
+
22
+ end
23
+ end
24
+
25
+ PowerStencil::Script.start
26
+
27
+
28
+
@@ -0,0 +1,53 @@
1
+ require 'power_stencil/version'
2
+
3
+ require 'universe_compiler'
4
+ require 'dir_glob_ignore'
5
+
6
+ $DO_NOT_AUTOSTART_CLIMATIC=true
7
+ require 'climatic'
8
+
9
+ require 'power_stencil/error'
10
+ require 'power_stencil/utils/semantic_version'
11
+ require 'power_stencil/utils/file_helper'
12
+ require 'power_stencil/utils/directory_processor'
13
+ require 'power_stencil/utils/secure_require'
14
+ require 'power_stencil/utils/gem_utils'
15
+ require 'power_stencil/utils/file_edit'
16
+
17
+ require 'climatic/script/unimplemented_processor'
18
+ require 'power_stencil/project/proxy'
19
+
20
+ require 'power_stencil/command_processors/trace_helper'
21
+ require 'power_stencil/command_processors/entity_helper'
22
+ require 'power_stencil/command_processors/root'
23
+ require 'power_stencil/command_processors/init'
24
+ require 'power_stencil/command_processors/info'
25
+ require 'power_stencil/command_processors/get'
26
+ require 'power_stencil/command_processors/check'
27
+ require 'power_stencil/command_processors/create'
28
+ require 'power_stencil/command_processors/edit'
29
+ require 'power_stencil/command_processors/delete'
30
+ require 'power_stencil/command_processors/shell'
31
+ require 'power_stencil/command_processors/new_plugin'
32
+ require 'power_stencil/command_processors/build'
33
+
34
+
35
+ module PowerStencil
36
+
37
+ # Module for plugins
38
+ module Plugin; end
39
+
40
+ end
41
+
42
+ require 'power_stencil/engine/base'
43
+ require 'power_stencil/plugins/base'
44
+ require 'power_stencil/project/base'
45
+
46
+ require 'power_stencil/initializer'
47
+
48
+
49
+ module PowerStencil
50
+
51
+ extend PowerStencil::Initializer
52
+
53
+ end
@@ -0,0 +1,43 @@
1
+ module PowerStencil
2
+ module CommandProcessors
3
+
4
+ class Build
5
+
6
+ include Climatic::Script::UnimplementedProcessor
7
+ include Climatic::Proxy
8
+ include PowerStencil::Project::Proxy
9
+ include PowerStencil::CommandProcessors::EntityHelper
10
+
11
+
12
+
13
+ def execute
14
+ if config.command_line_layer.extra_parameters.empty?
15
+ raise PowerStencil::Error, 'Please specify something to build'
16
+ end
17
+
18
+ if config[:'supported-builds']
19
+ project.engine.available_entities_hash.select do |_, klass|
20
+ klass.respond_to?(:buildable?) and klass.buildable?
21
+ end .each do |entity_type, _|
22
+ puts " - '#{entity_type}'"
23
+ end
24
+ return
25
+ end
26
+
27
+ targets = targets_from_criteria analyse_extra_params, project.engine.root_universe
28
+ raise PowerStencil::Error, 'No valid entity specified' if targets.empty?
29
+ project.engine.build targets, fail_on_error: config[:'fail-on-error'], parallelized: config[:parallelized]
30
+ project.engine.last_build_report.each do |entity_full_name, entity_report|
31
+ if entity_report == ['Ok']
32
+ puts " - '#{entity_full_name}' has been correctly built"
33
+ else
34
+ puts " - Failed to build '#{entity_full_name}' because ", entity_report
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+ end
@@ -0,0 +1,35 @@
1
+ module PowerStencil
2
+ module CommandProcessors
3
+
4
+ class Check
5
+
6
+ include Climatic::Script::UnimplementedProcessor
7
+ include Climatic::Proxy
8
+ include PowerStencil::Project::Proxy
9
+ include PowerStencil::CommandProcessors::EntityHelper
10
+
11
+ def execute
12
+ puts 'RAW ENTITIES'
13
+ targets = targets_from_criteria analyse_extra_params, project.engine.root_universe
14
+ targets.sort {|a,b| a.as_path <=> b.as_path }
15
+ .map do |entity|
16
+ entity_info = [" '#{entity.as_path}':"]
17
+ entity_info << " - Storage path : '#{entity.source_uri}'"
18
+ entity_info << " - Templates path : '#{entity.templates_path}'" if entity.respond_to? :templates_path
19
+ entity_info << " - Status : #{entity.valid? ? 'Valid' : 'INVALID !'} "
20
+ entity_info << " - Buildable : #{entity.buildable?}"
21
+ entity_info
22
+ end .each { |l| puts l }
23
+
24
+
25
+ #
26
+ # targets.map do |entity|
27
+ # " - '#{entity.as_path}': '#{entity.source_uri}'"
28
+ # end .sort.each { |l| puts l }
29
+ end
30
+
31
+
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,70 @@
1
+ module PowerStencil
2
+ module CommandProcessors
3
+
4
+ class Create
5
+
6
+ include Climatic::Script::UnimplementedProcessor
7
+ include Climatic::Proxy
8
+ include PowerStencil::Project::Proxy
9
+ include PowerStencil::CommandProcessors::EntityHelper
10
+ include PowerStencil::Utils::FileEdit
11
+
12
+ def execute
13
+ analyse_extra_params.each do |search_criterion|
14
+ begin
15
+ puts_and_logs "Creating new entity '#{search_criterion.as_path}'"
16
+ entity_as_hash = {name: search_criterion.name}
17
+ unless config[:property].nil?
18
+ config[:property].each do |property_def|
19
+ if md = property_def.match(/^\s*(?<prop_name>[^:=]+)\s*[:=]\s*(?<prop_val>.*)\s*$/)
20
+ logger.debug "Using extra properties from command line '#{md['prop_name']}' = '#{md['prop_val']}'"
21
+ entity_as_hash[md['prop_name'].to_sym] = md['prop_val']
22
+ else
23
+ raise PowerStencil::Error, "Invalid command line property definition: '#{property_def}'"
24
+ end
25
+ end
26
+ end
27
+
28
+ new_entity = project.engine.new_entity project.engine.root_universe,
29
+ search_criterion.type,
30
+ fields: entity_as_hash,
31
+ user: config[:user]
32
+
33
+ if config[:edit]
34
+ logger.debug "Edit mode for entity #{new_entity.to_composite_key} in #{new_entity.source_uri}"
35
+ new_entity = edit_before_save new_entity
36
+ end
37
+
38
+ new_entity.valid? raise_error: true
39
+ new_entity.save
40
+
41
+ puts "Created '#{new_entity.as_path}'"
42
+ rescue => e
43
+ puts "Failed to create '#{search_criterion.as_path}' with message '#{e.message}'."
44
+ logger.debug PowerStencil::Error.report_error(e)
45
+ end
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def modifications_valid?(modified_path, original_entity)
52
+ test_entity = UniverseCompiler::Entity::Persistence.load modified_path
53
+ test_entity.valid?
54
+ rescue => e
55
+ logger.debug PowerStencil::Error.report_error(e)
56
+ logger.debug "Modifications applied to '#{original_entity.as_path}' are invalid !"
57
+ false
58
+ end
59
+
60
+ def edit_before_save(entity)
61
+ securely_edit_entity entity do |modified_path, _|
62
+ modifications_valid? modified_path, entity
63
+ end
64
+ end
65
+
66
+
67
+ end
68
+
69
+ end
70
+ end
@@ -0,0 +1,38 @@
1
+ module PowerStencil
2
+ module CommandProcessors
3
+
4
+ class Delete
5
+
6
+ include Climatic::Script::UnimplementedProcessor
7
+ include Climatic::Proxy
8
+ include PowerStencil::Project::Proxy
9
+ include PowerStencil::CommandProcessors::EntityHelper
10
+
11
+ def execute
12
+ analyse_extra_params.each do |search_criterion|
13
+ begin
14
+ unless project.engine.entity *search_criterion.to_a, project.engine.root_universe
15
+ puts "Skipping '#{search_criterion.as_path}'. Entity not found."
16
+ next
17
+ end
18
+ puts_and_logs "Deleting entity '#{search_criterion.as_path}'"
19
+ if project.engine.delete_entity project.engine.root_universe,
20
+ *search_criterion.to_a,
21
+ delete_files: config[:'delete-files']
22
+ msg = "Deleted '#{search_criterion.as_path}'"
23
+ msg << ' and associated files.' if config[:'delete-files']
24
+ puts msg
25
+ else
26
+ puts 'Cancelled by user input.'
27
+ end
28
+ rescue => e
29
+ puts "Failed to delete '#{search_criterion.as_path}' with message '#{e.message}'."
30
+ logger.debug PowerStencil::Error.report_error(e)
31
+ end
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+ end
@@ -0,0 +1,35 @@
1
+ module PowerStencil
2
+ module CommandProcessors
3
+
4
+ class Edit
5
+
6
+ include Climatic::Script::UnimplementedProcessor
7
+ include Climatic::Proxy
8
+ include PowerStencil::Project::Proxy
9
+ include PowerStencil::CommandProcessors::EntityHelper
10
+ include PowerStencil::Utils::FileEdit
11
+
12
+ def execute
13
+ targets = targets_from_criteria analyse_extra_params, project.engine.root_universe
14
+ targets.each do |target|
15
+ securely_edit_file target.source_uri do |modified_path, _|
16
+ modifications_valid? modified_path, target
17
+ end
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def modifications_valid?(modified_path, original_entity)
24
+ test_entity = UniverseCompiler::Entity::Persistence.load modified_path
25
+ test_entity.valid?
26
+ rescue => e
27
+ logger.debug PowerStencil::Error.report_error(e)
28
+ logger.debug "Modifications applied to '#{original_entity.as_path}' are invalid !"
29
+ false
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,105 @@
1
+ module PowerStencil
2
+ module CommandProcessors
3
+
4
+ module EntityHelper
5
+
6
+ EntitySearchReference = Struct.new(:type, :name) do
7
+ def as_path
8
+ [type, name].map(&:to_s).join '/'
9
+ end
10
+ end
11
+
12
+ def display_entity(entity)
13
+ puts_and_logs "# Entity '#{entity.name}' (#{entity.type})"
14
+ if config[:'names-only']
15
+ puts "- #{entity.name}"
16
+ else
17
+ if config[:raw]
18
+ puts entity.to_yaml
19
+ else
20
+ puts entity.to_hash.to_yaml
21
+ end
22
+ end
23
+ end
24
+
25
+ def targets_from_criteria(search_criteria, universe)
26
+ target_universe = if config[:compiled]
27
+ universe.compile scenario: config[:scenario]
28
+ else
29
+ universe
30
+ end
31
+
32
+ if config[:regexp]
33
+ target_universe.get_entities do |entity|
34
+ id = entity.as_path
35
+ keep = false
36
+ search_criteria.each do |criterion|
37
+ if md = id.match(/#{criterion}/i)
38
+ keep = true
39
+ break
40
+ end
41
+ end
42
+ keep
43
+ end
44
+ else
45
+ search_criteria.inject([]) do |res, criterion|
46
+ res.concat target_universe.get_entities(criterion: :by_uniq_key, value: criterion.to_a)
47
+ end
48
+ end
49
+ end
50
+
51
+ def extra_params_to_entity_search_criteria(params)
52
+ criteria = []
53
+ next_entity_reference = EntitySearchReference.new
54
+ stack = params.dup
55
+ if config[:regexp]
56
+ criteria = stack
57
+ else
58
+ stack.each do |param|
59
+ if md = param.match(/^\s*(?<type>[^\/]+)\/(?<name>.+)\s*$/)
60
+ next_entity_reference.type = md[:type].to_sym
61
+ next_entity_reference.name = md[:name]
62
+ else
63
+ if next_entity_reference.type.nil? or next_entity_reference.type.empty?
64
+ next_entity_reference.type = param.to_sym
65
+ else
66
+ next_entity_reference.name = param
67
+ end
68
+ end
69
+
70
+ next unless reference_complete? next_entity_reference
71
+ logger.debug "Found entity search pattern in params: #{next_entity_reference.inspect}"
72
+ criteria << next_entity_reference
73
+ next_entity_reference = EntitySearchReference.new
74
+ end
75
+ unless next_entity_reference.type.nil?
76
+ raise PowerStencil::Error, "Invalid parameter '#{next_entity_reference.type}' !"
77
+ end
78
+ end
79
+
80
+ criteria
81
+ end
82
+
83
+ private
84
+
85
+
86
+ def analyse_extra_params(extra_params = config.command_line_layer.extra_parameters, default: [''])
87
+ params_to_check = if extra_params.empty? then
88
+ config[:regexp] = true
89
+ default
90
+ else
91
+ extra_params
92
+ end
93
+ extra_params_to_entity_search_criteria params_to_check
94
+ end
95
+
96
+ def reference_complete?(reference)
97
+ return false if (reference.type.nil? or reference.name.nil?)
98
+ return false if (reference.type.empty? or reference.name.empty?)
99
+ true
100
+ end
101
+
102
+ end
103
+
104
+ end
105
+ end