gh-diff 0.0.5 → 0.0.6

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
  SHA1:
3
- metadata.gz: 3a06727c1dc58fa3d5a219d7b2f6f720f8d0cec2
4
- data.tar.gz: 004961bbb8b9e19793d79b5e3bfef515289c97e5
3
+ metadata.gz: a745e31a129cad4e300637e38f2f5f7fa1b76a16
4
+ data.tar.gz: 874b614d0be82a3e9ca16af514489c57936b6c1c
5
5
  SHA512:
6
- metadata.gz: 1ea9453e4b55cabb64dd3f819601d29d0e9e1bb0182086b6e7bd9969ef663ac6d25c55460434d88e23ea2c3eb723022b1be0871de23cb0da81af16251bfceeca
7
- data.tar.gz: c322447f5a99d1f35e6299e2055454d7c1548032c4b0cd16666d90a2adb240e41408edac92727d34b9de1ebf5a1841ccb28a2637ed3c8d506bcee135412f7245
6
+ metadata.gz: 0193890b04eebd909a04501bf5411bc51fa2fc60f06a965e5337d7fa9d80be6b029f7b952b379f2c0141fd4652f1ba86c58ca103b5c99d2cfdc35d305a513657
7
+ data.tar.gz: d56807813c65b3b77a8229e3294cbbbf7ac786ec3f70f58e83925d3faad209ae000e6eef6a757b294f1c4fba2c15afa283713cc588473a58eb2cbc4e80dfadf8
data/lib/gh-diff/cli.rb CHANGED
@@ -32,7 +32,7 @@ module GhDiff
32
32
  gh = init_ghdiff(opts[:repo], opts[:revision], opts[:dir])
33
33
  if opts[:ref]
34
34
  ref = gh.ref(opts[:revision], repo:opts[:repo])
35
- print "Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]\n"
35
+ print ref_format(ref)
36
36
  end
37
37
  print gh.get(file)
38
38
  rescue ::Octokit::NotFound
@@ -79,12 +79,7 @@ module GhDiff
79
79
 
80
80
  diffs.each do |(f1, f2), diff|
81
81
  next if file_not_found?(f1, f2, diff)
82
- header = <<-EOS
83
- Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
84
- --- #{f1}
85
- +++ #{f2}
86
-
87
- EOS
82
+ header = "#{ref_format(ref)}--- #{f1}\n+++ #{f2}\n\n"
88
83
  diff_form = "#{f1} <-> #{f2} [%s:%s]" %
89
84
  [ref[:object][:sha][0,7], ref[:ref].match(/\w+$/).to_s]
90
85
 
@@ -120,6 +115,11 @@ Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
120
115
  option :save_dir,
121
116
  default:'diff',
122
117
  desc:'save directory'
118
+ option :ref,
119
+ aliases:'-f',
120
+ default:false,
121
+ type: :boolean,
122
+ desc:'Add reference data into YAML front-matter of a file to be saved'
123
123
  def dir_diff(dir)
124
124
  opts = Option.new(options).with_env
125
125
  github_auth(opts[:username], opts[:password], opts[:token])
@@ -136,6 +136,10 @@ Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
136
136
  added.each do |f|
137
137
  path = File.join(dir, f)
138
138
  content = gh.get(path)
139
+ if opts[:ref]
140
+ content = add_reference(gh, opts[:revision],
141
+ opts[:repo], content)
142
+ end
139
143
  unless content.empty?
140
144
  save(content, opts[:save_dir], path, File.extname(path))
141
145
  end
@@ -187,6 +191,20 @@ Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
187
191
  print "\e[32mFile saved at '#{path}'\e[0m\n"
188
192
  end
189
193
 
