eco-helpers 3.0.37 → 3.1.2

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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/CHANGELOG.md +132 -1
  4. data/lib/eco/api/common/loaders/base.rb +2 -2
  5. data/lib/eco/api/common/loaders/case_base.rb +2 -0
  6. data/lib/eco/api/common/loaders/config/block.rb +78 -0
  7. data/lib/eco/api/common/loaders/config/workflow/mailer.rb +49 -6
  8. data/lib/eco/api/common/loaders/config.rb +3 -26
  9. data/lib/eco/api/common/loaders/error_handler.rb +2 -0
  10. data/lib/eco/api/common/loaders/parser.rb +1 -4
  11. data/lib/eco/api/common/people/entries.rb +23 -6
  12. data/lib/eco/api/common/people/entry_factory.rb +1 -1
  13. data/lib/eco/api/common/people/person_entry.rb +104 -27
  14. data/lib/eco/api/common/people/person_parser.rb +50 -16
  15. data/lib/eco/api/common/people/supervisor_helpers.rb +12 -6
  16. data/lib/eco/api/common/session/base_session.rb +75 -81
  17. data/lib/eco/api/common/session/environment.rb +70 -70
  18. data/lib/eco/api/common/session/file_manager.rb +132 -135
  19. data/lib/eco/api/common/session/helpers/prompt_user.rb +23 -30
  20. data/lib/eco/api/common/session/helpers.rb +10 -15
  21. data/lib/eco/api/common/session/logger/cache.rb +94 -96
  22. data/lib/eco/api/common/session/logger/channels.rb +24 -32
  23. data/lib/eco/api/common/session/logger/log.rb +38 -46
  24. data/lib/eco/api/common/session/logger.rb +50 -54
  25. data/lib/eco/api/common/session/mailer/aws_provider.rb +64 -71
  26. data/lib/eco/api/common/session/mailer/provider_base.rb +43 -48
  27. data/lib/eco/api/common/session/mailer/sendgrid_provider.rb +101 -109
  28. data/lib/eco/api/common/session/mailer.rb +78 -83
  29. data/lib/eco/api/common/session/s3_uploader.rb +132 -138
  30. data/lib/eco/api/common/session/sftp.rb +202 -208
  31. data/lib/eco/api/common.rb +0 -3
  32. data/lib/eco/api/custom/mailer.rb +4 -2
  33. data/lib/eco/api/error/handlers.rb +1 -1
  34. data/lib/eco/api/microcases/people/apply_changes/set_core/core_excluded.rb +8 -2
  35. data/lib/eco/api/microcases/people/manage/search.rb +2 -2
  36. data/lib/eco/api/organization/people/similarity.rb +3 -3
  37. data/lib/eco/api/organization/people.rb +2 -2
  38. data/lib/eco/api/session/batch/base_policy.rb +42 -27
  39. data/lib/eco/api/session/batch/launcher/mode_size.rb +6 -1
  40. data/lib/eco/api/session/batch/launcher.rb +16 -3
  41. data/lib/eco/api/session/config/api.rb +4 -3
  42. data/lib/eco/api/session/config/apis/one_off.rb +1 -1
  43. data/lib/eco/api/session/config/files.rb +13 -12
  44. data/lib/eco/api/session/config/workflow.rb +1 -373
  45. data/lib/eco/api/session/config.rb +45 -10
  46. data/lib/eco/api/session.rb +7 -9
  47. data/lib/eco/api/usecases/base_case/model.rb +6 -6
  48. data/lib/eco/api/usecases/base_case.rb +1 -1
  49. data/lib/eco/api/usecases/cli.rb +1 -1
  50. data/lib/eco/api/usecases/default/locations/tagtree_extract_case.rb +22 -13
  51. data/lib/eco/api/usecases/default_cases/to_csv_case.rb +4 -1
  52. data/lib/eco/api/usecases/graphql/helpers/location/tags_remap.rb +6 -3
  53. data/lib/eco/api/usecases/graphql/samples/location/command/dsl.rb +2 -2
  54. data/lib/eco/api/usecases/lib/base/env.rb +21 -23
  55. data/lib/eco/api/usecases/lib/files/file_pattern.rb +41 -14
  56. data/lib/eco/api/usecases/lib/files/input_file.rb +110 -0
  57. data/lib/eco/api/usecases/lib/files/sftp.rb +5 -2
  58. data/lib/eco/api/usecases/lib/files.rb +1 -0
  59. data/lib/eco/api/usecases/lib/locations/base.rb +23 -0
  60. data/lib/eco/api/usecases/lib/locations/mapping.rb +94 -0
  61. data/lib/eco/api/usecases/lib/locations.rb +7 -0
  62. data/lib/eco/api/usecases/lib/people/base.rb +20 -0
  63. data/lib/eco/api/usecases/lib/people.rb +6 -0
  64. data/lib/eco/api/usecases/lib.rb +2 -0
  65. data/lib/eco/api/usecases/ooze_cases.rb +1 -1
  66. data/lib/eco/api/usecases/ooze_samples/ooze_base_case.rb +1 -1
  67. data/lib/eco/api/usecases/ooze_samples/ooze_from_doc_case.rb +3 -3
  68. data/lib/eco/api/usecases/ooze_samples/ooze_run_base_case.rb +4 -1
  69. data/lib/eco/api/usecases/ooze_samples/ooze_update_case.rb +1 -1
  70. data/lib/eco/api/usecases/ooze_samples/register_export_case.rb +6 -2
  71. data/lib/eco/api/usecases/ooze_samples/register_migration_case.rb +7 -6
  72. data/lib/eco/api/usecases/ooze_samples/register_update_case.rb +14 -4
  73. data/lib/eco/api/usecases/ooze_samples/target_oozes_update_case.rb +11 -8
  74. data/lib/eco/api/usecases/samples/drivers/sftp_sample.rb +2 -0
  75. data/lib/eco/api/usecases/samples/drivers/url_pull_sample.rb +8 -2
  76. data/lib/eco/api/usecases/service/sftp/with_target_config.rb +0 -33
  77. data/lib/eco/api/usecases/service/sftp.rb +7 -1
  78. data/lib/eco/api/usecases/use_case.rb +3 -2
  79. data/lib/eco/api/usecases/workflow.rb +5 -0
  80. data/lib/eco/api/usecases.rb +12 -5
  81. data/lib/eco/cli/scripting/args_helpers.rb +1 -9
  82. data/lib/eco/cli_default/options.rb +98 -68
  83. data/lib/eco/cli_default/workflow/end.rb +22 -0
  84. data/lib/eco/cli_default/workflow/launch_jobs.rb +14 -0
  85. data/lib/eco/cli_default/workflow/load/data.rb +27 -0
  86. data/lib/eco/cli_default/workflow/load/input.rb +28 -0
  87. data/lib/eco/cli_default/workflow/load.rb +13 -0
  88. data/lib/eco/cli_default/workflow/options.rb +18 -0
  89. data/lib/eco/cli_default/workflow/post_launch.rb +65 -0
  90. data/lib/eco/cli_default/workflow/report.rb +17 -0
  91. data/lib/eco/cli_default/workflow/rescued_exception.rb +21 -0
  92. data/lib/eco/cli_default/workflow/usecases.rb +23 -0
  93. data/lib/eco/cli_default/workflow.rb +24 -180
  94. data/lib/eco/data/count_trace.rb +51 -0
  95. data/lib/eco/data/files/content.rb +39 -0
  96. data/lib/eco/data/files/directory.rb +78 -45
  97. data/lib/eco/data/files/encoding.rb +12 -21
  98. data/lib/eco/data/files/file_pattern.rb +15 -8
  99. data/lib/eco/data/files/folder.rb +196 -0
  100. data/lib/eco/data/files/relative_path.rb +54 -0
  101. data/lib/eco/data/files/timestamp.rb +18 -0
  102. data/lib/eco/data/files.rb +46 -5
  103. data/lib/eco/data/fuzzy_match.rb +1 -1
  104. data/lib/eco/data/hashes/array_diff.rb +11 -5
  105. data/lib/eco/data/hashes/diff_result/meta.rb +12 -4
  106. data/lib/eco/data/locations/node_diff/accessors.rb +1 -1
  107. data/lib/eco/data/mapper.rb +8 -1
  108. data/lib/eco/data.rb +1 -0
  109. data/lib/eco/language/auxiliar_logger.rb +6 -11
  110. data/lib/eco/language/delegation/delegating_missing.rb +1 -1
  111. data/lib/eco/language/delegation/delegating_missing_const.rb +1 -1
  112. data/lib/eco/language/delegation/delegating_missing_on_class.rb +1 -1
  113. data/lib/eco/language/delegation/for_delegator/delegated_class.rb +1 -1
  114. data/lib/eco/language/klass/auto_loader.rb +129 -0
  115. data/lib/eco/language/klass/builder.rb +6 -6
  116. data/lib/eco/language/klass/const.rb +19 -0
  117. data/lib/eco/language/klass/helpers_built.rb +3 -1
  118. data/lib/eco/language/klass/hierarchy.rb +5 -1
  119. data/lib/eco/language/klass/naming.rb +5 -2
  120. data/lib/eco/language/klass/resolver.rb +21 -6
  121. data/lib/eco/language/klass/uid.rb +12 -0
  122. data/lib/eco/language/klass/when_inherited.rb +30 -6
  123. data/lib/eco/language/klass.rb +5 -2
  124. data/lib/eco/language/methods/access_modifier.rb +23 -0
  125. data/lib/eco/language/methods/instance_method_helpers.rb +6 -1
  126. data/lib/eco/language/methods.rb +1 -0
  127. data/lib/eco/language/models/hierarchy.rb +41 -0
  128. data/lib/eco/language/models/workflow.rb +385 -0
  129. data/lib/eco/language/models.rb +2 -1
  130. data/lib/eco/version.rb +1 -1
  131. metadata +31 -7
  132. data/lib/eco/api/common/class_auto_loader.rb +0 -114
  133. data/lib/eco/api/common/class_helpers.rb +0 -9
  134. data/lib/eco/api/common/class_hierarchy.rb +0 -45
  135. data/lib/eco/data/files/helpers.rb +0 -152
  136. data/lib/eco/language/models/class_helpers.rb +0 -136
