eco-helpers 3.0.25 → 3.0.27

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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -1
  3. data/eco-helpers.gemspec +1 -1
  4. data/lib/eco/api/common/loaders/base.rb +13 -1
  5. data/lib/eco/api/common/loaders/case_base.rb +1 -1
  6. data/lib/eco/api/common/loaders/error_handler.rb +1 -1
  7. data/lib/eco/api/common/loaders/parser.rb +2 -2
  8. data/lib/eco/api/common/loaders/policy.rb +1 -1
  9. data/lib/eco/api/common/loaders/use_case.rb +1 -1
  10. data/lib/eco/api/common/people/default_parsers/archived_parser.rb +19 -0
  11. data/lib/eco/api/common/people/default_parsers/boolean_parser.rb +4 -4
  12. data/lib/eco/api/common/people/default_parsers/date_parser.rb +3 -3
  13. data/lib/eco/api/common/people/default_parsers/freemium_parser.rb +6 -6
  14. data/lib/eco/api/common/people/default_parsers/login_providers_parser.rb +3 -3
  15. data/lib/eco/api/common/people/default_parsers/multi_parser.rb +4 -4
  16. data/lib/eco/api/common/people/default_parsers/policy_groups_parser.rb +9 -6
  17. data/lib/eco/api/common/people/default_parsers/send_invites_parser.rb +6 -5
  18. data/lib/eco/api/common/people/default_parsers/xls_parser.rb +2 -2
  19. data/lib/eco/api/common/people/default_parsers.rb +1 -0
  20. data/lib/eco/api/common/people/entries.rb +16 -15
  21. data/lib/eco/api/common/people/person_entry.rb +53 -37
  22. data/lib/eco/api/common/people/person_parser.rb +8 -6
  23. data/lib/eco/api/common/session/logger/channels.rb +1 -1
  24. data/lib/eco/api/common/session/logger.rb +2 -2
  25. data/lib/eco/api/common/session/mailer/aws_provider.rb +3 -2
  26. data/lib/eco/api/common/session/mailer/provider_base.rb +6 -2
  27. data/lib/eco/api/common/session/mailer/sendgrid_provider.rb +9 -9
  28. data/lib/eco/api/common/session/mailer.rb +8 -3
  29. data/lib/eco/api/common/session/sftp.rb +2 -2
  30. data/lib/eco/api/common/version_patches/object.rb +2 -1
  31. data/lib/eco/api/custom/mailer.rb +1 -1
  32. data/lib/eco/api/error/handlers.rb +3 -3
  33. data/lib/eco/api/error.rb +17 -17
  34. data/lib/eco/api/microcases/people/apply_changes/set_account/account_excluded.rb +3 -11
  35. data/lib/eco/api/microcases/people/apply_changes/set_core/core_excluded.rb +4 -1
  36. data/lib/eco/api/microcases/people/manage/search.rb +3 -1
  37. data/lib/eco/api/organization/people.rb +1 -0
  38. data/lib/eco/api/policies.rb +2 -2
  39. data/lib/eco/api/session/batch/job.rb +2 -2
  40. data/lib/eco/api/session/batch/launcher.rb +4 -5
  41. data/lib/eco/api/session/batch/searcher.rb +4 -4
  42. data/lib/eco/api/session/config/api.rb +2 -2
  43. data/lib/eco/api/session/config/apis/enviro_spaces.rb +3 -3
  44. data/lib/eco/api/session/config/apis/space_helpers.rb +4 -4
  45. data/lib/eco/api/session/config/apis.rb +1 -1
  46. data/lib/eco/api/session/config/post_launch.rb +7 -4
  47. data/lib/eco/api/session/config/sftp.rb +1 -1
  48. data/lib/eco/api/session/config/tagtree.rb +1 -1
  49. data/lib/eco/api/session/config/workflow.rb +4 -4
  50. data/lib/eco/api/session/config.rb +25 -24
  51. data/lib/eco/api/session.rb +4 -4
  52. data/lib/eco/api/usecases/base_io/validations.rb +4 -3
  53. data/lib/eco/api/usecases/cli/option.rb +5 -2
  54. data/lib/eco/api/usecases/default/people/amend/clear_abilities_case.rb +2 -2
  55. data/lib/eco/api/usecases/default/people/amend/restore_db_case.rb +16 -9
  56. data/lib/eco/api/usecases/default/people/treat/analyse_people_case.rb +20 -20
  57. data/lib/eco/api/usecases/default.rb +5 -5
  58. data/lib/eco/api/usecases/default_cases/to_csv_case.rb +8 -8
  59. data/lib/eco/api/usecases/default_cases/upsert_case.rb +4 -4
  60. data/lib/eco/api/usecases/graphql/helpers/base.rb +1 -1
  61. data/lib/eco/api/usecases/graphql/helpers/location/base/tree_tracking.rb +5 -1
  62. data/lib/eco/api/usecases/graphql/helpers/location/command/diffs/stages/commandable.rb +2 -1
  63. data/lib/eco/api/usecases/graphql/helpers/location/command/result.rb +3 -3
  64. data/lib/eco/api/usecases/graphql/helpers/location/command.rb +3 -0
  65. data/lib/eco/api/usecases/graphql/samples/location/command/dsl.rb +2 -2
  66. data/lib/eco/api/usecases/graphql/samples/location/command/service/tree_update.rb +9 -3
  67. data/lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible/inputable.rb +5 -4
  68. data/lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible/parsing.rb +5 -2
  69. data/lib/eco/api/usecases/graphql/samples/location/service/tree_diff.rb +3 -3
  70. data/lib/eco/api/usecases/graphql/utils/sftp.rb +1 -1
  71. data/lib/eco/api/usecases/lib/{file_pattern.rb → files/file_pattern.rb} +5 -1
  72. data/lib/eco/api/usecases/lib/{sftp.rb → files/sftp.rb} +27 -16
  73. data/lib/eco/api/usecases/lib/files.rb +7 -0
  74. data/lib/eco/api/usecases/lib.rb +1 -2
  75. data/lib/eco/api/usecases/ooze_cases/export_register_case.rb +5 -5
  76. data/lib/eco/api/usecases/ooze_samples/helpers/exportable_ooze.rb +14 -11
  77. data/lib/eco/api/usecases/ooze_samples/helpers_migration/copying.rb +14 -23
  78. data/lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb +49 -27
  79. data/lib/eco/api/usecases/ooze_samples/ooze_base_case.rb +9 -9
  80. data/lib/eco/api/usecases/ooze_samples/ooze_run_base_case.rb +1 -1
  81. data/lib/eco/api/usecases/ooze_samples/register_export_case.rb +25 -17
  82. data/lib/eco/api/usecases/ooze_samples/register_migration_case.rb +41 -24
  83. data/lib/eco/api/usecases/ooze_samples/register_update_case.rb +16 -15
  84. data/lib/eco/api/usecases/samples/drivers/cli/sftp_cli.rb +15 -15
  85. data/lib/eco/api/usecases/samples/drivers/cli/url_pull_cli.rb +5 -5
  86. data/lib/eco/api/usecases/samples/drivers/sftp_sample.rb +2 -2
  87. data/lib/eco/api/usecases/use_case.rb +6 -6
  88. data/lib/eco/api/usecases/use_case_chain/chaining.rb +6 -6
  89. data/lib/eco/api/usecases/use_case_chain.rb +4 -4
  90. data/lib/eco/api/usecases/use_case_io.rb +2 -1
  91. data/lib/eco/api/usecases.rb +9 -9
  92. data/lib/eco/cli/config/options_set.rb +4 -4
  93. data/lib/eco/cli/config/use_cases.rb +3 -3
  94. data/lib/eco/cli/scripting/argument.rb +1 -1
  95. data/lib/eco/cli_default/input.rb +9 -9
  96. data/lib/eco/cli_default/options.rb +125 -100
  97. data/lib/eco/cli_default/people.rb +3 -3
  98. data/lib/eco/cli_default/usecases.rb +83 -83
  99. data/lib/eco/cli_default/workflow.rb +7 -7
  100. data/lib/eco/data/files/helpers.rb +3 -3
  101. data/lib/eco/data/fuzzy_match/result.rb +69 -26
  102. data/lib/eco/data/fuzzy_match/results.rb +10 -10
  103. data/lib/eco/data/fuzzy_match/score.rb +13 -8
  104. data/lib/eco/data/fuzzy_match.rb +65 -48
  105. data/lib/eco/data/locations/node_base/treeify.rb +13 -11
  106. data/lib/eco/data/mapper.rb +4 -4
  107. data/lib/eco/language/auxiliar_logger.rb +4 -4
  108. data/lib/eco/language/delegation/const_delegator.rb +64 -0
  109. data/lib/eco/language/delegation/const_lookup_hooks.rb +81 -0
  110. data/lib/eco/language/delegation/delegated_class.rb +84 -0
  111. data/lib/eco/language/delegation.rb +8 -0
  112. data/lib/eco/language/klass/when_inherited.rb +1 -0
  113. data/lib/eco/language/methods/delegate_missing.rb +1 -0
  114. data/lib/eco/language/models/class_helpers.rb +25 -23
  115. data/lib/eco/language/models/collection.rb +12 -2
  116. data/lib/eco/language.rb +1 -0
  117. data/lib/eco/version.rb +1 -1
  118. metadata +12 -6