194
+ def add_reference(ghdiff, revision, repo, content)
195
+ ref = ghdiff.ref(revision, repo:repo)
196
+ yfm_re = /\A(---\s*\n.*?\n?)^(---\s*$\n?)/m
197
+ if md = content.match(yfm_re)
198
+ md[1] + ref_format(ref, 'base_revision:') + md[2] + md.post_match
199
+ else
200
+ ref_format(ref) + content
201
+ end
202
+ end
203
+
204
+ def ref_format(ref, head="Base revision:")
205
+ "#{head} #{ref[:object][:sha]}[#{ref[:ref]}]\n"
206
+ end
207
+
190
208
  def file_not_found?(f1, f2, content)
191
209
  case content
192
210
  when :RemoteNotFound
@@ -1,3 +1,3 @@
1
1
  module GhDiff
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -0,0 +1,218 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/repos/melborne/gh-diff/contents/bin?ref=master
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.github.v3+json
12
+ User-Agent:
13
+ - Octokit Ruby Gem 3.1.2
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - GitHub.com
23
+ Date:
24
+ - Thu, 17 Jul 2014 01:12:52 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Status:
30
+ - 200 OK
31
+ X-Ratelimit-Limit:
32
+ - '60'
33
+ X-Ratelimit-Remaining:
34
+ - '57'
35
+ X-Ratelimit-Reset:
36
+ - '1405562975'
37
+ Cache-Control:
38
+ - public, max-age=60, s-maxage=60
39
+ Last-Modified:
40
+ - Sun, 06 Jul 2014 14:29:03 GMT
41
+ Etag:
42
+ - '"a98e37e86a4246a85b31e0297c2b068b"'
43
+ Vary:
44
+ - Accept
45
+ - Accept-Encoding
46
+ X-Github-Media-Type:
47
+ - github.v3; format=json
48
+ X-Xss-Protection:
49
+ - 1; mode=block
50
+ X-Frame-Options:
51
+ - deny
52
+ Content-Security-Policy:
53
+ - default-src 'none'
54
+ Access-Control-Allow-Credentials:
55
+ - 'true'
56
+ Access-Control-Expose-Headers:
57
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
58
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
59
+ Access-Control-Allow-Origin:
60
+ - "*"
61
+ X-Github-Request-Id:
62
+ - DE962F8B:18CC:D6BE1AF:53C72314
63
+ Strict-Transport-Security:
64
+ - max-age=31536000; includeSubdomains
65
+ X-Content-Type-Options:
66
+ - nosniff
67
+ X-Served-By:
68
+ - 971af40390ac4398fcdd45c8dab0fbe7
69
+ body:
70
+ encoding: UTF-8
71
+ string: '[{"name":"gh-diff","path":"bin/gh-diff","sha":"97f13c6aafe6520b33960b32c398e4c8bbeb4bf7","size":64,"url":"https://api.github.com/repos/melborne/gh-diff/contents/bin/gh-diff?ref=master","html_url":"https://github.com/melborne/gh-diff/blob/master/bin/gh-diff","git_url":"https://api.github.com/repos/melborne/gh-diff/git/blobs/97f13c6aafe6520b33960b32c398e4c8bbeb4bf7","type":"file","_links":{"self":"https://api.github.com/repos/melborne/gh-diff/contents/bin/gh-diff?ref=master","git":"https://api.github.com/repos/melborne/gh-diff/git/blobs/97f13c6aafe6520b33960b32c398e4c8bbeb4bf7","html":"https://github.com/melborne/gh-diff/blob/master/bin/gh-diff"}}]'
72
+ http_version:
73
+ recorded_at: Thu, 17 Jul 2014 01:12:52 GMT
74
+ - request:
75
+ method: get
76
+ uri: https://api.github.com/repos/melborne/gh-diff/contents/bin/gh-diff?ref=master
77
+ body:
78
+ encoding: US-ASCII
79
+ string: ''
80
+ headers:
81
+ Accept:
82
+ - application/vnd.github.v3+json
83
+ User-Agent:
84
+ - Octokit Ruby Gem 3.1.2
85
+ Accept-Encoding:
86
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
87
+ response:
88
+ status:
89
+ code: 200
90
+ message: OK
91
+ headers:
92
+ Server:
93
+ - GitHub.com
94
+ Date:
95
+ - Thu, 17 Jul 2014 01:12:53 GMT
96
+ Content-Type:
97
+ - application/json; charset=utf-8
98
+ Transfer-Encoding:
99
+ - chunked
100
+ Status:
101
+ - 200 OK
102
+ X-Ratelimit-Limit:
103
+ - '60'
104
+ X-Ratelimit-Remaining:
105
+ - '56'
106
+ X-Ratelimit-Reset:
107
+ - '1405562975'
108
+ Cache-Control:
109
+ - public, max-age=60, s-maxage=60
110
+ Last-Modified:
111
+ - Wed, 16 Jul 2014 01:47:46 GMT
112
+ Etag:
113
+ - '"ea0aae4ec6b8ddf249d9c8f9c21e8f90"'
114
+ Vary:
115
+ - Accept
116
+ - Accept-Encoding
117
+ X-Github-Media-Type:
118
+ - github.v3; format=json
119
+ X-Xss-Protection:
120
+ - 1; mode=block
121
+ X-Frame-Options:
122
+ - deny
123
+ Content-Security-Policy:
124
+ - default-src 'none'
125
+ Access-Control-Allow-Credentials:
126
+ - 'true'
127
+ Access-Control-Expose-Headers:
128
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
129
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
130
+ Access-Control-Allow-Origin:
131
+ - "*"
132
+ X-Github-Request-Id:
133
+ - DE962F8B:18CE:146187F4:53C72314
134
+ Strict-Transport-Security:
135
+ - max-age=31536000; includeSubdomains
136
+ X-Content-Type-Options:
137
+ - nosniff
138
+ X-Served-By:
139
+ - 62a1303ae95931e56e387e87d354bb24
140
+ body:
141
+ encoding: UTF-8
142
+ string: '{"name":"gh-diff","path":"bin/gh-diff","sha":"97f13c6aafe6520b33960b32c398e4c8bbeb4bf7","size":64,"url":"https://api.github.com/repos/melborne/gh-diff/contents/bin/gh-diff?ref=master","html_url":"https://github.com/melborne/gh-diff/blob/master/bin/gh-diff","git_url":"https://api.github.com/repos/melborne/gh-diff/git/blobs/97f13c6aafe6520b33960b32c398e4c8bbeb4bf7","type":"file","content":"IyEvdXNyL2Jpbi9lbnYgcnVieQoKcmVxdWlyZSAnZ2gtZGlmZicKCkdoRGlm\nZjo6Q0xJLnN0YXJ0KEFSR1YpCg==\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/melborne/gh-diff/contents/bin/gh-diff?ref=master","git":"https://api.github.com/repos/melborne/gh-diff/git/blobs/97f13c6aafe6520b33960b32c398e4c8bbeb4bf7","html":"https://github.com/melborne/gh-diff/blob/master/bin/gh-diff"}}'
143
+ http_version:
144
+ recorded_at: Thu, 17 Jul 2014 01:12:53 GMT
145
+ - request:
146
+ method: get
147
+ uri: https://api.github.com/repos/melborne/gh-diff/git/refs/heads/master
148
+ body:
149
+ encoding: US-ASCII
150
+ string: ''
151
+ headers:
152
+ Accept:
153
+ - application/vnd.github.v3+json
154
+ User-Agent:
155
+ - Octokit Ruby Gem 3.1.2
156
+ Accept-Encoding:
157
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
158
+ response:
159
+ status:
160
+ code: 200
161
+ message: OK
162
+ headers:
163
+ Server:
164
+ - GitHub.com
165
+ Date:
166
+ - Thu, 17 Jul 2014 01:12:54 GMT
167
+ Content-Type:
168
+ - application/json; charset=utf-8
169
+ Transfer-Encoding:
170
+ - chunked
171
+ Status:
172
+ - 200 OK
173
+ X-Ratelimit-Limit:
174
+ - '60'
175
+ X-Ratelimit-Remaining:
176
+ - '55'
177
+ X-Ratelimit-Reset:
178
+ - '1405562975'
179
+ Cache-Control:
180
+ - public, max-age=60, s-maxage=60
181
+ Last-Modified:
182
+ - Sun, 06 Jul 2014 14:29:03 GMT
183
+ Etag:
184
+ - '"b767d7ca62d9eed4ecdf0699cf8578db"'
185
+ X-Poll-Interval:
186
+ - '300'
187
+ Vary:
188
+ - Accept
189
+ - Accept-Encoding
190
+ X-Github-Media-Type:
191
+ - github.v3; format=json
192
+ X-Xss-Protection:
193
+ - 1; mode=block
194
+ X-Frame-Options:
195
+ - deny
196
+ Content-Security-Policy:
197
+ - default-src 'none'
198
+ Access-Control-Allow-Credentials:
199
+ - 'true'
200
+ Access-Control-Expose-Headers:
201
+ - ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset,
202
+ X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
203
+ Access-Control-Allow-Origin:
204
+ - "*"
205
+ X-Github-Request-Id:
206
+ - DE962F8B:18CD:113BE344:53C72315
207
+ Strict-Transport-Security:
208
+ - max-age=31536000; includeSubdomains
209
+ X-Content-Type-Options:
210
+ - nosniff
211
+ X-Served-By:
212
+ - 132026e9262a0093e437f99db5f1e499
213
+ body:
214
+ encoding: UTF-8
215
+ string: '{"ref":"refs/heads/master","url":"https://api.github.com/repos/melborne/gh-diff/git/refs/heads/master","object":{"sha":"3c8be5d3895da32a363bee90f0dab6cdda10fb42","type":"commit","url":"https://api.github.com/repos/melborne/gh-diff/git/commits/3c8be5d3895da32a363bee90f0dab6cdda10fb42"}}'
216
+ http_version:
217
+ recorded_at: Thu, 17 Jul 2014 01:12:54 GMT
218
+ recorded_with: VCR 2.9.2
data/spec/cli_spec.rb CHANGED
@@ -143,6 +143,20 @@ describe GhDiff::CLI do
143
143
  expect(File.read path).to match(/require.*gh-diff/)