@@ -1,73 +1,73 @@
1
- module Eco
2
- module API
3
- module Common
4
- module Session
5
- class Environment
6
- attr_reader :config, :session
7
- attr_reader :file_manager, :logger
8
-
9
- alias_method :fm, :file_manager
10
-
11
- #@param init [Eco::API::Common::Session::Environment] object to ini the session environment
12
- #@param session [Eco::API::Session, nil] the current session
13
- def initialize(init = {}, session:)
14
- init = init.conf if init.is_a?(Environment)
15
-
16
- msg = "Expected object Eco::API::Session::Config or Environment. Given: #{init}"
17
- raise msg unless init.is_a?(Eco::API::Session::Config)
18
-
19
- invalid_session = session && !session.is_a?(Eco::API::Session)
20
- raise "Expected an Eco::API::Session object. Given: #{session}" if invalid_session
21
-
22
- @config = init
23
- @session = session
24
- @file_manager = Eco::API::Common::Session::FileManager.new(enviro: self)
25
- @logger = Eco::API::Common::Session::Logger.new(enviro: self)
26
- end
27
-
28
- def mailer
29
- return nil unless mailer?
30
- @mailer ||= Eco::API::Common::Session::Mailer.new(enviro: self)
31
- end
32
-
33
- def mailer?
34
- config.mailer.configured?
35
- end
36
-
37
- def sftp
38
- return nil unless sftp?
39
- @sftp ||= Eco::API::Common::Session::SFTP.new(enviro: self)
40
- end
41
-
42
- def sftp?
43
- config.sftp.configured?
44
- end
45
-
46
- def s3uploader
47
- return nil unless s3uploader?
48
- @s3uploader ||= Eco::API::Common::Session::S3Uploader.new(enviro: self)
49
- end
50
-
51
- def s3uploader?
52
- config.s3storage.configured?
53
- end
54
-
55
- def api(version: nil)
56
- config.api(logger, version: version)
57
- end
58
-
59
- def api?(version:)
60
- config.apis.active_api.version_available?(version)
61
- end
62
-
63
- # Shortcut to logger.
64
- def log(level, &block)
65
- return unless logger.respond_to?(:level)
66
-
67
- logger&.send(level, &block)
68
- end
69
- end
70
- end
1
+ module Eco::API::Common::Session
2
+ class Environment
3
+ attr_reader :config, :session
4
+ attr_reader :file_manager, :logger
5
+
6
+ alias_method :fm, :file_manager
7
+
8
+ #@param init [Eco::API::Common::Session::Environment] object to ini the session environment
9
+ #@param session [Eco::API::Session, nil] the current session
10
+ def initialize(init = {}, session:)
11
+ init = init.conf if init.is_a?(Environment)
12
+
13
+ msg = "Expected object Eco::API::Session::Config or Environment. Given: #{init}"
14
+ raise msg unless init.is_a?(Eco::API::Session::Config)
15
+
16
+ invalid_session = session && !session.is_a?(Eco::API::Session)
17
+ raise "Expected an Eco::API::Session object. Given: #{session}" if invalid_session
18
+
19
+ @config = init
20
+ @session = session
21
+ @file_manager = Eco::API::Common::Session::FileManager.new(enviro: self)
22
+ @logger = Eco::API::Common::Session::Logger.new(enviro: self)
23
+ end
24
+
25
+ def mailer
26
+ return unless mailer?
27
+
28
+ @mailer ||= Eco::API::Common::Session::Mailer.new(enviro: self)
29
+ end
30
+
31
+ def mailer?
32
+ config.mailer.configured?
33
+ end
34
+
35
+ def sftp
36
+ return unless sftp?
37
+
38
+ @sftp ||= Eco::API::Common::Session::SFTP.new(enviro: self)
39
+ end
40
+
41
+ def sftp?
42
+ config.sftp.configured?
43
+ end
44
+
45
+ def s3uploader
46
+ return unless s3uploader?
47
+
48
+ @s3uploader ||= Eco::API::Common::Session::S3Uploader.new(enviro: self)
49
+ end
50
+
51
+ def s3uploader?
52
+ config.s3storage.configured?
53
+ end
54
+
55
+ def api(version: nil)
56
+ config.api(
57
+ logger,
58
+ version: version
59
+ )
60
+ end
61
+
62
+ def api?(version:)
63
+ config.apis.active_api.version_available?(version)
64
+ end
65
+
66
+ # Shortcut to logger.
67
+ def log(level, &block)
68
+ return unless logger.respond_to?(:level)
69
+
70
+ logger&.send(level, &block)
71
71
  end
