pipe_fitter 0.2.2 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35272d9ed3c3d4edc4bf88d64b11442e35e3c9a4cace6a98444d83d4c48289dc
4
- data.tar.gz: bed943fbffa0862193d6206f94ba719ab21c99a80b9ba70dea74f333794c1549
3
+ metadata.gz: 6cb9f2f924f88ec2ab37a6ec3c61c2ea23700d88e3fba2f923801f46cdd79a47
4
+ data.tar.gz: 04ff627ba4eb1beef15b71051e278f1b1ca856fe109ebc4220b36ba5f628a7c3
5
5
  SHA512:
6
- metadata.gz: bc2ef02c8e8a3739cbe518045f2560e3a993ab3c29b14980c25a3213e305a71396f47d311a1b3cbf50e0deb3d3fb4bf47cfbd9b699d8e5d9415a4f5eb6a3ad57
7
- data.tar.gz: fdc45689a2e8c8711419c36a7284d0fb8a1321ce27651f1ee3641b8a301e95da745bf394831fe60f4e04bea8d803a5ab7491ece069b375cefb2aafea26321b28
6
+ metadata.gz: 4aff19dc044c5584b7f342d7a0d9e4c6899e09c45563c3a10ad4ce873488651a696a0cf69132f1307c1f10fb7d90344ef565213c4bed1162b556ebd34272ba86
7
+ data.tar.gz: 26b7035abcbc846efa2cdd700ca7954e4ce57403a7d83e8edad97820f3fcc014ea5b37221b718631cecb71b7b3aa03082693d131340a76e10ffd145d516942f1
@@ -0,0 +1,65 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ types:
9
+ - opened
10
+ - synchronize
11
+ - reopened
12
+ schedule:
13
+ - cron: "0 10 * * 5" # JST 19:00 (Fri)
14
+
15
+ env:
16
+ RUBYOPT: -EUTF-8
17
+
18
+ jobs:
19
+ test:
20
+ runs-on: ubuntu-latest
21
+
22
+ strategy:
23
+ fail-fast: false
24
+
25
+ matrix:
26
+ ruby:
27
+ - "2.6"
28
+ - "2.7"
29
+ - "3.0"
30
+ - "3.1"
31
+ - "3.2"
32
+
33
+ steps:
34
+ - uses: actions/checkout@v3
35
+
36
+ - uses: ruby/setup-ruby@v1
37
+ with:
38
+ ruby-version: ${{ matrix.ruby }}
39
+ bundler-cache: true
40
+
41
+ - run: bundle update --jobs $(nproc) --retry 3
42
+
43
+ - name: bundle update
44
+ run: |
45
+ set -xe
46
+ bundle config path vendor/bundle
47
+ bundle update --jobs $(nproc) --retry 3
48
+
49
+ - name: Setup Code Climate Test Reporter
50
+ uses: aktions/codeclimate-test-reporter@v1
51
+ with:
52
+ codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
53
+ command: before-build
54
+ continue-on-error: true
55
+
56
+ - run: bundle exec rake test
57
+ timeout-minutes: 1
58
+
59
+ - name: Teardown Code Climate Test Reporter
60
+ uses: aktions/codeclimate-test-reporter@v1
61
+ with:
62
+ codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
63
+ command: after-build
64
+ if: always()
65
+ continue-on-error: true
data/exe/pipe_fitter CHANGED
@@ -60,6 +60,7 @@ module PipeFitter
60
60
  p = client.find_registered(definition_file)
61
61
  abort("Pipeline is not registered") if p.nil?
62
62
  puts client.diff(p.id, definition_file, options[:format])
63
+ puts p.to_h.to_json
63
64
  end
64
65
 
65
66
  desc "find_update", "Find pipeline besed on name and uniqueId, update pipeline definition"
@@ -74,6 +75,7 @@ module PipeFitter
74
75
  end
75
76
  res = client.update(p.id, definition_file)
76
77
  puts JSON.pretty_generate(res)
78
+ puts p.to_h.to_json
77
79
  end
78
80
 
79
81
  desc "diff_deploy_files DEFINITION_FILE", "Show deploy files differences"
@@ -83,6 +83,15 @@ module PipeFitter
83
83
  end
84
84
 
85
85
  class PipelineBaseObjects
86
+ def initialize(objs)
87
+ @objs = (objs || []).map { |obj| symbolize_keys(obj) }
88
+ .sort_by { |obj| obj[:id] }.map do |obj|
89
+ obj.sort_by do |k, v|
90
+ [key_order.index(k) || key_order.size + 1, k.to_s, v.to_s]
91
+ end.to_h
92
+ end
93
+ end
94
+
86
95
  def to_objs
87
96
  case @objs
88
97
  when Array then @objs.map { |obj| stringify_keys(obj) }
@@ -126,7 +135,7 @@ module PipeFitter
126
135
  res = []
127
136
  obj.each do |k, v|
128
137
  next if skip_keys.include?(k)