@@ -15,7 +15,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
15
15
  end
16
16
  end
17
17
 
18
- name "register-update-case"
18
+ name 'register-update-case'
19
19
  type :other
20
20
 
21
21
  attr_reader :retrieved_oozes, :non_retrieved_oozes
@@ -33,7 +33,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
33
33
  process_ooze(&block)
34
34
  end
35
35
  elsif mode == :delegate
36
- raise "You need to pass a block when running main in `:delegate` mode" unless block_given?
36
+ raise 'You need to pass a block when running main in `:delegate` mode' unless block_given?
37
37
  yield
38
38
  end
39
39
  end
@@ -42,7 +42,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
42
42
  end
43
43
 
44
44
  def process_ooze(_ooze = target)
45
- raise "You need to define this method"
45
+ raise 'You need to define this method'
46
46
  end
47
47
 
48
48
  private
@@ -63,8 +63,8 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
63
63
 
64
64
  def new_target(object, warn_pending_changes: false)
65
65
  enqueue(object)
66
- super(object, warn_pending_changes: warn_pending_changes) do |pending|
67
- #enqueue(pending)
66
+ super do |pending|
67
+ # enqueue(pending)
68
68
  end
69
69
  end
70
70
 
@@ -79,7 +79,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
79
79
  end
80
80
 