144
144
  end
145
145
  end
146
+
147
+ context "with ref option" do
148
+ it "add base revision number in the YAML front-matter" do
149
+ VCR.use_cassette('save-dir-diff-ref') do
150
+ ARGV.replace %w(dir_diff bin
151
+ --repo=melborne/gh-diff
152
+ --save --ref)
153
+ GhDiff::CLI.start
154
+ path = "diff/bin/gh-diff"
155
+ expect(File.exist? path).to be true
156
+ expect(File.read path).to match(/Base revision: 3c8be5d3/)
157
+ end
158
+ end
159
+ end
146
160
  end
147
161
  end
148
162
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gh-diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - kyoendo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-16 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: togglate
@@ -197,6 +197,7 @@ files:
197
197
  - spec/cassettes/ref.yml
198
198
  - spec/cassettes/save-diff.yml
199
199
  - spec/cassettes/save-diffs.yml
200
+ - spec/cassettes/save-dir-diff-ref.yml
200
201
  - spec/cassettes/save-dir-diff.yml
201
202
  - spec/cli_spec.rb
202
203
  - spec/fixtures/docs/migrations.md
@@ -240,6 +241,7 @@ test_files:
240
241
  - spec/cassettes/ref.yml
241
242
  - spec/cassettes/save-diff.yml
242
243
  - spec/cassettes/save-diffs.yml
244
+ - spec/cassettes/save-dir-diff-ref.yml
243
245
  - spec/cassettes/save-dir-diff.yml
244
246
  - spec/cli_spec.rb
245
247
  - spec/fixtures/docs/migrations.md