129
- (v.is_a?(Array) ? v : [v]).each do |vv|
138
+ Array(v).each do |vv|
130
139
  if vv.is_a?(Hash) && vv.key?(:ref)
131
140
  res << { key: k, ref_value: vv[:ref] }
132
141
  else
@@ -150,15 +159,8 @@ module PipeFitter
150
159
  new(objs)
151
160
  end
152
161
 
153
- KEY_ORDER = %i(id name).freeze
154
-
155
- def initialize(objs)
156
- @objs = (objs || []).map { |obj| symbolize_keys(obj) }
157
- .sort_by { |obj| obj[:id] }.map do |obj|
158
- obj.sort_by do |k, v|
159
- [KEY_ORDER.index(k) || KEY_ORDER.size + 1, k.to_s, v.to_s]
160
- end.to_h
161
- end
162
+ def key_order
163
+ %i(id name).freeze
162
164
  end
163
165
 
164
166
  def to_api_opts
@@ -179,15 +181,8 @@ module PipeFitter
179
181
  new(objs)
180
182
  end
181
183
 
182
- KEY_ORDER = %i(id).freeze
183
-
184
- def initialize(objs)
185
- @objs = (objs || []).map { |obj| symbolize_keys(obj) }
186
- .sort_by { |obj| obj[:id] }.map do |obj|
187
- obj.sort_by do |k, v|
188
- [KEY_ORDER.index(k) || KEY_ORDER.size + 1, k.to_s, v.to_s]
189
- end.to_h
190
- end
184
+ def key_order
185
+ %i(id).freeze
191
186
  end
192
187
 
193
188
  def to_api_opts
@@ -1,3 +1,3 @@
1
1
  module PipeFitter
2
- VERSION = "0.2.2".freeze
2
+ VERSION = "0.2.5".freeze
3
3
  end
@@ -12,6 +12,8 @@ module PipeFitter
12
12
  def load(filename)
13
13
  @search_path.unshift(Pathname.new(filename).dirname)
14
14
  text = eval_erb(grep_v(filename, /^\s*#/))
15
+ YAML.load(text, aliases: true) || {}
16
+ rescue ArgumentError
15
17
  YAML.load(text) || {}
16
18
  rescue Psych::SyntaxError => e
17
19
  text.split("\n").each_with_index do |l, i|
@@ -39,7 +41,7 @@ module PipeFitter
39
41
  private
40
42
 
41
43
  def eval_erb(data, context = {})
42
- ERB.new(data, nil, "-").result(binding).strip
44
+ ERB.new(data, trim_mode: "-").result(binding).strip
43
45
  end
44
46
 
45
47
  def grep_v(filename, pattern)
data/pipe_fitter.gemspec CHANGED
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency "thor"
26
26
  spec.add_runtime_dependency "hashie"
27
27
  spec.add_runtime_dependency "s3diff", ">= 0.1.2"
28
+ spec.add_runtime_dependency "rexml"
28
29
 
29
30
  spec.add_development_dependency "bundler", ">= 1.3.5"
30
31
  spec.add_development_dependency "rake"
31
32
  spec.add_development_dependency "simplecov"
32
33
  spec.add_development_dependency "test-unit"
33
34
  spec.add_development_dependency "test-unit-rr"
34
- spec.add_development_dependency "pry-byebug"
35
35
  end
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.2.2
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - masa21kik
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-20 00:00:00.000000000 Z
11
+ date: 2023-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -95,35 +95,35 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.1.2
97
97
  - !ruby/object:Gem::Dependency
98
- name: bundler
98
+ name: rexml
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.3.5
104
- type: :development
103
+ version: '0'
104
+ type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.3.5
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake
112
+ name: bundler
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 1.3.5
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: 1.3.5
125
125
  - !ruby/object:Gem::Dependency
126
- name: simplecov
126
+ name: rake
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: test-unit
140
+ name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: test-unit-rr
154
+ name: test-unit
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -165,7 +165,7 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: pry-byebug
168
+ name: test-unit-rr
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="
@@ -186,6 +186,7 @@ executables:
186
186
  extensions: []
187
187
  extra_rdoc_files: []
188
188
  files:
189
+ - ".github/workflows/test.yml"
189
190
  - ".gitignore"
190
191
  - ".travis.yml"
191
192
  - Gemfile
@@ -205,7 +206,7 @@ homepage: https://github.com/masa21kik/pipe_fitter
205
206
  licenses:
206
207
  - MIT
207
208
  metadata: {}
208
- post_install_message:
209
+ post_install_message:
209
210
  rdoc_options: []
210
211
  require_paths:
211
212
  - lib
@@ -220,8 +221,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
221
  - !ruby/object:Gem::Version
221
222
  version: '0'
222
223
  requirements: []
223
- rubygems_version: 3.0.3
224
- signing_key:
224
+ rubygems_version: 3.3.7
225
+ signing_key:
225
226
  specification_version: 4
226
227
  summary: PipeFitter is a tool for AWS Data Pipeline.
227
228
  test_files: []