81
81
  if (pending = queue_shift(page_result.id)) && dirty?(pending)
82
- msg = "Inconsistent search results. "
82
+ msg = 'Inconsistent search results. '
83
83
  msg << "Launching update on '#{object_reference(pending)}' to be able to queue it back"
84
84
  log(:warn) { msg }
85
85
  update_ooze(pending)
@@ -186,7 +186,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
186
186
  end
187
187
 
188
188
  def backup_patch!(ooze = target)
189
- return if (patch_doc(ooze) || {})["page"]
189
+ return if (patch_doc(ooze) || {})['page']
190
190
 
191
191
  log(:info) {
192
192
  "No changes to update for #{object_reference(ooze)}."
@@ -198,17 +198,17 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
198
198
  @total_search_oozes = search_results.total
199
199
 
200
200
  str_results = "Total target entries: #{search_results.total} (out of #{search_results.total_before_filtering})"
201
- default_answer = session.config.run_mode_remote?? "Y" : "N"
201
+ default_answer = session.config.run_mode_remote?? 'Y' : 'N'
202
202
 
203
203
  session.prompt_user(
204
- "Do you want to proceed (y/N):",
204
+ 'Do you want to proceed (y/N):',
205
205
  explanation: str_results,
206
206
  default: default_answer,
207
207
  timeout: 10
208
208
  ) do |res|
209
- next if res.upcase.start_with?("Y")
210
- puts "..."
211
- log(:info) { "Aborting script..." }
209
+ next if res.upcase.start_with?('Y')
210
+ puts '...'
211
+ log(:info) { 'Aborting script...' }
212
212
  exit(0)
213
213
  end
214
214
  end
@@ -233,7 +233,7 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
233
233
 
234
234
  def kpis_message
235
235
  msg = []
236
- msg << "Run end:"
236
+ msg << 'Run end:'
237
237
  msg << " * Search results: #{total_search_oozes}"
238
238
  msg << " * Duplicated search results #{dupped_search_oozes}"
239
239
  msg << " * Retrieved a total of #{retrieved_oozes}"
@@ -254,12 +254,13 @@ class Eco::API::UseCases::OozeSamples::RegisterUpdateCase < Eco::API::UseCases::
254
254
  end
255
255
 
256
256
  def conf_filters
257
- return filters if respond_to?(:filters)
257
+ return filters if respond_to?(:filters, true)
258
+
258
259
  []
259
260
  end
260
261
 
261
262
  def conf_search
262
- search if respond_to?(:search)
263
+ search if respond_to?(:search, true)
263
264
  end
264
265
 
265
266
  def register_id
@@ -1,45 +1,45 @@
1
1
  class Eco::API::UseCases::Samples::Drivers::Sftp
2
2
  class Cli < Eco::API::UseCases::Cli
3
- desc "SFTP case: manages remote files that match a file pattern"
3
+ desc 'SFTP case: manages remote files that match a file pattern'
4
4
 
5
- add_option("-file-pattern-const", "Constant that should be used as a pattern") do |options|
6
- pattern_const = SCR.get_arg("-file-pattern-const", with_param: true)
5
+ add_option('-file-pattern-const', 'Constant that should be used as a pattern') do |options|
6
+ pattern_const = SCR.get_arg('-file-pattern-const', with_param: true)
7
7
  options.deep_merge!(sftp: {file_pattern_const: pattern_const})
8
8
  end
9
9
 
10
- add_option("-list", "It lists all the files present in the remote folder for the current environment.") do |options|
10
+ add_option('-list', 'It lists all the files present in the remote folder for the current environment.') do |options|
11
11
  options.deep_merge!(sftp: {command: :list})
12
12
  end
13
13
 
14
- add_option("-get-last", "It gets the last file present in the remote folder for the current environment.") do |options|
14
+ add_option('-get-last', 'It gets the last file present in the remote folder for the current environment.') do |options|
15
15
  options.deep_merge!(sftp: {command: :get_last})
16
16
  end
17
17
 
18
- add_option("-get", "It gets all the files present in the remote folder for the current environment.") do |options|
18
+ add_option('-get', 'It gets all the files present in the remote folder for the current environment.') do |options|
19
19
  options.deep_merge!(sftp: {command: :get})
20
20
  end
21
21
 
22
- add_option("-archive", "It moves all the files present in the remote folder to the archive subfolder.") do |options|
22
+ add_option('-archive', 'It moves all the files present in the remote folder to the archive subfolder.') do |options|
23
23
  options.deep_merge!(sftp: {command: :archive})
24
24
  end
25
25
 
26
- add_option("-local-folder", "Local folder to pull the remote files to.") do |options|
27
- local_folder = SCR.get_file("-local-folder", required: true, should_exist: true)
26
+ add_option('-local-folder', 'Local folder to pull the remote files to.') do |options|
27
+ local_folder = SCR.get_file('-local-folder', required: true, should_exist: true)
28
28
  options.deep_merge!(sftp: {local_folder: local_folder})
29
29
  end
30
30
 
31
- add_option("-remote-subfolder", "Remote sub folder to pull the remote files from.") do |options|
32
- remote_subfolder = SCR.get_arg("-remote-subfolder", with_param: true)
31
+ add_option('-remote-subfolder', 'Remote sub folder to pull the remote files from.') do |options|
32
+ remote_subfolder = SCR.get_arg('-remote-subfolder', with_param: true)
33
33
  options.deep_merge!(sftp: {remote_subfolder: remote_subfolder})
34
34
  end
35
35
 
36
- add_option("-remote-target-folder", "Overrides -remote-subfolder and -remote-folder.") do |options|
37
- remote_target_folder = SCR.get_arg("-remote-target-folder", with_param: true)
36
+ add_option('-remote-target-folder', 'Overrides -remote-subfolder and -remote-folder.') do |options|
37
+ remote_target_folder = SCR.get_arg('-remote-target-folder', with_param: true)
38
38
  options.deep_merge!(sftp: {remote_target_folder: remote_target_folder})
39
39
  end
40
40
 
41
- add_option("-remote-folder", "Overrides -remote-folder (but not -remote-subfolder).") do |options|
42
- remote_folder = SCR.get_arg("-remote-folder", with_param: true)
41
+ add_option('-remote-folder', 'Overrides -remote-folder (but not -remote-subfolder).') do |options|
42
+ remote_folder = SCR.get_arg('-remote-folder', with_param: true)
43
43
  options.deep_merge!(sftp: {remote_folder: remote_folder})
44
44
  end
45
45
  end
@@ -1,14 +1,14 @@
1
1
  class Eco::API::UseCases::Samples::Drivers::UrlPull
2
2
  class Cli < Eco::API::UseCases::Cli
3
- desc "Url Pull sample: pull the file from a specific URL"
3
+ desc 'Url Pull sample: pull the file from a specific URL'
4
4
 
5
- add_option("-target-url-const", "Constant that should be used as a pattern") do |options|
6
- url_const = SCR.get_arg("-target-url-const", with_param: true)
5
+ add_option('-target-url-const', 'Constant that should be used as a pattern') do |options|
6
+ url_const = SCR.get_arg('-target-url-const', with_param: true)
7
7
  options.deep_merge!(url_pull: {target_url_const: url_const})
8
8
  end
9
9
 
10
- add_option("-local-folder", "Local folder to pull the remote files to.") do |options|
11
- local_folder = SCR.get_file("-local-folder", required: true, should_exist: true)
10
+ add_option('-local-folder', 'Local folder to pull the remote files to.') do |options|
11
+ local_folder = SCR.get_file('-local-folder', required: true, should_exist: true)
12
12
  options.deep_merge!(url_pull: {local_folder: local_folder})
13
13
  end
14
14
  end
@@ -5,8 +5,8 @@ class Eco::API::UseCases::Samples::Drivers::Sftp < Eco::API::Common::Loaders::Us
5
5
  name 'sftp'
6
6
  type :other
7
7
 
8
- include Eco::API::UseCases::Lib::Sftp
9
- include Eco::API::UseCases::Lib::FilePattern
8
+ include Eco::API::UseCases::Lib::Files::Sftp
9
+ include Eco::API::UseCases::Lib::Files::FilePattern
10
10
 
11
11
  def main(session, options, _usecase)
12
12
  options[:end_get] = false
@@ -106,32 +106,32 @@ module Eco
106
106
 
107
107
  if dt
108
108
  @data = dt
109
- singleton_class.attr_reader(:data) unless respond_to?(:data)
109
+ singleton_class.attr_reader(:data) unless respond_to?(:data, true)
110
110
 
111
111
  case mdl
112
112
  when :people
113
113
  @people = dt
114
- singleton_class.attr_reader(:people) unless respond_to?(:people)
114
+ singleton_class.attr_reader(:people) unless respond_to?(:people, true)
115
115
  when :contractors
116
116
  @contractors = dt
117
- singleton_class.attr_reader(:contractors) unless respond_to?(:contractors)
117
+ singleton_class.attr_reader(:contractors) unless respond_to?(:contractors, true)
118
118
  end
119
119
  end
120
120
 
121
121
  if ent # entries/input
122
122
  @input = ent
123
- singleton_class.attr_reader(:input) unless respond_to?(:input)
123
+ singleton_class.attr_reader(:input) unless respond_to?(:input, true)
124
124
 
125
125
  # Below problematic code... usage has cases where entries = (gets assigned)
126
126
  # @entries = ent
127
- # singleton_class.attr_reader(:entries) unless respond_to?(:entries)
127
+ # singleton_class.attr_reader(:entries) unless respond_to?(:entries, true)
128
128
  end
129
129
 
130
130
  # `self` is the use case itself (when used the Loader)
131
131
  next unless is_a?(Eco::API::Common::Loaders::CaseBase)
132
132
 
133
133
  @usecase = use_case_self
134
- singleton_class.attr_reader(:usecase) unless respond_to?(:usecase)
134
+ singleton_class.attr_reader(:usecase) unless respond_to?(:usecase, true)
135
135
  end
136
136
 
137
137
  true
@@ -37,10 +37,10 @@ class Eco::API::UseCases::UseCaseChain
37
37
  msg << "Looks like a recursive cyclic chain 'use'"
38
38
  raise msg if @@num_chains >= MAX_CHAINS
39
39
 
40
- msg = "A UseCase can only be chained with another UseCase"
40
+ msg = 'A UseCase can only be chained with another UseCase'
41
41
  raise msg if usecase && !usecase.is_a?(UseCase)
42
42
 
43
- msg = "Missuse. Please use either parameter or block but not both"
43
+ msg = 'Missuse. Please use either parameter or block but not both'
44
44
  raise msg if block_given? && usecase
45
45
 
46
46
  usecase = block if block_given?
@@ -51,7 +51,7 @@ class Eco::API::UseCases::UseCaseChain
51
51
  protected
52
52
 
53
53
  def chain_to(usecase)
54
- msg = "A UseCase can only be chained with another UseCase"
54
+ msg = 'A UseCase can only be chained with another UseCase'
55
55
  raise msg if usecase && !usecase.is_a?(UseCase)
56
56
 
57
57
  usecase.chain(self)
@@ -60,7 +60,7 @@ class Eco::API::UseCases::UseCaseChain
60
60
  def resolved_chains(use_group = nil)
61
61
  return @resolved_chains if @resolved_chains
62
62
 
63
- msg = "Only Eco::API::UseCases object can contain resolved chains. "
63
+ msg = 'Only Eco::API::UseCases object can contain resolved chains. '
64
64
  msg << "Given: #{use_group.class}"
65
65
  raise msg if use_group && !use_group.is_a?(Eco::API::UseCases)
66
66
 
@@ -68,7 +68,7 @@ class Eco::API::UseCases::UseCaseChain
68
68
  @resolved_chains = @chains.map do |usecase|
69
69
  usecase = usecase.call(use_group) if usecase.respond_to?(:call)
70
70
 
71
- msg = "A UseCase can only be chained with another UseCase"
71
+ msg = 'A UseCase can only be chained with another UseCase'
72
72
  raise msg if usecase && !usecase.is_a?(UseCase)
73
73
 
74
74
  usecase.resolved_chains(use_group) if usecase.respond_to?(:resolved_chains)
@@ -81,7 +81,7 @@ class Eco::API::UseCases::UseCaseChain
81
81
  private
82
82
 
83
83
  def reset_chains!
84
- @chains = []
84
+ @chains = []
85
85
  @resolved_chains = nil
86
86
  end
87
87
  end
@@ -8,7 +8,7 @@ module Eco
8
8
 
9
9
  def initialize(name = nil, root:, type: nil, model: nil, usecase: nil, &block)
10
10
  if usecase
11
- msg = "Expected Eco::API::UseCases::UseCase. "
11
+ msg = 'Expected Eco::API::UseCases::UseCase. '
12
12
  msg << "Given #{usecase.class}"
13
13
  raise msg unless usecase.is_a?(Eco::API::UseCases::UseCase)
14
14
 
@@ -25,14 +25,14 @@ module Eco
25
25
  def root=(value)
26
26
  return super unless @resolved_chains # rubocop:disable Lint/ReturnInVoidContext
27
27
 
28
- msg = "You cannot change root Eco::API::UseCases "
29
- msg << "once the chains have been resolved"
28
+ msg = 'You cannot change root Eco::API::UseCases '
29
+ msg << 'once the chains have been resolved'
30
30
  raise msg
31
31
  end
32
32
 
33
33
  # @see Eco::API::UseCases::UseCase#launch
34
34
  def launch(io: nil, **kargs)
35
- super(io: io, **kargs).tap do |uio|
35
+ super.tap do |uio|
36
36
  next if resolved_chains.empty?
37
37
 
38
38
  resolved_chains.each do |usecase|
@@ -27,6 +27,7 @@ module Eco
27
27
  def new(usecase:, **kargs)
28
28
  default = { usecase: usecase }
29
29
  default.merge!(job: @job) if @job
30
+
30
31
  super(**default.merge(kargs))
31
32
  end
32
33
 
@@ -59,7 +60,7 @@ module Eco
59
60
  # @see Eco::API::UseCases::BaseIO#params
60
61
  # Same as its superclass but adding `usecase` and `job` parameters
61
62
  def params(keyed: false, all: false)
62
- super(keyed: keyed, all: all).tap do |res|
63
+ super.tap do |res|
63
64
  if keyed
64
65
  res.merge!(usecase: usecase)
65
66
  res.merge!(job: @job) if @job
@@ -4,17 +4,17 @@ module Eco
4
4
  class UseCases
5
5
  class UnknownCase < StandardError
6
6
  def initialize(msg = nil, case_name: nil, type: nil)
7
- msg ||= "Unknown case"
8
- msg += ". Case name '#{case_name}'" if case_name
9
- msg += ". Case type '#{type}'" if type
7
+ msg ||= 'Unknown case'
8
+ msg << ". Case name '#{case_name}'" if case_name
9
+ msg << ". Case type '#{type}'" if type
10
10
  super(msg)
11
11
  end
12
12
  end
13
13
 
14
14
  class AmbiguousCaseReference < StandardError
15
15
  def initialize(msg = nil, case_name: nil)
16
- msg ||= "You must specify type when there are multiple cases with same name"
17
- msg += ". Case name '#{case_name}'" if case_name
16
+ msg ||= 'You must specify type when there are multiple cases with same name'
17
+ msg << ". Case name '#{case_name}'" if case_name
18
18
  super(msg)
19
19
  end
20
20
  end
@@ -22,8 +22,8 @@ module Eco
22
22
  extend Eco::API::Common::ClassAutoLoader
23
23
  include Enumerable
24
24
 
25
- autoloads_children_of "Eco::API::Common::Loaders::UseCase"
26
- autoload_namespace_ignore "Eco::API"
25
+ autoloads_children_of 'Eco::API::Common::Loaders::UseCase'
26
+ autoload_namespace_ignore 'Eco::API'
27
27
 
28
28
  def initialize
29
29
  @usecases = {}
@@ -160,11 +160,11 @@ module Eco
160
160
  end
161
161
 
162
162
  def name(key)
163
- key.to_s.split(":").first
163
+ key.to_s.split(':').first
164
164
  end
165
165
 
166
166
  def type
167
- key.to_s.split(":").last&.to_sym
167
+ key.to_s.split(':').last&.to_sym
168
168
  end
169
169
  end
170
170
  end
@@ -17,16 +17,16 @@ module Eco
17
17
  def help(refine: nil)
18
18
  indent = 2
19
19
  spaces = any_non_general_space_active? ? active_namespaces : namespaces
20
- refinement = refine.is_a?(String)? " (containing: '#{refine}')" : ""
20
+ refinement = refine.is_a?(String)? " (containing: '#{refine}')" : ''
21
21
 
22
22
  ["The following are the available options#{refinement}:"].then do |lines|
23
23
  max_len = keys_max_len(options_args(spaces)) + indent
24
24
 
25
25
  spaces.each do |namespace|
26
26
  is_general = (namespace == :general)
27
- str_indent = is_general ? "" : " " * indent
27
+ str_indent = is_general ? '' : ' ' * indent
28
28
 
29
- lines << help_line(namespace, "", max_len) unless is_general
29
+ lines << help_line(namespace, '', max_len) unless is_general
30
30
 
31
31
  options_set(namespace).select do |_arg, option| # rubocop:disable Style/HashEachMethods
32
32
  !refine.is_a?(String) || option.name.include?(refine)
@@ -63,7 +63,7 @@ module Eco
63
63
  # @param namespace [String] preceding command(s) argument that enables this option.
64
64
  # @param desc [String] description of the option.
65
65
  def add(option, desc = nil, namespace: :general, &block)
66
- raise "Missing block to define the options builder" unless block_given?
66
+ raise 'Missing block to define the options builder' unless block_given?
67
67
 
68
68
  opts = [option].flatten.compact
69
69
  return self if opts.empty?
@@ -27,7 +27,7 @@ module Eco
27
27
 
28
28
  # @return [String] summary of the use cases.
29
29
  def help(refine: nil)
30
- refinement = refine.is_a?(String)? " (containing: '#{refine}')" : ""
30
+ refinement = refine.is_a?(String)? " (containing: '#{refine}')" : ''
31
31
 
32
32
  ["The following are the available use cases#{refinement}:"].then do |lines|
33
33
  max_len = keys_max_len(@linked_cases.keys)
@@ -103,7 +103,7 @@ module Eco
103
103
  processed = false
104
104
 
105
105
  active(io: io).each do |usecase, data|
106
- raise "Something went wrong when scoping active cases" unless data
106
+ raise 'Something went wrong when scoping active cases' unless data
107
107
 
108
108
  processed = true
109
109
  io = case_io(io: io, usecase: usecase)
@@ -154,7 +154,7 @@ module Eco
154
154
  def validate_io!(io)
155
155
  return if io.is_a?(Eco::API::UseCases::BaseIO)
156
156
 
157
- msg = "You need to provide Eco::API::UseCases::BaseIO object. "
157
+ msg = 'You need to provide Eco::API::UseCases::BaseIO object. '
158
158
  msg << "Given: #{io.class}"
159
159
  raise ArgumentError, msg
160
160
  end
@@ -6,7 +6,7 @@ module Eco
6
6
 
7
7
  class << self
8
8
  def is_modifier?(value)
9
- value&.start_with?("-")
9
+ value&.start_with?('-')
10
10
  end
11
11
  end
12
12
 
@@ -1,20 +1,20 @@
1
1
  class Eco::CliDefault::Input < Eco::API::Common::Loaders::CliConfig
2
2
  FORMATS = {
3
3
  csv: {
4
- option: ["-csv"],
5
- extname: [".csv", ".txt"]
4
+ option: ['-csv'],
5
+ extname: ['.csv', '.txt']
6
6
  },
7
7
  xml: {
8
- option: ["-xml"],
9
- extname: [".xml"]
8
+ option: ['-xml'],
9
+ extname: ['.xml']
10
10
  },
11
11
  xls: {
12
- option: ["-xls", "-xlsx", "-excel"],
13
- extname: [".xls", ".xlsx", ".xlsm"]
12
+ option: ['-xls', '-xlsx', '-excel'],
13
+ extname: ['.xls', '.xlsx', '.xlsm']
14
14
  },
15
15
  json: {
16
- option: ["-json"],
17
- extname: [".json"]
16
+ option: ['-json'],
17
+ extname: ['.json']
18
18
  }
19
19
  }.freeze
20
20
 
@@ -45,7 +45,7 @@ class Eco::CliDefault::Input < Eco::API::Common::Loaders::CliConfig
45
45
  end
46
46
  end
47
47
 
48
- input(default_option: "-entries-from") do |session, str_opt, options|
48
+ input(default_option: '-entries-from') do |session, str_opt, options|
49
49
  @options = options
50
50
  @session = session
51
51
  input = []