eco-helpers 2.0.2 → 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|