72
72
  end
73
73
  end
@@ -1,140 +1,137 @@
1
- module Eco
2
- module API
3
- module Common
4
- module Session
5
- class FileManager
6
- include Eco::Data::Files
7
- include Eco::Language::AuxiliarLogger
8
-
9
- attr_reader :dir, :dir_path
10
- attr_accessor :timestamp_pattern
11
-
12
- def initialize(init = {}, enviro: nil)
13
- @enviro = enviro
14
- init = @enviro.config if @enviro && init.empty?
15
-
16
- @timestamp_pattern = init.files.timestamp_pattern || DEFAULT_TIMESTAMP_PATTERN
17
- self.dir_path = init.working_directory || Dir.pwd
18
- end
19
-
20
- def dir_path=(value)
21
- @dir = Eco::Data::Files::Directory.new(value)
22
- @dir_path = @dir.create
23
- rescue StandardError => err
24
- log(:error) {
25
- "could not create or make any sense of directory '#{value}': #{err}"
26
- }
27
- end
28
-
29
- def logger
30
- @enviro&.logger || super
31
- end
32
-
33
- ##### FILE #####
34
- def file(filename, should_exist: false)
35
- dir.file(filename, should_exist: should_exist)
36
- end
37
-
38
- def newest(filename)
39
- dir.newest_file(file: filename)
40
- end
41
-
42
- def file_content(filename, mode: nil)
43
- file = dir.file(filename, should_exist: true)
44
-
45
- unless file
46
- log(:error) {
47
- "Can't read from file '#{filename}' because it does not exist."
48
- }
49
- return nil
50
- end
51
-
52
- log(:debug) { "Reading from file '#{file}'" }
53
- mode ? File.read(file, mode: mode) : File.read(file)
54
- end
55
-
56
- def load_json(filename)
57
- file = dir.file(filename, should_exist: true)
58
-
59
- unless file
60
- log(:error) {
61
- "Can't read from file '#{filename}' because it does not exist."
62
- }
63
- return nil
64
- end
65
-
66
- fd = File.open(file)
67
- JSON.load fd # rubocop:disable Security/JSONLoad
68
- rescue JSON::ParserError => e
69
- pp "Parsing error on file #{file}"
70
- raise e
71
- ensure
72
- fd&.close
73
- end
74
-
75
- def touch(filename, modifier = :no_stamp, mode: :string)
76
- save("", filename, modifier, mode: mode)
77
- end
78
-
79
- def save_json(data, filename, modifier = :no_stamp)
80
- return save(data.to_json, filename, modifier) unless data.is_a?(Array)
81
-
82
- file = filename_for(filename, modifier)
83
- FileManager.create_directory(
84
- FileManager.file_fullpath(file)
85
- )
86
-
87
- log(:debug) { "Writting to file '#{file}'" }
88
-
89
- mode = mode == :binary ? 'wb' : 'w'
90
-
91
- File.open(file, mode) do |fd|
92
- first = true
93
-
94
- fd << '['
95
- data.each do |elem|
96
- fd << "," unless first
97
- first = false
98
-
99
- fd << elem.to_json
100
- end
101
- fd << ']'
102
- end
103
-
104
- file
105
- end
106
-
107
- def save(content, filename, modifier = :no_stamp, mode: :string)
108
- file = filename_for(filename, modifier)
109
- FileManager.create_directory(
110
- FileManager.file_fullpath(file)
111
- )
112
-
113
- log(:debug) { "Writting to file '#{file}'" }
114
-
115
- mode = mode == :binary ? 'wb' : 'w'
116
- File.open(file, mode) { |fd| fd << content }
117
- file
118
- end
119
-
120
- # if the file does not exist, it creates it
121
- def append(content, filename, mode: :string)
122
- file = dir.file(filename)
123
-
124
- log(:debug) { "Appending to file '#{file}'" }
125
-
126
- mode = mode == :binary ? 'ab' : 'a'
127
- File.open(file, mode) { |fd| fd << "#{content}\n" }
128
- file
129
- end
130
-
131
- def filename_for(filename, modifier = :no_stamp)
132
- file = dir.file(filename)
133
- file = FileManager.timestamp_file(file) if modifier == :timestamp
134
- file
135
- end
1
+ module Eco::API::Common::Session
2
+ class FileManager
3
+ include Eco::Data::Files
4
+ include Eco::Language::AuxiliarLogger
5
+
6
+ attr_reader :dir, :dir_path
7
+ attr_accessor :timestamp_pattern
8
+
9
+ def initialize(init = {}, enviro: nil)
10
+ @enviro = enviro
11
+ init = @enviro.config if @enviro && init.empty?
12
+
13
+ @timestamp_pattern = init.files.timestamp_pattern
14
+ @timestamp_pattern ||= Eco::Data::Files::Timestamp::DEFAULT_TIMESTAMP
15
+ self.dir_path = init.working_directory || Dir.pwd
16
+ end
17
+
18
+ def dir_path=(value)
19
+ @dir = Eco::Data::Files::Directory.new(value)
20
+ dir.create(exception: true)
21
+
22
+ @dir_path = dir.full_path
23
+ rescue StandardError => err
24
+ log(:error) {
25
+ "could not create or make any sense of directory '#{value}': #{err}"
26
+ }
27
+ end
28
+
29
+ def logger
30
+ return @enviro.logger if @enviro
31
+ super if defined?(super)
32
+ end
33
+
34
+ ##### FILE #####
35
+
36
+ # @return [String] resolved filename path (relative or absolute)
37
+ def file(filename, should_exist: false)
38
+ dir.file(filename, should_exist: should_exist)
39
+ end
40
+
41
+ # @return [String] newest file by last modified date.
42
+ def newest(filename)
43
+ dir.newest_file(file: filename)
44
+ end
45
+
46
+ def file_content(filename, mode: nil)
47
+ file = dir.file(filename, should_exist: true)
48
+
49
+ unless file
50
+ log(:error) {
51
+ "Can't read from file '#{filename}' because it does not exist."
52
+ }
53
+ return nil
54
+ end
55
+
56
+ log(:debug) { "Reading from file '#{file}'" }
57
+ mode ? File.read(file, mode: mode) : File.read(file)
58
+ end
59
+
60
+ def load_json(filename)
61
+ file = dir.file(filename, should_exist: true)
62
+
63
+ unless file
64
+ log(:error) {
65
+ "Can't read from file '#{filename}' because it does not exist."
66
+ }
67
+ return nil
68
+ end
69
+
70
+ fd = File.open(file)
71
+ JSON.load fd # rubocop:disable Security/JSONLoad
72
+ rescue JSON::ParserError => e
73
+ pp "Parsing error on file #{file}"
74
+ raise e
75
+ ensure
76
+ fd&.close
77
+ end
78
+
79
+ def touch(filename, modifier = :no_stamp, mode: :string)
80
+ save('', filename, modifier, mode: mode)
81
+ end
82
+
83
+ def save_json(data, filename, modifier = :no_stamp)
84
+ return save(data.to_json, filename, modifier) unless data.is_a?(Array)
85
+
86
+ file = filename_for(filename, modifier)
87
+ FileUtils.mkdir_p(File.dirname(file))
88
+
89
+ log(:debug) { "Writting to file '#{file}'" }
90
+
91
+ mode = mode == :binary ? 'wb' : 'w'
92
+
93
+ File.open(file, mode) do |fd|
94
+ first = true
95
+
96
+ fd << '['
97
+ data.each do |elem|
98
+ fd << "," unless first
99
+ first = false
100
+
101
+ fd << elem.to_json
136
102
  end
