pipe_fitter 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pipe_fitter/pipeline.rb +34 -22
- data/lib/pipe_fitter/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ca34c72ead67585ab3933c20339c6024dba555d
|
4
|
+
data.tar.gz: 434c953698fb018b6babfbdcde83e1f4d770ab2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4ffd2b3e959cda33c02760755be11f05460c144a8700915f20a4f04fac44d74b825b29e25fbd03f4646fcb24333ca8afeb8b5e24640f09a3dac30af44b114c3
|
7
|
+
data.tar.gz: 0fe0ec48c13e2bcc260d9dbe7cae396a265e8f7f555fedb669c112874f48f6f2ec1d50939aca8a7496473374eac4f500e16cd36cb54f5f4654a4aad974f5026e
|
data/lib/pipe_fitter/pipeline.rb
CHANGED
@@ -98,14 +98,40 @@ module PipeFitter
|
|
98
98
|
end
|
99
99
|
h
|
100
100
|
end
|
101
|
+
|
102
|
+
private_class_method def self.update_hash(base, key, value)
|
103
|
+
if base.key?(key)
|
104
|
+
base[key] = [base[key]] unless base[key].is_a?(Array)
|
105
|
+
base[key] << value
|
106
|
+
base[key].sort!
|
107
|
+
else
|
108
|
+
base[key] = value
|
109
|
+
end
|
110
|
+
base
|
111
|
+
end
|
112
|
+
|
113
|
+
def split_object(obj, skip_keys)
|
114
|
+
res = []
|
115
|
+
obj.each do |k, v|
|
116
|
+
next if skip_keys.include?(k)
|
117
|
+
(v.is_a?(Array) ? v : [v]).each do |vv|
|
118
|
+
if vv.is_a?(Hash) && vv.key?(:ref)
|
119
|
+
res << { key: k, ref_value: vv[:ref] }
|
120
|
+
else
|
121
|
+
res << { key: k, string_value: vv }
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
res
|
126
|
+
end
|
101
127
|
end
|
102
128
|
|
103
129
|
class PipelineObjects < PipelineBaseObjects
|
104
130
|
def self.create(api_res)
|
105
|
-
objs = api_res.map(&:to_h).sort_by { |obj| obj[:id] }.map do |obj|
|
131
|
+
objs = (api_res || []).map(&:to_h).sort_by { |obj| obj[:id] }.map do |obj|
|
106
132
|
base = { id: obj[:id], name: obj[:name] }
|
107
133
|
obj[:fields].sort_by { |f| f[:key] }.inject(base) do |a, e|
|
108
|
-
a
|
134
|
+
update_hash(a, e[:key].to_sym, e[:string_value] || { ref: e[:ref_value] })
|
109
135
|
end
|
110
136
|
end
|
111
137
|
new(objs)
|
@@ -113,26 +139,17 @@ module PipeFitter
|
|
113
139
|
|
114
140
|
def to_api_opts
|
115
141
|
@objs.map do |obj|
|
116
|
-
|
117
|
-
obj.each do |k, v|
|
118
|
-
next if k == :id || k == :name
|
119
|
-
if v.is_a?(Hash) && v.key?(:ref)
|
120
|
-
base[:fields] << { key: k, ref_value: v[:ref] }
|
121
|
-
else
|
122
|
-
base[:fields] << { key: k, string_value: v }
|
123
|
-
end
|
124
|
-
end
|
125
|
-
base
|
142
|
+
{ id: obj[:id], name: obj[:name], fields: split_object(obj, %i(id name)) }
|
126
143
|
end
|
127
144
|
end
|
128
145
|
end
|
129
146
|
|
130
147
|
class ParameterObjects < PipelineBaseObjects
|
131
148
|
def self.create(api_res)
|
132
|
-
objs = api_res.map(&:to_h).sort_by { |obj| obj[:id] }.map do |obj|
|
149
|
+
objs = (api_res || []).map(&:to_h).sort_by { |obj| obj[:id] }.map do |obj|
|
133
150
|
base = { id: obj[:id] }
|
134
151
|
obj[:attributes].sort_by { |a| a[:key] }.inject(base) do |a, e|
|
135
|
-
a
|
152
|
+
update_hash(a, e[:key].to_sym, e[:string_value])
|
136
153
|
end
|
137
154
|
end
|
138
155
|
new(objs)
|
@@ -140,12 +157,7 @@ module PipeFitter
|
|
140
157
|
|
141
158
|
def to_api_opts
|
142
159
|
@objs.map do |obj|
|
143
|
-
|
144
|
-
obj.each do |k, v|
|
145
|
-
next if k == :id
|
146
|
-
base[:attributes] << { key: k, string_value: v }
|
147
|
-
end
|
148
|
-
base
|
160
|
+
{ id: obj[:id], attributes: split_object(obj, %i(id)) }
|
149
161
|
end
|
150
162
|
end
|
151
163
|
end
|
@@ -174,8 +186,8 @@ module PipeFitter
|
|
174
186
|
name: api_res[:name],
|
175
187
|
description: api_res[:description],
|
176
188
|
}
|
177
|
-
objs[:tags] = api_res[:tags].map { |e| { e[:key].to_sym => e[:value] } }
|
178
|
-
api_res[:fields].inject(objs) do |a, e|
|
189
|
+
objs[:tags] = (api_res[:tags] || []).map { |e| { e[:key].to_sym => e[:value] } }
|
190
|
+
(api_res[:fields] || []).inject(objs) do |a, e|
|
179
191
|
a.update(e[:key].to_sym => (e[:string_value] || { ref: e[:ref_value] } ))
|
180
192
|
end
|
181
193
|
new(objs)
|
data/lib/pipe_fitter/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pipe_fitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- masa21kik
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|