eco-helpers 3.0.26 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +38 -5
- data/eco-helpers.gemspec +1 -1
- data/lib/eco/api/common/loaders/base.rb +1 -1
- data/lib/eco/api/common/loaders/case_base.rb +1 -1
- data/lib/eco/api/common/loaders/error_handler.rb +1 -1
- data/lib/eco/api/common/loaders/parser.rb +2 -2
- data/lib/eco/api/common/loaders/policy.rb +1 -1
- data/lib/eco/api/common/loaders/use_case.rb +1 -1
- data/lib/eco/api/common/people/default_parsers/archived_parser.rb +19 -0
- data/lib/eco/api/common/people/default_parsers/boolean_parser.rb +4 -4
- data/lib/eco/api/common/people/default_parsers/date_parser.rb +3 -3
- data/lib/eco/api/common/people/default_parsers/freemium_parser.rb +6 -6
- data/lib/eco/api/common/people/default_parsers/login_providers_parser.rb +3 -3
- data/lib/eco/api/common/people/default_parsers/multi_parser.rb +4 -4
- data/lib/eco/api/common/people/default_parsers/policy_groups_parser.rb +9 -6
- data/lib/eco/api/common/people/default_parsers/send_invites_parser.rb +6 -5
- data/lib/eco/api/common/people/default_parsers/xls_parser.rb +2 -2
- data/lib/eco/api/common/people/default_parsers.rb +1 -0
- data/lib/eco/api/common/people/entries.rb +16 -15
- data/lib/eco/api/common/people/person_entry.rb +53 -37
- data/lib/eco/api/common/people/person_parser.rb +8 -6
- data/lib/eco/api/common/session/logger/channels.rb +1 -1
- data/lib/eco/api/common/session/logger.rb +2 -2
- data/lib/eco/api/common/session/mailer/aws_provider.rb +3 -2
- data/lib/eco/api/common/session/mailer/provider_base.rb +2 -1
- data/lib/eco/api/common/session/mailer/sendgrid_provider.rb +9 -9
- data/lib/eco/api/common/session/mailer.rb +5 -3
- data/lib/eco/api/common/session/sftp.rb +2 -2
- data/lib/eco/api/common/version_patches/object.rb +2 -1
- data/lib/eco/api/custom/mailer.rb +1 -1
- data/lib/eco/api/error/handlers.rb +3 -3
- data/lib/eco/api/error.rb +17 -17
- data/lib/eco/api/microcases/people/apply_changes/set_account/account_excluded.rb +3 -11
- data/lib/eco/api/microcases/people/apply_changes/set_core/core_excluded.rb +4 -1
- data/lib/eco/api/microcases/people/manage/search.rb +3 -1
- data/lib/eco/api/organization/people.rb +1 -0
- data/lib/eco/api/policies.rb +2 -2
- data/lib/eco/api/session/batch/job.rb +2 -2
- data/lib/eco/api/session/batch/launcher.rb +4 -5
- data/lib/eco/api/session/batch/searcher.rb +4 -4
- data/lib/eco/api/session/config/api.rb +2 -2
- data/lib/eco/api/session/config/apis/enviro_spaces.rb +2 -2
- data/lib/eco/api/session/config/post_launch.rb +7 -4
- data/lib/eco/api/session/config/sftp.rb +1 -1
- data/lib/eco/api/session/config/tagtree.rb +1 -1
- data/lib/eco/api/session/config/workflow.rb +4 -4
- data/lib/eco/api/session/config.rb +25 -24
- data/lib/eco/api/session.rb +4 -4
- data/lib/eco/api/usecases/base_io/validations.rb +4 -3
- data/lib/eco/api/usecases/cli/option.rb +5 -2
- data/lib/eco/api/usecases/default/people/amend/clear_abilities_case.rb +2 -2
- data/lib/eco/api/usecases/default/people/amend/restore_db_case.rb +16 -9
- data/lib/eco/api/usecases/default/people/treat/analyse_people_case.rb +20 -20
- data/lib/eco/api/usecases/default.rb +5 -5
- data/lib/eco/api/usecases/default_cases/to_csv_case.rb +8 -8
- data/lib/eco/api/usecases/default_cases/upsert_case.rb +4 -4
- data/lib/eco/api/usecases/graphql/helpers/base.rb +1 -1
- data/lib/eco/api/usecases/graphql/helpers/location/base/tree_tracking.rb +5 -1
- data/lib/eco/api/usecases/graphql/helpers/location/command/diffs/stages/commandable.rb +2 -1
- data/lib/eco/api/usecases/graphql/helpers/location/command/result.rb +3 -3
- data/lib/eco/api/usecases/graphql/helpers/location/command.rb +3 -0
- data/lib/eco/api/usecases/graphql/samples/location/command/dsl.rb +2 -2
- data/lib/eco/api/usecases/graphql/samples/location/command/service/tree_update.rb +9 -3
- data/lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible/inputable.rb +5 -4
- data/lib/eco/api/usecases/graphql/samples/location/service/tree_diff/convertible/parsing.rb +5 -2
- data/lib/eco/api/usecases/graphql/samples/location/service/tree_diff.rb +3 -3
- data/lib/eco/api/usecases/graphql/utils/sftp.rb +1 -1
- data/lib/eco/api/usecases/lib/{file_pattern.rb → files/file_pattern.rb} +3 -1
- data/lib/eco/api/usecases/lib/{sftp.rb → files/sftp.rb} +12 -3
- data/lib/eco/api/usecases/lib/files.rb +7 -0
- data/lib/eco/api/usecases/lib.rb +1 -2
- data/lib/eco/api/usecases/ooze_cases/export_register_case.rb +5 -5
- data/lib/eco/api/usecases/ooze_samples/helpers/exportable_ooze.rb +14 -11
- data/lib/eco/api/usecases/ooze_samples/helpers_migration/copying.rb +14 -23
- data/lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb +49 -27
- data/lib/eco/api/usecases/ooze_samples/ooze_base_case.rb +9 -9
- data/lib/eco/api/usecases/ooze_samples/ooze_run_base_case.rb +1 -1
- data/lib/eco/api/usecases/ooze_samples/register_export_case.rb +25 -17
- data/lib/eco/api/usecases/ooze_samples/register_migration_case.rb +41 -24
- data/lib/eco/api/usecases/ooze_samples/register_update_case.rb +16 -15
- data/lib/eco/api/usecases/samples/drivers/cli/sftp_cli.rb +15 -15
- data/lib/eco/api/usecases/samples/drivers/cli/url_pull_cli.rb +5 -5
- data/lib/eco/api/usecases/samples/drivers/sftp_sample.rb +2 -2
- data/lib/eco/api/usecases/use_case.rb +6 -6
- data/lib/eco/api/usecases/use_case_chain/chaining.rb +6 -6
- data/lib/eco/api/usecases/use_case_chain.rb +4 -4
- data/lib/eco/api/usecases/use_case_io.rb +2 -1
- data/lib/eco/api/usecases.rb +9 -9
- data/lib/eco/cli/config/options_set.rb +4 -4
- data/lib/eco/cli/config/use_cases.rb +3 -3
- data/lib/eco/cli/scripting/argument.rb +1 -1
- data/lib/eco/cli_default/input.rb +9 -9
- data/lib/eco/cli_default/options.rb +125 -100
- data/lib/eco/cli_default/people.rb +3 -3
- data/lib/eco/cli_default/usecases.rb +83 -83
- data/lib/eco/cli_default/workflow.rb +7 -7
- data/lib/eco/data/files/helpers.rb +3 -3
- data/lib/eco/data/fuzzy_match/result.rb +69 -26
- data/lib/eco/data/fuzzy_match/results.rb +10 -10
- data/lib/eco/data/fuzzy_match/score.rb +13 -8
- data/lib/eco/data/fuzzy_match.rb +65 -48
- data/lib/eco/data/locations/node_base/treeify.rb +13 -11
- data/lib/eco/data/mapper.rb +4 -4
- data/lib/eco/language/auxiliar_logger.rb +4 -4
- data/lib/eco/language/delegation/const_delegator.rb +64 -0
- data/lib/eco/language/delegation/const_lookup_hooks.rb +81 -0
- data/lib/eco/language/delegation/delegated_class.rb +84 -0
- data/lib/eco/language/delegation.rb +8 -0
- data/lib/eco/language/klass/when_inherited.rb +1 -0
- data/lib/eco/language/methods/delegate_missing.rb +1 -0
- data/lib/eco/language/models/class_helpers.rb +25 -23
- data/lib/eco/language/models/collection.rb +12 -2
- data/lib/eco/language.rb +1 -0
- data/lib/eco/version.rb +1 -1
- metadata +12 -6
@@ -2,7 +2,7 @@ module Eco
|
|
2
2
|
module Language
|
3
3
|
module Models
|
4
4
|
module ClassHelpers
|
5
|
-
NOT_USED =
|
5
|
+
NOT_USED = 'no_used!'.freeze
|
6
6
|
|
7
7
|
def redef_without_warning(const, value)
|
8
8
|
self.class.send(:remove_const, const) if self.class.const_defined?(const)
|
@@ -22,24 +22,24 @@ module Eco
|
|
22
22
|
# @param exception [Boolean] if it should raise exception when could not resolve
|
23
23
|
# @return [Class] the `Class` constant
|
24
24
|
def resolve_class(klass, source_class: self, exception: true)
|
25
|
-
@resolved
|
25
|
+
@resolved ||= {}
|
26
26
|
@resolved[klass] ||=
|
27
27
|
case klass
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
28
|
+
when Class
|
29
|
+
klass
|
30
|
+
when String
|
31
|
+
begin
|
32
|
+
Kernel.const_get(klass)
|
33
|
+
rescue NameError
|
34
|
+
raise if exception
|
35
|
+
end
|
36
|
+
when Symbol
|
37
|
+
source_class.resolve_class(source_class.send(klass))
|
38
|
+
when Hash
|
39
|
+
referrer, referred = klass.first
|
40
|
+
resolve_class(referred, source_class: referrer, exception: exception)
|
41
|
+
else
|
42
|
+
raise "Unknown class: #{klass}" if exception
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -48,11 +48,11 @@ module Eco
|
|
48
48
|
# @param key [String, Symbol] to be normalized
|
49
49
|
# @return [String] a correct constant name
|
50
50
|
def to_constant(key)
|
51
|
-
|
51
|
+
key.to_s.strip.split('::').compact.map do |str|
|
52
52
|
str.slice(0).upcase + str.slice(1..-1)
|
53
|
-
end.join
|
53
|
+
end.join.split(/[\-\_ :]+/i).compact.map do |str|
|
54
54
|
str.slice(0).upcase + str.slice(1..-1)
|
55
|
-
end.join
|
55
|
+
end.join
|
56
56
|
end
|
57
57
|
|
58
58
|
# Helper to create an instance variable `name`
|
@@ -75,7 +75,7 @@ module Eco
|
|
75
75
|
name = name.to_s.to_sym.freeze
|
76
76
|
class_name = to_constant(name)
|
77
77
|
|
78
|
-
unless target_class = resolve_class("#{namespace}::#{class_name}", exception: false)
|
78
|
+
unless (target_class = resolve_class("#{namespace}::#{class_name}", exception: false))
|
79
79
|
target_class = Class.new(inherits)
|
80
80
|
Kernel.const_get(namespace.to_s).const_set class_name, target_class
|
81
81
|
end
|
@@ -108,9 +108,9 @@ module Eco
|
|
108
108
|
# Builds the attr_reader and attr_writer of `attrs` and registers the associated instance variable as inheritable.
|
109
109
|
def inheritable_attrs(*attrs)
|
110
110
|
attrs.each do |attr|
|
111
|
-
class_eval %(
|
111
|
+
class_eval %( # rubocop:disable Style/DocumentDynamicEvalDefinition
|
112
112
|
class << self; attr_accessor :#{attr} end
|
113
|
-
)
|
113
|
+
), __FILE__, __LINE__ - 2
|
114
114
|
end
|
115
115
|
inheritable_class_vars(*attrs)
|
116
116
|
end
|
@@ -122,6 +122,8 @@ module Eco
|
|
122
122
|
# - mutating methods would reflect the changes on other classes as well
|
123
123
|
# - therefore, `freeze` will be called on the values that are inherited.
|
124
124
|
def inherited(subclass)
|
125
|
+
super
|
126
|
+
|
125
127
|
inheritable_class_vars.each do |var|
|
126
128
|
instance_var = instance_variable_name(var)
|
127
129
|
value = instance_variable_get(instance_var)
|
@@ -22,11 +22,13 @@ module Eco
|
|
22
22
|
def attrs_create_method(attrs, method)
|
23
23
|
attrs.each do |attr|
|
24
24
|
attr = attr.to_s
|
25
|
+
|
25
26
|
if method.include?("attr")
|
26
27
|
attr_method = method.sub("attr", attr)
|
27
28
|
else
|
28
29
|
attr_method = "#{attr}_#{method}"
|
29
30
|
end
|
31
|
+
|
30
32
|
define_method attr_method do |*args|
|
31
33
|
send(method, attr, *args)
|
32
34
|
end
|
@@ -36,6 +38,7 @@ module Eco
|
|
36
38
|
|
37
39
|
def initialize(data = [], klass:, factory: nil, handy: Eco::Assets::Language.new)
|
38
40
|
raise "Raise klass required, given: #{klass}" unless klass
|
41
|
+
|
39
42
|
@klass = klass
|
40
43
|
@factory = factory
|
41
44
|
@handy = handy
|
@@ -70,6 +73,7 @@ module Eco
|
|
70
73
|
|
71
74
|
def each(&block)
|
72
75
|
return to_enum(:each) unless block
|
76
|
+
|
73
77
|
@items.each(&block)
|
74
78
|
end
|
75
79
|
|
@@ -104,6 +108,7 @@ module Eco
|
|
104
108
|
|
105
109
|
def attr(attr, value = true, modifier = default_modifier)
|
106
110
|
return present(attr, value) if boolean?(value)
|
111
|
+
|
107
112
|
select do |object|
|
108
113
|
match?(attr_value(object, attr), value, modifier)
|
109
114
|
end.then do |matching|
|
@@ -113,6 +118,7 @@ module Eco
|
|
113
118
|
|
114
119
|
def attr?(attr, value = true, modifier = default_modifier)
|
115
120
|
return present(attr, value).length == length if boolean?(value)
|
121
|
+
|
116
122
|
match?(attrs(attr), value, modifier.new.reverse)
|
117
123
|
end
|
118
124
|
|
@@ -130,6 +136,7 @@ module Eco
|
|
130
136
|
|
131
137
|
def group_by(attr = nil, &block)
|
132
138
|
return to_h(attr) if attr
|
139
|
+
|
133
140
|
to_a.group_by(&block) if block
|
134
141
|
end
|
135
142
|
|
@@ -138,6 +145,7 @@ module Eco
|
|
138
145
|
def to_h(attr, &block)
|
139
146
|
return to_a.group_by(&block) if block
|
140
147
|
raise "And attr or a block are required. Given attr: #{attr}" unless attr
|
148
|
+
|
141
149
|
to_a.group_by { |object| object.method(attr).call }
|
142
150
|
end
|
143
151
|
# @!endgroup
|
@@ -175,16 +183,18 @@ module Eco
|
|
175
183
|
private
|
176
184
|
|
177
185
|
def attr_value(obj, attr)
|
178
|
-
return
|
186
|
+
return unless obj && attr
|
187
|
+
|
179
188
|
if obj.is_a?(Hash)
|
180
189
|
obj[attr]
|
181
|
-
elsif obj.respond_to?(attr.to_sym)
|
190
|
+
elsif obj.respond_to?(attr.to_sym, true)
|
182
191
|
obj.send(attr)
|
183
192
|
end
|
184
193
|
end
|
185
194
|
|
186
195
|
def attr_value_present?(obj, attr)
|
187
196
|
return false unless (value = attr_value(obj, attr))
|
197
|
+
|
188
198
|
if value.is_a?(Enumerable)
|
189
199
|
value.count > 1
|
190
200
|
elsif value.is_a?(String)
|
data/lib/eco/language.rb
CHANGED
@@ -8,6 +8,7 @@ require_relative 'language/methods'
|
|
8
8
|
require_relative 'language/models'
|
9
9
|
require_relative 'language/auxiliar_logger'
|
10
10
|
require_relative 'language/basic_logger'
|
11
|
+
require_relative 'language/delegation'
|
11
12
|
require_relative 'language/curry'
|
12
13
|
require_relative 'language/hash_transform_modifier'
|
13
14
|
require_relative 'language/hash_transform'
|
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.27
|
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-03-
|
11
|
+
date: 2025-03-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -229,7 +229,7 @@ dependencies:
|
|
229
229
|
version: '0.10'
|
230
230
|
- - ">="
|
231
231
|
- !ruby/object:Gem::Version
|
232
|
-
version: 0.10.
|
232
|
+
version: 0.10.9
|
233
233
|
type: :runtime
|
234
234
|
prerelease: false
|
235
235
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -239,7 +239,7 @@ dependencies:
|
|
239
239
|
version: '0.10'
|
240
240
|
- - ">="
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
version: 0.10.
|
242
|
+
version: 0.10.9
|
243
243
|
- !ruby/object:Gem::Dependency
|
244
244
|
name: ecoportal-api-graphql
|
245
245
|
requirement: !ruby/object:Gem::Requirement
|
@@ -568,6 +568,7 @@ files:
|
|
568
568
|
- lib/eco/api/common/people.rb
|
569
569
|
- lib/eco/api/common/people/base_parser.rb
|
570
570
|
- lib/eco/api/common/people/default_parsers.rb
|
571
|
+
- lib/eco/api/common/people/default_parsers/archived_parser.rb
|
571
572
|
- lib/eco/api/common/people/default_parsers/boolean_parser.rb
|
572
573
|
- lib/eco/api/common/people/default_parsers/csv_parser.rb
|
573
574
|
- lib/eco/api/common/people/default_parsers/date_parser.rb
|
@@ -866,8 +867,9 @@ files:
|
|
866
867
|
- lib/eco/api/usecases/graphql/utils/sftp.rb
|
867
868
|
- lib/eco/api/usecases/lib.rb
|
868
869
|
- lib/eco/api/usecases/lib/error_handling.rb
|
869
|
-
- lib/eco/api/usecases/lib/
|
870
|
-
- lib/eco/api/usecases/lib/
|
870
|
+
- lib/eco/api/usecases/lib/files.rb
|
871
|
+
- lib/eco/api/usecases/lib/files/file_pattern.rb
|
872
|
+
- lib/eco/api/usecases/lib/files/sftp.rb
|
871
873
|
- lib/eco/api/usecases/ooze_cases.rb
|
872
874
|
- lib/eco/api/usecases/ooze_cases/export_register_case.rb
|
873
875
|
- lib/eco/api/usecases/ooze_samples.rb
|
@@ -984,6 +986,10 @@ files:
|
|
984
986
|
- lib/eco/language/auxiliar_logger.rb
|
985
987
|
- lib/eco/language/basic_logger.rb
|
986
988
|
- lib/eco/language/curry.rb
|
989
|
+
- lib/eco/language/delegation.rb
|
990
|
+
- lib/eco/language/delegation/const_delegator.rb
|
991
|
+
- lib/eco/language/delegation/const_lookup_hooks.rb
|
992
|
+
- lib/eco/language/delegation/delegated_class.rb
|
987
993
|
- lib/eco/language/hash_transform.rb
|
988
994
|
- lib/eco/language/hash_transform_modifier.rb
|
989
995
|
- lib/eco/language/klass.rb
|