gh-diff 0.0.4 → 0.0.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
  SHA1:
3
- metadata.gz: 15521f2f4b02e468636ac647062099620407d809
4
- data.tar.gz: 65e651c2a715234b656baff23b367bb0cb5369ae
3
+ metadata.gz: 3a06727c1dc58fa3d5a219d7b2f6f720f8d0cec2
4
+ data.tar.gz: 004961bbb8b9e19793d79b5e3bfef515289c97e5
5
5
  SHA512:
6
- metadata.gz: a2ce5b3b85a2c8c28f48a5254c81cb76f6af5bb8797aad39aa3a241b614af2d3ea5a597c1616490f9b44b0dc4f1ad3fafaf838cf8112166c3faf178e5538d1ec
7
- data.tar.gz: 429c82cb0063b371fbcbf7d8237f2677e63ad8e076a54648cd7092bc704ee7c0230c1465348d41474ce0633ba61b367d7fefaaf597d4e801d557f28931269e54
6
+ metadata.gz: 1ea9453e4b55cabb64dd3f819601d29d0e9e1bb0182086b6e7bd9969ef663ac6d25c55460434d88e23ea2c3eb723022b1be0871de23cb0da81af16251bfceeca
7
+ data.tar.gz: c322447f5a99d1f35e6299e2055454d7c1548032c4b0cd16666d90a2adb240e41408edac92727d34b9de1ebf5a1841ccb28a2637ed3c8d506bcee135412f7245
data/lib/gh-diff/cli.rb CHANGED
@@ -113,6 +113,13 @@ Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
113
113
  end
114
114
 
115
115
  desc "dir_diff DIRECTORY", "Print added and removed files in remote repository"
116
+ option :save,
117
+ aliases:'-s',
118
+ default:false,
119
+ type: :boolean
120
+ option :save_dir,
121
+ default:'diff',
122
+ desc:'save directory'
116
123
  def dir_diff(dir)
117
124
  opts = Option.new(options).with_env
118
125
  github_auth(opts[:username], opts[:password], opts[:token])
@@ -125,6 +132,15 @@ Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
125
132
  if added.any?
126
133
  puts "\e[33mNew files:\e[0m"
127
134
  puts added.map { |f| " \e[32m" + f + "\e[0m" }
135
+ if opts[:save]
136
+ added.each do |f|
137
+ path = File.join(dir, f)
138
+ content = gh.get(path)
139
+ unless content.empty?
140
+ save(content, opts[:save_dir], path, File.extname(path))
141
+ end
142
+ end
143
+ end
128
144
  end
129
145
  if removed.any?
130
146
  puts "\e[33mRemoved files:\e[0m"
@@ -162,13 +178,13 @@ Base revision: #{ref[:object][:sha]}[#{ref[:ref]}]
162
178
  FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
163
179
  end
164
180
 
165
- def save(content, save_dir, file)
181
+ def save(content, save_dir, file, ext='.diff')
166
182
  dir = (d=File.dirname(file))=='.' ? '' : d
167
- file = File.basename(file, '.*') + '.diff'
183
+ file = File.basename(file, '.*') + ext
168
184
  path = File.join(save_dir, dir, file)
169
185
  mkdir(File.dirname path)
170
186
  File.write(path, content)
171
- print "\e[32mDiff saved at '#{path}'\e[0m\n"
187
+ print "\e[32mFile saved at '#{path}'\e[0m\n"
172
188
  end
173
189
 
174
190
  def file_not_found?(f1, f2, content)
@@ -1,3 +1,3 @@
1
1
  module GhDiff
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,145 @@
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
+ - Wed, 16 Jul 2014 01:04:14 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
+ - '1405475907'
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:5BD6:B8A7707:53C5CF8E
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: Wed, 16 Jul 2014 01:04:14 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
+ - Wed, 16 Jul 2014 01:04:15 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
+ - '1405475907'
108
+ Cache-Control:
109
+ - public, max-age=60, s-maxage=60
110
+ Last-Modified:
111
+ - Thu, 10 Jul 2014 01:28:49 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:5BD7:F28324F:53C5CF8E
134
+ Strict-Transport-Security:
135
+ - max-age=31536000; includeSubdomains
136
+ X-Content-Type-Options:
137
+ - nosniff
138
+ X-Served-By:
139
+ - 03d91026ad8428f4d9966d7434f9d82e
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: Wed, 16 Jul 2014 01:04:15 GMT
145
+ recorded_with: VCR 2.9.2
data/spec/cli_spec.rb CHANGED
@@ -94,7 +94,7 @@ describe GhDiff::CLI do
94
94
  --save)
95
95
  GhDiff::CLI.start
96
96
  path = 'diff/docs/quickstart.diff'
97
- expect($stdout.string).to match(/Diff saved at '#{path}'/)
97
+ expect($stdout.string).to match(/File saved at '#{path}'/)
98
98
  expect(File.exist? path).to be true
99
99
  expect(File.read path).to match(/-prev_section: old-home/)
100
100
  end
@@ -130,5 +130,19 @@ describe GhDiff::CLI do
130
130
  expect { GhDiff::CLI.start }.to raise_error(SystemExit)
131
131
  expect($stdout.string).to match(/Repository should/)
132
132
  end
133
+
134
+ context "with save option" do
135
+ it "saves new files" do
136
+ VCR.use_cassette('save-dir-diff') do
137
+ ARGV.replace %w(dir_diff bin
138
+ --repo=melborne/gh-diff
139
+ --save)
140
+ GhDiff::CLI.start
141
+ path = "diff/bin/gh-diff"
142
+ expect(File.exist? path).to be true
143
+ expect(File.read path).to match(/require.*gh-diff/)
144
+ end
145
+ end
146
+ end
133
147
  end
134
148
  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.4
4
+ version: 0.0.5
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-10 00:00:00.000000000 Z
11
+ date: 2014-07-16 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.yml
200
201
  - spec/cli_spec.rb
201
202
  - spec/fixtures/docs/migrations.md
202
203
  - spec/fixtures/docs/quickstart.md
@@ -224,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
224
225
  version: '0'
225
226
  requirements: []
226
227
  rubyforge_project:
227
- rubygems_version: 2.2.2
228
+ rubygems_version: 2.3.0
228
229
  signing_key:
229
230
  specification_version: 4
230
231
  summary: Take diffs between local and a github repository files.
@@ -239,6 +240,7 @@ test_files:
239
240
  - spec/cassettes/ref.yml
240
241
  - spec/cassettes/save-diff.yml
241
242
  - spec/cassettes/save-diffs.yml
243
+ - spec/cassettes/save-dir-diff.yml
242
244
  - spec/cli_spec.rb
243
245
  - spec/fixtures/docs/migrations.md
244
246
  - spec/fixtures/docs/quickstart.md