pipe_fitter 0.2.2 → 0.2.5

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 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: []