eco-helpers 1.5.3 → 1.5.8
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 +41 -1
- data/eco-helpers.gemspec +1 -1
- data/lib/eco/api/common/version_patches.rb +1 -0
- data/lib/eco/api/common/version_patches/object.rb +10 -0
- data/lib/eco/api/microcases/people_refresh.rb +1 -1
- data/lib/eco/api/session.rb +5 -3
- data/lib/eco/api/session/batch/job.rb +1 -1
- data/lib/eco/api/session/batch/jobs.rb +22 -3
- data/lib/eco/api/session/batch/jobs_groups.rb +9 -0
- data/lib/eco/api/usecases/default_cases/org_data_convert_case.rb +25 -7
- data/lib/eco/api/usecases/default_cases/refresh_case.rb +1 -1
- data/lib/eco/api/usecases/default_cases/restore_db_case.rb +25 -13
- data/lib/eco/api/usecases/use_case.rb +1 -1
- data/lib/eco/api/usecases/use_case_io.rb +0 -1
- data/lib/eco/cli/config/default/usecases.rb +21 -0
- data/lib/eco/cli/config/default/workflow.rb +1 -1
- data/lib/eco/cli/config/use_cases.rb +1 -1
- data/lib/eco/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b5a4fcfab321e9a7071a18fb52c38c21a67314a44a2edda63f4783de6ea9f38
|
4
|
+
data.tar.gz: 20b067294c6e2d47c6efa09c62052d2081ce3a56252216fb11c9e465ed0fc5af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92bc7a1814a8654bc9831ca8e763802ad40f0679c7ee31bc26b2146f7006744b576fa7586c16b2bd50deb1b74738c41d08d14e47b41fd3d34fd299d753213bb1
|
7
|
+
data.tar.gz: 1dbdacf348a3ec57718dbf15dc825adf97839ea070ae0463b4df1a8a020c3c8bee8edc5b3903029d57f112a8517f20ac0870a5b73a206257be21d27e425c66f2
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,47 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
-
## [1.5.
|
4
|
+
## [1.5.8] - 2020-12-xx
|
5
|
+
|
6
|
+
### Added
|
7
|
+
### Changed
|
8
|
+
### Fixed
|
9
|
+
- `Eco::API::Session::Batch::Jobs#job` shouldn't be calling the post-launch callback function on creation.
|
10
|
+
- `Eco::API::Session#new_job` should include a `&block` parameter.
|
11
|
+
- `Eco::API::UseCases::DefaultCases::RefreshCase`: fixed typo
|
12
|
+
|
13
|
+
## [1.5.7] - 2020-12-17
|
14
|
+
|
15
|
+
### Added
|
16
|
+
### Changed
|
17
|
+
### Fixed
|
18
|
+
- `Eco::API::Sesssion#parse_attribute` was not using phase argument
|
19
|
+
|
20
|
+
## [1.5.6] - 2020-12-04
|
21
|
+
|
22
|
+
### Added
|
23
|
+
### Changed
|
24
|
+
### Fixed
|
25
|
+
- `Eco::API::UseCases::DefaultCases::RestoreDBCase` fixed typo and slightly improved
|
26
|
+
- fixed some back-end errors when chaining usecases
|
27
|
+
- `Eco::API::UseCases::DefaultCases::OrgDataConvertCase` improved
|
28
|
+
|
29
|
+
## [1.5.5] - 2020-12-03
|
30
|
+
|
31
|
+
### Added
|
32
|
+
### Changed
|
33
|
+
### Fixed
|
34
|
+
- rubies previous to `2.5` do not have `yield_self`
|
35
|
+
|
36
|
+
## [1.5.4] - 2020-12-02
|
37
|
+
|
38
|
+
### Added
|
39
|
+
- update `ecoportal-api` dependency
|
40
|
+
### Changed
|
41
|
+
### Fixed
|
42
|
+
- `Eco::API::MicroCases#people_refresh` typo
|
43
|
+
|
44
|
+
## [1.5.3] - 2020-11-30
|
5
45
|
|
6
46
|
### Added
|
7
47
|
### Changed
|
data/eco-helpers.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_development_dependency "yard", ">= 0.9.18", "< 0.10"
|
29
29
|
s.add_development_dependency "redcarpet", ">= 3.5.0", "< 3.6"
|
30
30
|
|
31
|
-
s.add_dependency 'ecoportal-api', '>= 0.7.
|
31
|
+
s.add_dependency 'ecoportal-api', '>= 0.7.3', '< 0.8'
|
32
32
|
s.add_dependency 'ecoportal-api-oozes', '>= 0.7.2', '< 0.8'
|
33
33
|
s.add_dependency 'aws-sdk-s3', '>= 1.64.0', '< 2'
|
34
34
|
s.add_dependency 'aws-sdk-ses', '>= 1.29.0', '< 2'
|
@@ -23,7 +23,7 @@ module Eco
|
|
23
23
|
missing = people.length - entries.length
|
24
24
|
logger.error("Missed to obtain #{missing} people during the refresh") if missing > 0
|
25
25
|
|
26
|
-
Eco::API::Organization::People.new(
|
26
|
+
Eco::API::Organization::People.new(entries)
|
27
27
|
end
|
28
28
|
|
29
29
|
end
|
data/lib/eco/api/session.rb
CHANGED
@@ -126,7 +126,7 @@ module Eco
|
|
126
126
|
unless parsers = entry_factory.person_parser
|
127
127
|
raise "There are no parsers defined"
|
128
128
|
end
|
129
|
-
parsers.parse(attr, source)
|
129
|
+
parsers.parse(attr, source, phase)
|
130
130
|
end
|
131
131
|
|
132
132
|
# @see Eco::API::Common::People::EntryFactory#export
|
@@ -217,6 +217,7 @@ module Eco
|
|
217
217
|
@job_groups ||= Batch::JobsGroups.new(enviro)
|
218
218
|
end
|
219
219
|
|
220
|
+
# It retrives the group of `Batch::Jobs` named `name`. It creates it if it doesn't exist.
|
220
221
|
# @return [Eco::API::Session::Batch::Jobs]
|
221
222
|
def job_group(name, order: :last)
|
222
223
|
case
|
@@ -228,9 +229,10 @@ module Eco
|
|
228
229
|
end
|
229
230
|
|
230
231
|
# Shortcut to create a job of certain type within a group
|
232
|
+
# @param [see @Eco::API::Session::Batch::Jobs#new]
|
231
233
|
# @return [Eco::API::Session::Batch::Job]
|
232
|
-
def new_job(group, name, type, usecase, sets = [:core, :details, :account])
|
233
|
-
job_group(group).new(name, usecase: usecase, type: type, sets: sets)
|
234
|
+
def new_job(group, name, type, usecase, sets = [:core, :details, :account], &block)
|
235
|
+
job_group(group).new(name, usecase: usecase, type: type, sets: sets, &block)
|
234
236
|
end
|
235
237
|
|
236
238
|
# @see Eco::API::Session::Batch::JobsGroups#launch
|
@@ -96,7 +96,7 @@ module Eco
|
|
96
96
|
# @param entry [Ecoportal::API::V1::Person, Enumberable<Person>] the person(s) we want to update, carrying the changes to be done.
|
97
97
|
# @param unique [Boolean] specifies if repeated entries should be avoided in the queue.
|
98
98
|
# @yield [person] callback before launching the batch job request against the server.
|
99
|
-
# @yieldparam
|
99
|
+
# @yieldparam person [Person] current person object that that should be treated by the callback before launching the batch.
|
100
100
|
# @return [Eco::API::Session::Batch::Job] this `Batch::Job`.
|
101
101
|
def add(entry, unique: true, &block)
|
102
102
|
case entry
|
@@ -42,13 +42,23 @@ module Eco
|
|
42
42
|
@jobs.key?(name)
|
43
43
|
end
|
44
44
|
|
45
|
+
# It retrieves an existing job named `name` or creates it if it doesn't exist.
|
46
|
+
# @note
|
47
|
+
# - the block should only be passed when creating the job
|
48
|
+
# @param [see @Eco::API::Session::Batch::Jobs#new]
|
49
|
+
# @return [Eco::API::Session::Batch::Job]
|
45
50
|
def job(name, type: nil, sets: nil, usecase: nil, &block)
|
51
|
+
fatal "Can't give a job post-launch callback &block to an already existing job" if exists?(name)
|
46
52
|
new(name, type: type, sets: sets, usecase: usecase, &block) unless exists?(name)
|
47
|
-
self[name]
|
48
|
-
block.call(job) if block
|
49
|
-
end
|
53
|
+
self[name]
|
50
54
|
end
|
51
55
|
|
56
|
+
# Creates a new `Batch::Job` included as part of this `Batch::Jobs`.
|
57
|
+
# @param [see Eco::API::Session::Job#new]
|
58
|
+
# @yield [job, status] callback after launching the batch job request against the server.
|
59
|
+
# @yieldparam job [Eco::API::Session::Batch::Job] the job we have launched against the server.
|
60
|
+
# @yieldparam status [Eco::API::Session::Batch::Status] the status of the batch job launch.
|
61
|
+
# @return [Eco::API::Session::Batch::Job]
|
52
62
|
def new(name, type:, sets:, usecase: nil, &block)
|
53
63
|
fatal "Can't create job named '#{name}' because it already exists." if exists?(name)
|
54
64
|
|
@@ -57,6 +67,11 @@ module Eco
|
|
57
67
|
end
|
58
68
|
end
|
59
69
|
|
70
|
+
# @param job [Eco::API::Session::Batch::Job] the `Batch::Job` to add.
|
71
|
+
# @yield [job, status] callback after launching the batch job request against the server.
|
72
|
+
# @yieldparam job [Eco::API::Session::Batch::Job] the job we have launched against the server.
|
73
|
+
# @yieldparam status [Eco::API::Session::Batch::Status] the status of the batch job launch.
|
74
|
+
# @return [Eco::API::Session::Batch::Job]
|
60
75
|
def add(job)
|
61
76
|
fatal "Expected Eco::API::Session::Batch::Job object. Given #{job.class}" unless job.is_a?(Eco::API::Session::Batch::Job)
|
62
77
|
@jobs[job.name] = job
|
@@ -67,6 +82,10 @@ module Eco
|
|
67
82
|
any? {|job| job.pending?}
|
68
83
|
end
|
69
84
|
|
85
|
+
# Launches every `Batch::Job` in the group.
|
86
|
+
# @note
|
87
|
+
# - if there was post-launch callback for a `Batch::Job`, it calls it.
|
88
|
+
# @return [Hash<Eco::API::Session::Batch::Job, Eco::API::Session::Batch::Status>]
|
70
89
|
def launch(simulate: false)
|
71
90
|
each do |job|
|
72
91
|
if job.pending?
|
@@ -58,6 +58,11 @@ module Eco
|
|
58
58
|
@groups.key?(name)
|
59
59
|
end
|
60
60
|
|
61
|
+
# Creates a new group of `Batch::Jobs` named `name`.
|
62
|
+
# @yield [group, group_status] callback after launching the batch job request against the server.
|
63
|
+
# @yieldparam group [Eco::API::Session::Batch::Jobs] the group of jobs we have launched against the server.
|
64
|
+
# @yieldparam group_status [Hash<Eco::API::Session::Batch::Job, Eco::API::Session::Batch::Status>] the status of the launched batch jobs.
|
65
|
+
# @return [Eco::API::Session::Batch::Jobs] the group of jobs.
|
61
66
|
def new(name, order: :last)
|
62
67
|
fatal "Can't create job group named '#{name}' because it already exists." if exists?(name)
|
63
68
|
|
@@ -78,6 +83,10 @@ module Eco
|
|
78
83
|
any? {|group| group.pending?}
|
79
84
|
end
|
80
85
|
|
86
|
+
# Launches every `Batch::Jobs` group in the current `Batch::JobGroups`
|
87
|
+
# @note
|
88
|
+
# - if there was post-launch callback for a `Batch::Jobs` groups, it calls it.
|
89
|
+
# @return [Hash<Eco::API::Session::Batch::Jobs,Hash<Eco::API::Session::Batch::Job, Eco::API::Session::Batch::Status>>]
|
81
90
|
def launch(simulate: false)
|
82
91
|
@order.each_with_index do |group, idx|
|
83
92
|
if group.pending?
|
@@ -2,6 +2,8 @@ class Eco::API::UseCases::DefaultCases::OrgDataConvertCase < Eco::API::Common::L
|
|
2
2
|
name "org-data-convert"
|
3
3
|
type :import
|
4
4
|
|
5
|
+
attr_reader :session, :options
|
6
|
+
|
5
7
|
def org_data_convert(people)
|
6
8
|
pp "Going to convert data from '#{source_enviro}' to '#{ASSETS.active_config}'"
|
7
9
|
puts "\n"
|
@@ -50,27 +52,43 @@ class Eco::API::UseCases::DefaultCases::OrgDataConvertCase < Eco::API::Common::L
|
|
50
52
|
|
51
53
|
def policy_groups_convert(ids)
|
52
54
|
ids.map do |id|
|
53
|
-
unless name =
|
54
|
-
|
55
|
+
unless name = source_policy_groups.to_name(id) || ignore_missing_policy_groups?
|
56
|
+
msg = "Ops, do not know #{id} usergroup for source environment"
|
57
|
+
msg += "\nUse the option -ignore-missing-policy-groups if you do not care"
|
58
|
+
error(msg)
|
55
59
|
end
|
56
60
|
session.policy_groups.to_id(name).tap do |new_id|
|
57
|
-
unless new_id
|
58
|
-
|
61
|
+
unless new_id || ignore_missing_policy_groups?
|
62
|
+
msg = "Ops, do not know #{name} usergroup for destination environment"
|
63
|
+
msg += "\nUse the option -ignore-missing-policy-groups if you do not care"
|
64
|
+
error(msg)
|
59
65
|
end
|
60
66
|
end
|
61
|
-
end
|
67
|
+
end.compact
|
68
|
+
end
|
69
|
+
|
70
|
+
def source_policy_groups
|
71
|
+
source_config.policy_groups
|
62
72
|
end
|
63
73
|
|
64
74
|
def source_config
|
65
|
-
@source_config ||= ASSETS.config(key: source_enviro, update_active: false)
|
75
|
+
@source_config ||= ASSETS.config(key: source_enviro, update_active: false).tap do |config|
|
76
|
+
unless config
|
77
|
+
error("The source environment '#{source_enviro}' does not exit or is not configured")
|
78
|
+
end
|
79
|
+
end
|
66
80
|
end
|
67
81
|
|
68
82
|
def source_enviro
|
69
83
|
@source_enviro ||= options.dig(:source_enviro).tap do |enviro|
|
70
|
-
error("A source
|
84
|
+
error("A source environment is required to migrate data from") unless enviro
|
71
85
|
end
|
72
86
|
end
|
73
87
|
|
88
|
+
def ignore_missing_policy_groups?
|
89
|
+
options.dig(:ignore, :missing, :policy_groups)
|
90
|
+
end
|
91
|
+
|
74
92
|
def logger
|
75
93
|
@session.logger
|
76
94
|
end
|
@@ -4,7 +4,7 @@ class Eco::API::UseCases::DefaultCases::RefreshCase < Eco::API::Common::Loaders:
|
|
4
4
|
|
5
5
|
def main(people, session, options, usecase)
|
6
6
|
update = session.new_job("main", "update", :update, usecase)
|
7
|
-
people.each {|person|
|
7
|
+
people.each {|person| update.add(person)}
|
8
8
|
end
|
9
9
|
|
10
10
|
end
|
@@ -2,7 +2,11 @@ class Eco::API::UseCases::DefaultCases::RestoreDBCase < Eco::API::Common::Loader
|
|
2
2
|
name "restore-db"
|
3
3
|
type :sync
|
4
4
|
|
5
|
+
attr_reader :session, :options
|
6
|
+
|
5
7
|
def main(entries, people, session, options, usecase)
|
8
|
+
@session = session; @options = options
|
9
|
+
|
6
10
|
micro = session.micro
|
7
11
|
require_people_as_entries!(entries)
|
8
12
|
|
@@ -26,21 +30,21 @@ class Eco::API::UseCases::DefaultCases::RestoreDBCase < Eco::API::Common::Loader
|
|
26
30
|
|
27
31
|
person.new? ? restart.add(person) : update.add(person)
|
28
32
|
|
29
|
-
core_copy(entry, person
|
30
|
-
person.details = entry.details
|
33
|
+
core_copy(entry, person) unless options.dig(:exclude, :core)
|
34
|
+
person.details = entry.details unless options.dig(:exclude, :details)
|
31
35
|
|
32
36
|
unless options.dig(:exclude, :account) || !entry.account
|
33
37
|
person.account ||= {}
|
34
|
-
account_copy(entry.account, person.account
|
38
|
+
account_copy(entry.account, person.account)
|
35
39
|
end
|
36
40
|
end
|
37
41
|
|
38
|
-
report_re_starters(re_starters
|
42
|
+
report_re_starters(re_starters)
|
39
43
|
end
|
40
44
|
|
41
45
|
private
|
42
46
|
|
43
|
-
def core_copy(entry, person
|
47
|
+
def core_copy(entry, person)
|
44
48
|
person.external_id = entry.external_id unless options.dig(:exclude, :external_id)
|
45
49
|
person.name = entry.name unless options.dig(:exclude, :name)
|
46
50
|
person.email = entry.email unless options.dig(:exclude, :email)
|
@@ -49,8 +53,8 @@ class Eco::API::UseCases::DefaultCases::RestoreDBCase < Eco::API::Common::Loader
|
|
49
53
|
person.freemium = entry.freemium
|
50
54
|
end
|
51
55
|
|
52
|
-
def account_copy(src, dst
|
53
|
-
if src
|
56
|
+
def account_copy(src, dst)
|
57
|
+
if src
|
54
58
|
dst.default_tag = src.default_tag unless options.dig(:exclude, :filter_tags)
|
55
59
|
dst.policy_group_ids = src.policy_group_ids unless options.dig(:exclude, :policy_groups)
|
56
60
|
|
@@ -59,27 +63,31 @@ class Eco::API::UseCases::DefaultCases::RestoreDBCase < Eco::API::Common::Loader
|
|
59
63
|
dst.permissions_custom = src.permissions_custom
|
60
64
|
end
|
61
65
|
|
62
|
-
|
63
|
-
|
66
|
+
unless options.dig(:exclude, :login_providers) || options.dig(:source_enviro)
|
67
|
+
dst.login_provider_ids = src.login_provider_ids
|
68
|
+
end
|
64
69
|
|
65
70
|
if src.preferences
|
66
71
|
dst.doc["preferences"] = JSON.parse((src.doc["preferences"] || {}).to_json)
|
67
72
|
end
|
68
73
|
|
69
|
-
|
70
|
-
|
74
|
+
unless options.dig(:source_enviro)
|
75
|
+
dst.starred_ids = src.starred_ids
|
76
|
+
dst.landing_page_id = src.landing_page_id
|
77
|
+
end
|
78
|
+
|
71
79
|
dst&.send_invites = options[:send_invites] if options.key?(:send_invites)
|
72
80
|
end
|
73
81
|
end
|
74
82
|
|
75
|
-
def require_people_as_entries!(entries
|
83
|
+
def require_people_as_entries!(entries)
|
76
84
|
unless entries.is_a?(Eco::API::Organization::People)
|
77
85
|
logger.error("Your input should be an 'Eco::API::Organization::People' object. Got: #{entries.class}")
|
78
86
|
exit(1)
|
79
87
|
end
|
80
88
|
end
|
81
89
|
|
82
|
-
def report_re_starters(re_starters
|
90
|
+
def report_re_starters(re_starters)
|
83
91
|
unless re_starters.empty?
|
84
92
|
logger.error("There were #{re_starters.length} entries of the backup that do not exist in the (filtered?) people manager")
|
85
93
|
logger.error("Some examples:")
|
@@ -89,4 +97,8 @@ class Eco::API::UseCases::DefaultCases::RestoreDBCase < Eco::API::Common::Loader
|
|
89
97
|
end
|
90
98
|
end
|
91
99
|
|
100
|
+
def logger
|
101
|
+
session.logger
|
102
|
+
end
|
103
|
+
|
92
104
|
end
|
@@ -36,7 +36,7 @@ module Eco
|
|
36
36
|
# @option kargs [Eco::API:Session] :session
|
37
37
|
# @option kargs [Hash] :options hash with symbol keys (i.e. behaviour modifiers, cli trackers, filters, etc.)
|
38
38
|
def launch(io: nil, **kargs)
|
39
|
-
params = io&.params(keyed: true) || {}
|
39
|
+
params = io&.params(keyed: true, all: true) || {}
|
40
40
|
kargs = params.merge(kargs).merge(usecase: self)
|
41
41
|
|
42
42
|
UseCaseIO.new(**kargs).tap do |uio|
|
@@ -55,6 +55,27 @@ ASSETS.cli.config do |cnf|
|
|
55
55
|
options.deep_merge!(super: {new: new_id})
|
56
56
|
end
|
57
57
|
|
58
|
+
desc = "Usage '-org-data-convert backup.json -restore-db-from'."
|
59
|
+
desc += " Transforms an input .json file to the values of the destination environment "
|
60
|
+
desc += " (names missmatch won't solve: i.e. usergroups)"
|
61
|
+
cases.add("-org-data-convert", :import, desc, case_name: "org-data-convert") do |input, session, options|
|
62
|
+
unless input && input.is_a?(Eco::API::Organization::People)
|
63
|
+
file = SCR.get_file("-org-data-convert", required: true)
|
64
|
+
input = Eco::API::Organization::People.new(JSON.parse(File.read(file)))
|
65
|
+
session.logger.info("Source DB: loaded #{input.length} entries.")
|
66
|
+
end
|
67
|
+
|
68
|
+
if source_enviro = SCR.get_arg("-source-enviro", with_param: true)
|
69
|
+
options.merge!(source_enviro: source_enviro)
|
70
|
+
else
|
71
|
+
session.logger.error("You need to specify a -source-enviro for the conversion to work out")
|
72
|
+
exit(1)
|
73
|
+
end
|
74
|
+
|
75
|
+
options.deep_merge!(ignore: {missing: {policy_groups: true}}) if SCR.get_arg("-ignore-missing-policy-groups")
|
76
|
+
|
77
|
+
end
|
78
|
+
|
58
79
|
desc = "Restores the people manager by using a backup.json file"
|
59
80
|
cases.add("-restore-db-from", :sync, desc, case_name: "restore-db") do |input, people, session, options|
|
60
81
|
unless input && input.is_a?(Eco::API::Organization::People)
|
@@ -94,7 +94,7 @@ module Eco
|
|
94
94
|
when Eco::API::UseCases::UseCaseIO
|
95
95
|
io.chain(usecase: usecase)
|
96
96
|
when Eco::API::UseCases::BaseIO
|
97
|
-
params = io.params(keyed: true).merge(usecase: usecase)
|
97
|
+
params = io.params(keyed: true, all: true).merge(usecase: usecase)
|
98
98
|
Eco::API::UseCases::UseCaseIO.new(**params)
|
99
99
|
end
|
100
100
|
end
|
data/lib/eco/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eco-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
@@ -116,7 +116,7 @@ dependencies:
|
|
116
116
|
requirements:
|
117
117
|
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0.7.
|
119
|
+
version: 0.7.3
|
120
120
|
- - "<"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0.8'
|
@@ -126,7 +126,7 @@ dependencies:
|
|
126
126
|
requirements:
|
127
127
|
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: 0.7.
|
129
|
+
version: 0.7.3
|
130
130
|
- - "<"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0.8'
|
@@ -296,6 +296,7 @@ files:
|
|
296
296
|
- lib/eco/api/common/version_patches/exception.rb
|
297
297
|
- lib/eco/api/common/version_patches/hash.rb
|
298
298
|
- lib/eco/api/common/version_patches/hash/deep_merge.rb
|
299
|
+
- lib/eco/api/common/version_patches/object.rb
|
299
300
|
- lib/eco/api/custom.rb
|
300
301
|
- lib/eco/api/custom/error_handler.rb
|
301
302
|
- lib/eco/api/custom/namespace.rb
|