eco-helpers 2.0.2 → 2.0.7
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 +42 -1
- data/eco-helpers.gemspec +2 -2
- data/lib/eco/api/common/people/person_parser.rb +10 -3
- data/lib/eco/api/error.rb +2 -2
- data/lib/eco/api/policies/default_policies/99_user_access_policy.rb +15 -27
- data/lib/eco/api/session/batch/errors.rb +62 -60
- data/lib/eco/api/session/batch/job.rb +7 -7
- data/lib/eco/api/session/batch/jobs.rb +1 -1
- data/lib/eco/api/session/batch/jobs_groups.rb +1 -0
- data/lib/eco/api/session/batch/status.rb +3 -1
- data/lib/eco/api/session/config/workflow.rb +1 -0
- data/lib/eco/api/usecases/ooze_samples/ooze_update_case.rb +51 -5
- data/lib/eco/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b444c56a85b8fb8ce11e4b9201222adcb135c841eecece4b9e98f8bd6274b479
|
4
|
+
data.tar.gz: fca867adb3b83aeb1ab4473d76e69e9ff5ee4c4852c9e938317f656b1056fb53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a52c4b75a3093854de42d9f1a633e30faeb4b70e56322cc7252a5b5b8d581296afb53c32eaba209965366f7f4d398a73e3ecfaf3c03738e6b9b124a18ba4512
|
7
|
+
data.tar.gz: ab33ad8f29467b3844e3f43c407f3534228814c3915e63c72095bb9f2396f2f31b6cbd9dca9102472b75907dd908b3f529f1695479396cf5400b792e8ac0ed2f
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,48 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
-
## [2.0.
|
4
|
+
## [2.0.7] - 2021-03-xx
|
5
|
+
|
6
|
+
### Added
|
7
|
+
### Changed
|
8
|
+
### Fixed
|
9
|
+
- `Eco::API::Session::Batch::JobsGroups` and `Eco::API::Session::Batch::Jobs`: when new `Batch::Job`s are creating during launch, they remained unlaunched
|
10
|
+
- this fix makes `#launch` method to iterate until there are no pending
|
11
|
+
|
12
|
+
## [2.0.6] - 2021-03-08
|
13
|
+
|
14
|
+
### Added
|
15
|
+
### Changed
|
16
|
+
- `Eco::API::Session::Batch:Errors` moved some methods to be private
|
17
|
+
### Fixed
|
18
|
+
- `Eco::API::Error` should inherit from `StandardError`, rather than from `Exception`
|
19
|
+
|
20
|
+
## [2.0.5] - 2021-02-24
|
21
|
+
|
22
|
+
### Added
|
23
|
+
### Changed
|
24
|
+
### Fixed
|
25
|
+
- `Eco::API::Common::People::PersonParser#symbol_keys` to use `Array#select`
|
26
|
+
- as `Array#filter` was introduced in ruby `2.5.5`
|
27
|
+
|
28
|
+
## [2.0.4] - 2021-02-23
|
29
|
+
|
30
|
+
### Added
|
31
|
+
### Changed
|
32
|
+
- `Eco::API::Common::People::PersonParser#defined_attrs` to include virtual attributes
|
33
|
+
|
34
|
+
### Fixed
|
35
|
+
|
36
|
+
## [2.0.3] - 2021-02-23
|
37
|
+
|
38
|
+
### Added
|
39
|
+
- `Eco::API::UseCases::OozeSamples::OozeUpdateCase`: added integration to update page instances (non-templates)
|
40
|
+
|
41
|
+
### Changed
|
42
|
+
### Fixed
|
43
|
+
- `Eco::API::Policies::DefaultPolicies::UserAccess` complete default policy code.
|
44
|
+
|
45
|
+
## [2.0.2] - 2021-02-22
|
5
46
|
|
6
47
|
### Added
|
7
48
|
### Changed
|
data/eco-helpers.gemspec
CHANGED
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_development_dependency "yard", ">= 0.9.26", "< 0.10"
|
31
31
|
spec.add_development_dependency "redcarpet", ">= 3.5.1", "< 3.6"
|
32
32
|
|
33
|
-
spec.add_dependency 'ecoportal-api', '>= 0.8.
|
33
|
+
spec.add_dependency 'ecoportal-api', '>= 0.8.2', '< 0.9'
|
34
34
|
#spec.add_dependency 'ecoportal-api', '>= 0.7.5', '< 0.8'
|
35
|
-
spec.add_dependency 'ecoportal-api-v2', '>= 0.8.
|
35
|
+
spec.add_dependency 'ecoportal-api-v2', '>= 0.8.6', '< 0.9'
|
36
36
|
spec.add_dependency 'aws-sdk-s3', '>= 1.83.0', '< 2'
|
37
37
|
spec.add_dependency 'aws-sdk-ses', '>= 1.36.0', '< 2'
|
38
38
|
spec.add_dependency 'dotenv', '>= 2.7.6', '< 2.8'
|
@@ -99,9 +99,16 @@ module Eco
|
|
99
99
|
# - the list is sorted according `CORE_ATTRS` + `ACCOUNT_ATTRS` + schema attrs
|
100
100
|
# @return [Array<String>] list of all attribute defined parsers.
|
101
101
|
def defined_attrs
|
102
|
-
defined
|
103
|
-
defined
|
104
|
-
defined -
|
102
|
+
defined = @parsers.keys
|
103
|
+
defined = (all_attrs | defined) & defined
|
104
|
+
defined - symbol_keys
|
105
|
+
end
|
106
|
+
|
107
|
+
# Symbol keys are type or import parsers (that do not belong to the model)
|
108
|
+
# @note this was introduced to boost virtual fields to treat in different phases of the parsing process
|
109
|
+
# @return [Array<Symbol>] all the parsers defined as Symbol
|
110
|
+
def symbol_keys
|
111
|
+
@parsers.keys.select {|k| k.is_a?(Symbol)}
|
105
112
|
end
|
106
113
|
|
107
114
|
# Returns a list of all the internal attributes of the model that have a parser defined & that should be active.
|
data/lib/eco/api/error.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module Eco
|
2
2
|
module API
|
3
3
|
# To identify api server errors
|
4
|
-
class Error <
|
5
|
-
class UnknownErrorClass <
|
4
|
+
class Error < StandardError
|
5
|
+
class UnknownErrorClass < StandardError
|
6
6
|
def initialize(msg = nil, klass:)
|
7
7
|
msg ||= "Unkown api error class #{klass}"
|
8
8
|
super(msg)
|
@@ -1,18 +1,18 @@
|
|
1
1
|
class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loaders::Policy
|
2
2
|
name "default-user-access"
|
3
3
|
|
4
|
-
attr_reader
|
4
|
+
attr_reader :session, :options, :job
|
5
5
|
attr_accessor :account_removed_count
|
6
6
|
|
7
7
|
def main(people, session, options, policy, job)
|
8
|
-
@session = session; @options = options
|
8
|
+
@session = session; @options = options; @job = job
|
9
9
|
|
10
10
|
self.account_removed_count = 0
|
11
11
|
|
12
12
|
people.each do |person|
|
13
|
-
remove_account_when_no_email!(person)
|
14
|
-
person.account.policy_group_ids =
|
15
|
-
refresh_abilities!(person
|
13
|
+
remove_account_when_no_email!(person) if person.email.to_s.empty?
|
14
|
+
person.account.policy_group_ids = defid if no_policy_group_ids?(person)
|
15
|
+
refresh_abilities!(person)
|
16
16
|
end
|
17
17
|
|
18
18
|
warn_account_removal!
|
@@ -22,14 +22,14 @@ class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loader
|
|
22
22
|
|
23
23
|
def warn_account_removal!
|
24
24
|
if account_removed_count > 0
|
25
|
-
msg = "Removed account to #{account_removed_count} people"
|
25
|
+
msg = "(DefaultPolicy on job '#{job.name}') Removed account to #{account_removed_count} people"
|
26
26
|
session.logger.warn(msg)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def remove_account_when_no_email!(person)
|
31
31
|
if person.account
|
32
|
-
account_removed_count += 1 if had_account?(person)
|
32
|
+
self.account_removed_count += 1 if had_account?(person)
|
33
33
|
person.account = nil
|
34
34
|
end
|
35
35
|
end
|
@@ -40,23 +40,11 @@ class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loader
|
|
40
40
|
return !!person.original_doc["account"]
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
if no_abilities?(person)
|
50
|
-
account.permissions_custom = min_abilities
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def refresh_abilities!(account)
|
58
|
-
return nil unless account
|
59
|
-
|
43
|
+
def refresh_abilities!(person)
|
44
|
+
return nil if options.dig(:exclude, :abilities)
|
45
|
+
return nil unless account = person.account
|
46
|
+
account.permissions_custom = session.new_preset(person)
|
47
|
+
account.permissions_custom = min_abilities if no_abilities?(person)
|
60
48
|
end
|
61
49
|
|
62
50
|
def no_policy_group_ids?(person)
|
@@ -64,8 +52,8 @@ class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loader
|
|
64
52
|
end
|
65
53
|
|
66
54
|
def no_abilities?(person)
|
67
|
-
person.account
|
68
|
-
|
55
|
+
return true unless account = person.account
|
56
|
+
account.permissions_custom && account.permissions_custom.values.all?(&:nil?)
|
69
57
|
end
|
70
58
|
|
71
59
|
def min_abilities
|
@@ -86,7 +74,7 @@ class Eco::API::Policies::DefaultPolicies::UserAccess < Eco::API::Common::Loader
|
|
86
74
|
end
|
87
75
|
|
88
76
|
def defid
|
89
|
-
@defid ||= policy_groups.to_id(default_group)
|
77
|
+
@defid ||= policy_groups.to_id([default_group]).compact
|
90
78
|
end
|
91
79
|
|
92
80
|
def default_group
|
@@ -8,6 +8,8 @@ module Eco
|
|
8
8
|
# @attr_reader status [Eco::API::Session::Batch::Status] `batch status` this `Errors` object is associated to.
|
9
9
|
attr_reader :status
|
10
10
|
|
11
|
+
ErrorCache = Struct.new(:type, :err, :entry)
|
12
|
+
|
11
13
|
# @param status [Eco::API::Session::Batch::Status] `batch status` this `Errors` object is associated to.
|
12
14
|
def initialize(status:)
|
13
15
|
"Expected Batch::Status as root. Given: #{status.class}" unless status.is_a?(Eco::API::Session::Batch::Status)
|
@@ -55,29 +57,6 @@ module Eco
|
|
55
57
|
entries.length
|
56
58
|
end
|
57
59
|
|
58
|
-
# Input entries that got **error** response from the _Server_.
|
59
|
-
# @raise [Exception] if there are elements of the final `queue` that did not get response
|
60
|
-
# @note discards those that did not get _response_ from the Server (so those that were not queried)
|
61
|
-
# - please, observe that this can only happen if there were repeated entries in the `source_queue`
|
62
|
-
# @return [Array<Hash>, Array<Ecoportal::API::V1::Person>, Array<Ecoportal::API::Internal::Person>]
|
63
|
-
def entries
|
64
|
-
queue.each_with_index.map do |query, i|
|
65
|
-
unless response = status[i]
|
66
|
-
msg = "Error: query with no response. You might have duplicated entries in your queue.\n"
|
67
|
-
msg += "Queue length: #{queue.length}; Queue elements class: #{queue.first.class}\n"
|
68
|
-
msg += "Query with no response. Person: #{person_ref(query)}\n"
|
69
|
-
queue.map do |entry|
|
70
|
-
if [:id, :external_id, :email].any? {|attr| (v = get_attr(entry, attr)) && v == get_attr(query, attr)}
|
71
|
-
msg += "It could be this peson entry (idx: #{to_index(entry)}): #{person_ref(entry)}\n"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
raise msg
|
75
|
-
end
|
76
|
-
|
77
|
-
response.success?? nil : query
|
78
|
-
end.compact
|
79
|
-
end
|
80
|
-
|
81
60
|
# For all the `entries` with errors generates a `Hash` object
|
82
61
|
# @return [Array<Hash>] where each `Hash` has
|
83
62
|
# 1. `:type` -> the error type
|
@@ -88,11 +67,11 @@ module Eco
|
|
88
67
|
if body = status[entry].body
|
89
68
|
if errs = body["errors"]
|
90
69
|
errs.each do |msg|
|
91
|
-
arr.push(
|
92
|
-
|
93
|
-
|
94
|
-
entry
|
95
|
-
|
70
|
+
arr.push(ErrorCache.new(
|
71
|
+
klass = Eco::API::Error.get_type(msg),
|
72
|
+
klass.new(err_msg: msg, entry: entry, session: session),
|
73
|
+
entry
|
74
|
+
))
|
96
75
|
end
|
97
76
|
end
|
98
77
|
end
|
@@ -103,45 +82,16 @@ module Eco
|
|
103
82
|
# @return [Hash] where each `key` is a `type` **error** and each value is
|
104
83
|
# an `Array` of `entries` that got that error
|
105
84
|
def by_type
|
106
|
-
errors.group_by do |
|
107
|
-
|
85
|
+
errors.group_by do |e|
|
86
|
+
e.type
|
108
87
|
end.transform_values do |arr|
|
109
|
-
arr.map {|
|
88
|
+
arr.map {|e| e.entry}
|
110
89
|
end
|
111
90
|
end
|
112
91
|
# @!endgroup
|
113
92
|
|
114
93
|
# @!group Messaging methods
|
115
94
|
|
116
|
-
# Generates a `String` specifying the error for the entry `key`.
|
117
|
-
# @param key [Integer, Ecoportal::API::V1::Person]
|
118
|
-
# @return [String] the error description.
|
119
|
-
def str(key)
|
120
|
-
msg = ""
|
121
|
-
unless status.success?(key)
|
122
|
-
i = to_index(key)
|
123
|
-
entry = queue.to_a[i]
|
124
|
-
response = status[i]
|
125
|
-
msg = "Error #{response.status}: #{response.body}\n"
|
126
|
-
msg += "-- Failed to batch #{method}. Person: #{person_ref(entry)}"
|
127
|
-
end
|
128
|
-
msg
|
129
|
-
end
|
130
|
-
|
131
|
-
# Sorts the entries that got server error by error `type` and generates the error messages.
|
132
|
-
# @return [Array<String>] the errors messages.
|
133
|
-
def strs
|
134
|
-
by_type.values.flatten(1).each_with_object([]) do |query, msgs|
|
135
|
-
msgs.push(str(query))
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
def print_one(key)
|
140
|
-
unless status.success?(key)
|
141
|
-
logger.error(str(key))
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
95
|
def message
|
146
96
|
msgs = strs
|
147
97
|
if msgs.length > 0
|
@@ -163,6 +113,29 @@ module Eco
|
|
163
113
|
|
164
114
|
private
|
165
115
|
|
116
|
+
# Input entries that got **error** response from the _Server_.
|
117
|
+
# @raise [Exception] if there are elements of the final `queue` that did not get response
|
118
|
+
# @note discards those that did not get _response_ from the Server (so those that were not queried)
|
119
|
+
# - please, observe that this can only happen if there were repeated entries in the `source_queue`
|
120
|
+
# @return [Array<Hash>, Array<Ecoportal::API::V1::Person>, Array<Ecoportal::API::Internal::Person>]
|
121
|
+
def entries
|
122
|
+
queue.filter.with_index do |query, i|
|
123
|
+
unless response = status[i]
|
124
|
+
msg = "Error: query with no response. You might have duplicated entries in your queue.\n"
|
125
|
+
msg += "Queue length: #{queue.length}; Queue elements class: #{queue.first.class}\n"
|
126
|
+
msg += "Query with no response. Person: #{person_ref(query)}\n"
|
127
|
+
queue.map do |entry|
|
128
|
+
if [:id, :external_id, :email].any? {|attr| (v = get_attr(entry, attr)) && v == get_attr(query, attr)}
|
129
|
+
msg += "It could be this peson entry (idx: #{to_index(entry)}): #{person_ref(entry)}\n"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
raise msg
|
133
|
+
end
|
134
|
+
|
135
|
+
!response.success?
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
166
139
|
def person_ref(entry)
|
167
140
|
row_str = (row = get_row(entry)) ? "(row: #{row}) " : nil
|
168
141
|
"#{row_str}(id: '#{get_attr(entry, :id)}') '#{get_attr(entry, :name)}' ('#{get_attr(entry, :external_id)}': '#{get_attr(entry, :email)}')"
|
@@ -185,6 +158,35 @@ module Eco
|
|
185
158
|
end
|
186
159
|
end
|
187
160
|
|
161
|
+
# Sorts the entries that got server error by error `type` and generates the error messages.
|
162
|
+
# @return [Array<String>] the errors messages.
|
163
|
+
def strs
|
164
|
+
by_type.values.flatten(1).each_with_object([]) do |query, msgs|
|
165
|
+
msgs.push(str(query))
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
# Generates a `String` specifying the error for the entry `key`.
|
170
|
+
# @param key [Integer, Ecoportal::API::V1::Person]
|
171
|
+
# @return [String] the error description.
|
172
|
+
def str(key)
|
173
|
+
msg = ""
|
174
|
+
unless status.success?(key)
|
175
|
+
i = to_index(key)
|
176
|
+
entry = queue.to_a[i]
|
177
|
+
response = status[i]
|
178
|
+
msg = "Error #{response.status}: #{response.body}\n"
|
179
|
+
msg += "-- Failed to batch #{method}. Person: #{person_ref(entry)}"
|
180
|
+
end
|
181
|
+
msg
|
182
|
+
end
|
183
|
+
|
184
|
+
def print_one(key)
|
185
|
+
unless status.success?(key)
|
186
|
+
logger.error(str(key))
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
188
190
|
end
|
189
191
|
end
|
190
192
|
end
|
@@ -212,6 +212,13 @@ module Eco
|
|
212
212
|
|
213
213
|
private
|
214
214
|
|
215
|
+
def subjobs_summary
|
216
|
+
return "" unless subjobs.count > 0
|
217
|
+
[].tap do |msg|
|
218
|
+
subjobs.map {|subjob| msg << subjob.summary}
|
219
|
+
end.join("\n")
|
220
|
+
end
|
221
|
+
|
215
222
|
def as_update(*args)
|
216
223
|
feedback.as_update(*args)
|
217
224
|
end
|
@@ -310,13 +317,6 @@ module Eco
|
|
310
317
|
end
|
311
318
|
end
|
312
319
|
|
313
|
-
def subjobs_summary
|
314
|
-
return "" unless subjobs.count > 0
|
315
|
-
[].tap do |msg|
|
316
|
-
subjobs.map {|subjob| msg << subjob.summary}
|
317
|
-
end.join("\n")
|
318
|
-
end
|
319
|
-
|
320
320
|
end
|
321
321
|
end
|
322
322
|
end
|
@@ -122,7 +122,9 @@ module Eco
|
|
122
122
|
def valid_index(index: nil, entry: nil)
|
123
123
|
index ||= @hash[entry]
|
124
124
|
unless index && index < @queue.length
|
125
|
-
|
125
|
+
msg = "You must provide either the index on the final 'queue' or the original entry object of the batch. "
|
126
|
+
msg += "Given, index=#{index.class}, entry:#{entry.class}"
|
127
|
+
fatal msg
|
126
128
|
end
|
127
129
|
index
|
128
130
|
end
|
@@ -195,6 +195,7 @@ module Eco
|
|
195
195
|
# @yieldreturn [Eco::API::UseCases::BaseIO] the `io` input/output object carried througout all the _workflow_
|
196
196
|
# @return [Eco::API::Session::Config::Workflow] the current stage object (to ease chainig).
|
197
197
|
def run(key = nil, io:, &block)
|
198
|
+
raise "Missing BaseIO object" unless io.is_a?(Eco::API::UseCases::BaseIO)
|
198
199
|
begin
|
199
200
|
if key
|
200
201
|
io = stage(key).run(io: io, &block)
|
@@ -25,10 +25,30 @@ class Eco::API::UseCases::OozeSamples::OozeUpdateCase < Eco::API::Common::Loader
|
|
25
25
|
options.dig(:source, :ooze_id)
|
26
26
|
end
|
27
27
|
|
28
|
+
def stage_id
|
29
|
+
options.dig(:source, :stage_id)
|
30
|
+
end
|
31
|
+
|
32
|
+
def stage(id_name = stage_id)
|
33
|
+
if stg = ooze.stages[id_name] || ooze.stages.get_by_name(id_name)
|
34
|
+
return apiv2.pages.get(ooze_id, stage_id: stg.id).tap do |stage|
|
35
|
+
if stage
|
36
|
+
new_target(stage)
|
37
|
+
logger.info("Got #{object_reference(stage)} from #{object_reference(ooze)}")
|
38
|
+
else
|
39
|
+
logger.error("Could not get stage '#{id_name}' in ooze '#{ooze_id}'")
|
40
|
+
exit(1)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
raise "Stage '#{id_name}' doesn't exist in ooze '#{ooze_id}'"
|
45
|
+
end
|
46
|
+
|
28
47
|
def ooze
|
29
48
|
@ooze ||= apiv2.pages.get(ooze_id).tap do |ooze|
|
30
49
|
if ooze
|
31
|
-
|
50
|
+
new_target(ooze)
|
51
|
+
logger.info("Got #{object_reference(ooze)}")
|
32
52
|
else
|
33
53
|
logger.error("Could not get ooze '#{ooze_id}'")
|
34
54
|
exit(1)
|
@@ -39,7 +59,7 @@ class Eco::API::UseCases::OozeSamples::OozeUpdateCase < Eco::API::Common::Loader
|
|
39
59
|
def launch_request
|
40
60
|
prompt_to_confirm!
|
41
61
|
|
42
|
-
apiv2.pages.update(
|
62
|
+
apiv2.pages.update(target).tap do |response|
|
43
63
|
if response.success?
|
44
64
|
logger.info("All went OK")
|
45
65
|
else
|
@@ -59,9 +79,35 @@ class Eco::API::UseCases::OozeSamples::OozeUpdateCase < Eco::API::Common::Loader
|
|
59
79
|
@apiv2 ||= session.api(version: :oozes)
|
60
80
|
end
|
61
81
|
|
62
|
-
def
|
63
|
-
|
64
|
-
|
82
|
+
def target
|
83
|
+
@target
|
84
|
+
end
|
85
|
+
|
86
|
+
def new_target(object)
|
87
|
+
if @target && patch_doc["page"]
|
88
|
+
logger.warn "You you are switching to a new target #{object_reference(object)} after doing unsaved changes to #{object_reference(@target)}"
|
89
|
+
end
|
90
|
+
@target = object
|
91
|
+
end
|
92
|
+
|
93
|
+
def object_reference(obj)
|
94
|
+
return "No reference" unless obj
|
95
|
+
"".tap do |ref|
|
96
|
+
case obj
|
97
|
+
when Ecoportal::API::V2::Page::Stage
|
98
|
+
ref << "Stage "
|
99
|
+
when Ecoportal::API::V2::Pages::PageStage
|
100
|
+
ref << "StagePage "
|
101
|
+
when Ecoportal::API::V2::Page
|
102
|
+
ref << "Page "
|
103
|
+
end
|
104
|
+
ref << "'#{obj.name}' " if obj.respond_to?(:name)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
def patch_doc
|
110
|
+
apiv2.pages.get_body(target)
|
65
111
|
end
|
66
112
|
|
67
113
|
def backup_patch!
|
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: 2.0.
|
4
|
+
version: 2.0.7
|
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.8.
|
119
|
+
version: 0.8.2
|
120
120
|
- - "<"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0.9'
|
@@ -126,7 +126,7 @@ dependencies:
|
|
126
126
|
requirements:
|
127
127
|
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: 0.8.
|
129
|
+
version: 0.8.2
|
130
130
|
- - "<"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0.9'
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
requirements:
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.8.
|
139
|
+
version: 0.8.6
|
140
140
|
- - "<"
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '0.9'
|
@@ -146,7 +146,7 @@ dependencies:
|
|
146
146
|
requirements:
|
147
147
|
- - ">="
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0.8.
|
149
|
+
version: 0.8.6
|
150
150
|
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0.9'
|