103
+ fd << ']'
137
104
  end
105
+
106
+ file
107
+ end
108
+
109
+ def save(content, filename, modifier = :no_stamp, mode: :string)
110
+ file = filename_for(filename, modifier)
111
+ FileUtils.mkdir_p(File.dirname(file))
112
+
113
+ log(:debug) { "Writting to file '#{file}'" }
114
+
115
+ mode = mode == :binary ? 'wb' : 'w'
116
+ File.open(file, mode) { |fd| fd << content }
117
+ file
118
+ end
119
+
120
+ # if the file does not exist, it creates it
121
+ def append(content, filename, mode: :string)
122
+ file = dir.file(filename)
123
+
124
+ log(:debug) { "Appending to file '#{file}'" }
125
+
126
+ mode = mode == :binary ? 'ab' : 'a'
127
+ File.open(file, mode) { |fd| fd << "#{content}\n" }
128
+ file
129
+ end
130
+
131
+ def filename_for(filename, modifier = :no_stamp)
132
+ file = dir.file(filename)
133
+ file = FileManager.timestamp_file(file) if modifier == :timestamp
134
+ file
138
135
  end
139
136
  end
140
137
  end
@@ -1,38 +1,31 @@
1
- module Eco
2
- module API
3
- module Common
4
- module Session
5
- module Helpers
6
- module PromptUser
7
- # Prompts user for input with option for default on timeout.
8
- def prompt_user(question, default:, explanation: '', timeout: nil)
9
- require 'timeout'
10
- response =
11
- if config.run_mode_remote?
12
- default
13
- else
14
- puts explanation
15
- print "#{question} "
1
+ module Eco::API::Common::Session::Helpers
2
+ module PromptUser
3
+ # Prompts user for input with option for default on timeout.
4
+ def prompt_user(question, default:, explanation: '', timeout: nil)
5
+ require 'timeout'
16
6
 
