eco-helpers 3.0.35 → 3.0.36
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/lib/eco/api/usecases/lib/base/env.rb +46 -0
- data/lib/eco/api/usecases/lib/base.rb +6 -0
- data/lib/eco/api/usecases/lib/error_handling.rb +1 -1
- data/lib/eco/api/usecases/lib/files/sftp.rb +8 -3
- data/lib/eco/api/usecases/lib.rb +1 -0
- data/lib/eco/api/usecases/service/sftp/with_target_config.rb +74 -0
- data/lib/eco/api/usecases/service/sftp.rb +29 -8
- data/lib/eco/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e20a7da6586a0761a6f727d17030b1d7f193d2e4784f993b03ea6fdb2e5dc59
|
4
|
+
data.tar.gz: da8b1b55aa5b4724fd1addf04117c2ffbcc528e14fb3c2a4606c4d736bad2d5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c83dbf3bd230f10db7db729c68856817a83957f666cbba326fcec9e49b8564fb1b360af759aa7739a41918e23d85a854addacac6983dba351b8a242b896aa2c
|
7
|
+
data.tar.gz: a672f177a39d3e0d38bfb090f267d8111dc296a0953e91554907866c506f841c91594e5856870bf4bd005aa67dc69f3e5cca86bd36cbd311537191747f7ac40d
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
-
## [3.0.
|
5
|
+
## [3.0.37] - 2025-04-xx
|
6
6
|
|
7
7
|
### Added
|
8
8
|
|
@@ -10,6 +10,17 @@ All notable changes to this project will be documented in this file.
|
|
10
10
|
|
11
11
|
### Fixed
|
12
12
|
|
13
|
+
## [3.0.36] - 2025-04-15
|
14
|
+
|
15
|
+
### Added
|
16
|
+
|
17
|
+
- `UseCases::Lib::Base::Env`
|
18
|
+
- `UseCases::Service::Sftp` wrap specific methods to use different `sftp` paths.
|
19
|
+
|
20
|
+
### Changed
|
21
|
+
|
22
|
+
- `UseCases::Lib::Files::Sftp` to use `Lib::Base::Env`
|
23
|
+
|
13
24
|
## [3.0.35] - 2025-04-09
|
14
25
|
|
15
26
|
### Fixed
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Eco::API::UseCases::Lib::Base
|
2
|
+
# Basic stuff you would need in any use case
|
3
|
+
# @note this is intended to be at the foremost part upfront
|
4
|
+
module Env
|
5
|
+
class << self
|
6
|
+
def included(base)
|
7
|
+
super
|
8
|
+
|
9
|
+
base.send :include, Eco::Language::AuxiliarLogger
|
10
|
+
base.prepend(InstanceMethods)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module InstanceMethods
|
15
|
+
private
|
16
|
+
|
17
|
+
def config
|
18
|
+
session.config
|
19
|
+
end
|
20
|
+
|
21
|
+
def session(required: true)
|
22
|
+
if instance_variable_defined?(:@session) && !@session.nil?
|
23
|
+
@session
|
24
|
+
elsif defined?(super) && !super.nil?
|
25
|
+
super
|
26
|
+
elsif Object.const_defined?(:ASSETS)
|
27
|
+
ASSETS.session
|
28
|
+
elsif required
|
29
|
+
raise 'Missing session object'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def options(required: true)
|
34
|
+
if instance_variable_defined?(:@options) && !@options.nil?
|
35
|
+
@session
|
36
|
+
elsif defined?(super) && !super.nil?
|
37
|
+
super
|
38
|
+
elsif Object.const_defined?(:ASSETS)
|
39
|
+
ASSETS.cli.options
|
40
|
+
else
|
41
|
+
raise 'Missing options object'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -2,9 +2,13 @@ module Eco::API::UseCases::Lib::Files
|
|
2
2
|
module Sftp
|
3
3
|
class UnspecifiedRemoteFolder < ArgumentError; end
|
4
4
|
|
5
|
-
|
5
|
+
class << self
|
6
|
+
def included(base)
|
7
|
+
super
|
6
8
|
|
7
|
-
|
9
|
+
base.send :include, Eco::API::UseCases::Lib::Base::Env
|
10
|
+
end
|
11
|
+
end
|
8
12
|
|
9
13
|
private
|
10
14
|
|
@@ -136,6 +140,7 @@ module Eco::API::UseCases::Lib::Files
|
|
136
140
|
|
137
141
|
# `remote_target_folder` overrides `sftp_config.remote_folder` as well as `remote_subfolder`
|
138
142
|
# `remote_folder` overrides `sftp_config.remote_folder` but NOT `remote_subfolder`
|
143
|
+
# @note `sftp_config.remote_folder` has already the subpath of the active enviro.
|
139
144
|
def remote_folder(subfolder = remote_subfolder)
|
140
145
|
return super if defined?(super) && !super.nil?
|
141
146
|
|
@@ -177,7 +182,7 @@ module Eco::API::UseCases::Lib::Files
|
|
177
182
|
end
|
178
183
|
|
179
184
|
def sftp_config
|
180
|
-
|
185
|
+
config.sftp
|
181
186
|
end
|
182
187
|
|
183
188
|
def sftp_session
|
data/lib/eco/api/usecases/lib.rb
CHANGED
@@ -0,0 +1,74 @@
|
|
1
|
+
module Eco::API::UseCases::Service
|
2
|
+
# Class that pulls configuration from the subject (i.e. `remote_folder`)
|
3
|
+
class Sftp
|
4
|
+
module WithTargetConfig
|
5
|
+
class << self
|
6
|
+
def included(base)
|
7
|
+
super
|
8
|
+
|
9
|
+
# base.send :include, Eco::Language::Methods::InstanceMethodHelpers
|
10
|
+
# base.extend ClassMethods
|
11
|
+
base.send :include, InstanceMethods
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module InstanceMethods
|
16
|
+
private
|
17
|
+
|
18
|
+
def with_target_sftp_config
|
19
|
+
src_base = sftp_config.base_path
|
20
|
+
src_path = sftp_config.enviro_subpaths
|
21
|
+
|
22
|
+
sftp_config.base_path = _base_path
|
23
|
+
sftp_config.enviro_subpaths = _env_paths
|
24
|
+
|
25
|
+
yield
|
26
|
+
ensure
|
27
|
+
sftp_config.base_path = src_base
|
28
|
+
sftp_config.enviro_subpaths = src_path
|
29
|
+
end
|
30
|
+
|
31
|
+
def _base_path
|
32
|
+
self.class::BASE_PATH if self.class.const_defined?(:BASE_PATH)
|
33
|
+
end
|
34
|
+
|
35
|
+
def _env_paths
|
36
|
+
self.class::ENV_PATHS if self.class.const_defined?(:ENV_PATHS)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# module ClassMethods
|
41
|
+
# def wrap_with_target_sftp(*mtds)
|
42
|
+
# mtds.map(&:to_sym).each do |method_name|
|
43
|
+
# msg = "#{self} does not have instance method '#{method_name}'"
|
44
|
+
# has_method = instance_method?(name: method_name, include_private: true, inherited: true)
|
45
|
+
# raise ArgumentError, msg unless has_method
|
46
|
+
#
|
47
|
+
# method_was_inherited = instance_inherited_method?(name: method_name)
|
48
|
+
# method_is_public = instance_method?(name: method_name, include_private: false)
|
49
|
+
# original_method = :"method_to_wrap_with_target_sftp_#{method_name}"
|
50
|
+
#
|
51
|
+
# # don't over-override
|
52
|
+
# next if instance_method?(name: original_method, include_private: true, inherited: true)
|
53
|
+
#
|
54
|
+
# method_def = proc do |*args, **kargs, &block|
|
55
|
+
# with_target_sftp_config do
|
56
|
+
# if method_was_inherited
|
57
|
+
# super(*args, **kargs, &block)
|
58
|
+
# else
|
59
|
+
# send(original_method, *args, **kargs, &block)
|
60
|
+
# end
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
#
|
64
|
+
# alias_method(original_method, method_name) unless method_was_inherited
|
65
|
+
# define_method(method_name, &method_def)
|
66
|
+
# private method_name unless method_is_public
|
67
|
+
# end
|
68
|
+
#
|
69
|
+
# self
|
70
|
+
# end
|
71
|
+
# end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -1,7 +1,12 @@
|
|
1
|
+
require_relative 'sftp/with_target_config'
|
1
2
|
module Eco::API::UseCases::Service
|
2
3
|
# Class that pulls configuration from the subject (i.e. `remote_folder`)
|
3
4
|
class Sftp
|
4
5
|
include Eco::API::UseCases::Lib::Files::Sftp
|
6
|
+
public(*Eco::API::UseCases::Lib::Files::Sftp.private_instance_methods(inherited: false))
|
7
|
+
|
8
|
+
include WithTargetConfig
|
9
|
+
|
5
10
|
# include Eco::Language::Delegation::DelegatingMissing
|
6
11
|
include Eco::Language::Delegation::DelegatingMissingConst
|
7
12
|
include Eco::Language::Delegation::DelegatingBlank
|
@@ -19,18 +24,34 @@ module Eco::API::UseCases::Service
|
|
19
24
|
@subject = subject
|
20
25
|
end
|
21
26
|
|
22
|
-
|
23
|
-
|
24
|
-
|
27
|
+
private
|
28
|
+
|
29
|
+
attr_reader :subject
|
30
|
+
|
31
|
+
def to_remote_path(...)
|
32
|
+
with_target_sftp_config do
|
33
|
+
super
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def remote_folder(...)
|
38
|
+
with_target_sftp_config do
|
39
|
+
super
|
40
|
+
end
|
25
41
|
end
|
26
42
|
|
27
|
-
|
28
|
-
|
29
|
-
|
43
|
+
def _base_path
|
44
|
+
return send(:base_path) if respond_to?(:base_path, true)
|
45
|
+
return super if defined?(super) && !super.nil?
|
46
|
+
|
47
|
+
sftp_config.base_path
|
30
48
|
end
|
31
49
|
|
32
|
-
|
50
|
+
def _env_paths
|
51
|
+
return send(:env_paths) if respond_to?(:env_paths, true)
|
52
|
+
return super if defined?(super) && !super.nil?
|
33
53
|
|
34
|
-
|
54
|
+
sftp_config.enviro_subpaths
|
55
|
+
end
|
35
56
|
end
|
36
57
|
end
|
data/lib/eco/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eco-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-04-
|
11
|
+
date: 2025-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -881,6 +881,8 @@ files:
|
|
881
881
|
- lib/eco/api/usecases/graphql/utils.rb
|
882
882
|
- lib/eco/api/usecases/graphql/utils/sftp.rb
|
883
883
|
- lib/eco/api/usecases/lib.rb
|
884
|
+
- lib/eco/api/usecases/lib/base.rb
|
885
|
+
- lib/eco/api/usecases/lib/base/env.rb
|
884
886
|
- lib/eco/api/usecases/lib/error_handling.rb
|
885
887
|
- lib/eco/api/usecases/lib/files.rb
|
886
888
|
- lib/eco/api/usecases/lib/files/file_pattern.rb
|
@@ -915,6 +917,7 @@ files:
|
|
915
917
|
- lib/eco/api/usecases/samples/drivers/url_pull_sample.rb
|
916
918
|
- lib/eco/api/usecases/service.rb
|
917
919
|
- lib/eco/api/usecases/service/sftp.rb
|
920
|
+
- lib/eco/api/usecases/service/sftp/with_target_config.rb
|
918
921
|
- lib/eco/api/usecases/use_case.rb
|
919
922
|
- lib/eco/api/usecases/use_case/chainer.rb
|
920
923
|
- lib/eco/api/usecases/use_case_chain.rb
|