power_stencil 0.3.1

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