17
- if timeout
18
- begin
19
- Timeout::timeout(timeout) { STDIN.gets.chop }
20
- rescue Timeout::Error
21
- print default
22
- puts "\n"
23
- default
24
- end
25
- else
26
- STDIN.gets.chop
27
- end
28
- end
29
- return response unless block_given?
7
+ response =
8
+ if config.run_mode_remote?
9
+ default
10
+ else
11
+ puts explanation
12
+ print "#{question} "
30
13
 
31
- yield(response)
14
+ if timeout
15
+ begin
16
+ Timeout.timeout(timeout) { $stdin.gets.chop }
17
+ rescue Timeout::Error
18
+ print default
19
+ puts "\n"
20
+ default
32
21
  end
22
+ else
23
+ $stdin.gets.chop
33
24
  end
34
25
  end
35
- end
26
+ return response unless block_given?
27
+
28
+ yield(response)
36
29
  end
37
30
  end
38
31
  end
@@ -1,21 +1,16 @@
1
- require_relative 'helpers/prompt_user'
2
1
 
3
- module Eco
4
- module API
5
- module Common
6
- module Session
7
- module Helpers
8
- class << self
9
- def included(base)
10
- base.send(:include, InstanceMethods)
11
- end
12
- end
2
+ module Eco::API::Common::Session
3
+ module Helpers
4
+ require_relative 'helpers/prompt_user'
13
5
 
14
- module InstanceMethods
15
- include Helpers::PromptUser
16
- end
17
- end
6
+ class << self
7
+ def included(base)
8
+ base.send(:include, InstanceMethods)
18
9
  end
19
10
  end
11
+
12
+ module InstanceMethods
13
+ include Helpers::PromptUser
14
+ end
20
15
  end
21
16
  end