gemdiff 0.6.12 → 0.7.0
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 +4 -4
- data/.travis.yml +1 -1
- data/README.md +7 -8
- data/gemdiff.gemspec +4 -4
- data/lib/gemdiff/repo_finder.rb +6 -4
- data/lib/gemdiff/version.rb +1 -1
- data/test/repo_finder_test.rb +16 -4
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80e10c9bdcb66f4c19cd26e3c9f9ccb1810f7006
|
4
|
+
data.tar.gz: 06bbdbfb7da6cab122545d91ebc94ae4c56418ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c2abd3e49411e4439e78e2410f6dc20b7bdd995094987320a1c9eabab524f35cbe8da125f4294cfc380073412d4f1a6f6c8ea595d86f317c154d5ece38dddb8
|
7
|
+
data.tar.gz: 6f2edf76411e2892ec007440092b5a873c48d1771bc9836ec23ccea178a95d98c34c93a26777bdd7bc5575ff884870ed562dfd4d14186da73bcdbef38aaeaced
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[](http://rubygems.org/gems/gemdiff)
|
4
4
|
[](https://travis-ci.org/teeparham/gemdiff)
|
5
5
|
|
6
|
-
`gemdiff` is a command-line utility to find and compare source code
|
6
|
+
`gemdiff` is a command-line utility to find and compare source code
|
7
7
|
associated with ruby gems. It makes it easy to compare source code differences
|
8
8
|
between the current version of a gem in your bundle and the latest version of the gem.
|
9
9
|
`gemdiff` helps connect gem version management (rubygems + bundler) with source code (github).
|
@@ -12,14 +12,14 @@ between the current version of a gem in your bundle and the latest version of th
|
|
12
12
|
|
13
13
|
You want to view the source code differences between versions of gems when your dependencies are updated.
|
14
14
|
`gemdiff` does the source repository lookup, opens common GitHub pages, and simplifies your git workflow for a
|
15
|
-
bundled project
|
15
|
+
bundled project.
|
16
16
|
|
17
17
|
### How?
|
18
18
|
|
19
19
|
`gemdiff` finds a repository by inspecting the local or remote gemspec, or searching github if needed.
|
20
20
|
It uses bundler to list your outdated gems. For each outdated gem, it determines your currently used version and
|
21
21
|
the version you can update to, and builds a compare view URL with the old and new version tags.
|
22
|
-
It
|
22
|
+
It provides `update` for a simple `bundle update <gem>` and commit workflow.
|
23
23
|
|
24
24
|
## Install
|
25
25
|
|
@@ -32,7 +32,7 @@ gem install gemdiff
|
|
32
32
|
### `gemdiff outdated`
|
33
33
|
|
34
34
|
Runs `bundle outdated --strict` in the current directory.
|
35
|
-
For each outdated gem, you can open the compare view for that gem, skip it, or exit
|
35
|
+
For each outdated gem, you can open the compare view for that gem, skip it, or exit.
|
36
36
|
Enter `y` to review.
|
37
37
|
|
38
38
|
`outdated` is the default task, so `gemdiff` with no arguments is the same as `gemdiff outdated`.
|
@@ -174,13 +174,12 @@ is not helpful. Some gems' source code is not on GitHub. `gemdiff` could support
|
|
174
174
|
2. The GitHub repository must have tagged releases to show compare views. If you find gems that do not tag
|
175
175
|
releases, submit an issue to the gem maintainer to tag their releases.
|
176
176
|
|
177
|
-
3. The versions must be tagged using the standard
|
177
|
+
3. The versions must be tagged using the standard format of `v1.2.3`. If you find gems that follow
|
178
178
|
a non-standard format (such as `1.2.3`), please open an issue or submit a pull request.
|
179
179
|
See [`lib/gemdiff/outdated_gem.rb`](https://github.com/teeparham/gemdiff/blob/master/lib/gemdiff/outdated_gem.rb).
|
180
180
|
|
181
|
-
4. Encourage gem maintainers to
|
182
|
-
or anywhere in the description.
|
183
|
-
the GitHub search API. If you find exceptions, open an issue or submit a pull request.
|
181
|
+
4. Encourage gem maintainers to enter the GitHub repository URL in the `homepage` field of their gemspec
|
182
|
+
or anywhere in the description. If you find exceptions, open an issue or submit a pull request.
|
184
183
|
See [`lib/gemdiff/repo_finder.rb`](https://github.com/teeparham/gemdiff/blob/master/lib/gemdiff/repo_finder.rb).
|
185
184
|
|
186
185
|
### More Info
|
data/gemdiff.gemspec
CHANGED
@@ -24,8 +24,8 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_dependency "thor", "~> 0.19"
|
25
25
|
spec.add_dependency "launchy", "~> 2.4"
|
26
26
|
|
27
|
-
spec.add_development_dependency "bundler", "~> 1.
|
28
|
-
spec.add_development_dependency "minitest", "~> 5.
|
29
|
-
spec.add_development_dependency "mocha", "~> 1.
|
30
|
-
spec.add_development_dependency "rake", "~> 10.
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
28
|
+
spec.add_development_dependency "minitest", "~> 5.4"
|
29
|
+
spec.add_development_dependency "mocha", "~> 1.1"
|
30
|
+
spec.add_development_dependency "rake", "~> 10.3"
|
31
31
|
end
|
data/lib/gemdiff/repo_finder.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'octokit'
|
2
|
+
require 'yaml'
|
2
3
|
|
3
4
|
module Gemdiff
|
4
5
|
module RepoFinder
|
@@ -16,7 +17,6 @@ module Gemdiff
|
|
16
17
|
activemodel: 'rails/rails',
|
17
18
|
activerecord: 'rails/rails',
|
18
19
|
activesupport: 'rails/rails',
|
19
|
-
color: 'halostatue/color',
|
20
20
|
:"color-schemer" => 'Team-Sass/color-schemer',
|
21
21
|
delayed_job: 'collectiveidea/delayed_job',
|
22
22
|
ffi: 'ffi/ffi',
|
@@ -47,8 +47,10 @@ module Gemdiff
|
|
47
47
|
if (full_name = REPO_EXCEPTIONS[gem_name.to_sym])
|
48
48
|
return github_repo(full_name)
|
49
49
|
end
|
50
|
-
return nil unless (
|
51
|
-
|
50
|
+
return nil unless (yaml = gemspec(gem_name))
|
51
|
+
spec = YAML.load(yaml)
|
52
|
+
return spec.homepage if spec.homepage =~ GITHUB_REPO_REGEX
|
53
|
+
match = spec.description.match(GITHUB_REPO_REGEX)
|
52
54
|
match && match[0]
|
53
55
|
end
|
54
56
|
|
@@ -82,7 +84,7 @@ module Gemdiff
|
|
82
84
|
end
|
83
85
|
|
84
86
|
def find_remote_gemspec(name)
|
85
|
-
`gem spec -r #{name}`
|
87
|
+
`gem spec -r #{name}` if last_shell_command_success?
|
86
88
|
end
|
87
89
|
end
|
88
90
|
end
|
data/lib/gemdiff/version.rb
CHANGED
data/test/repo_finder_test.rb
CHANGED
@@ -4,7 +4,7 @@ module Gemdiff
|
|
4
4
|
class RepoFinderTest < MiniTest::Spec
|
5
5
|
describe ".github_url" do
|
6
6
|
it "returns github url from local gemspec" do
|
7
|
-
RepoFinder.stubs find_local_gemspec: "homepage: http://github.com/rails/arel"
|
7
|
+
RepoFinder.stubs find_local_gemspec: fake_gemspec("homepage: http://github.com/rails/arel")
|
8
8
|
RepoFinder.stubs last_shell_command_success?: true
|
9
9
|
assert_equal "http://github.com/rails/arel", RepoFinder.github_url("arel")
|
10
10
|
end
|
@@ -12,19 +12,19 @@ module Gemdiff
|
|
12
12
|
it "returns github url from remote gemspec" do
|
13
13
|
RepoFinder.stubs find_local_gemspec: ""
|
14
14
|
RepoFinder.stubs last_shell_command_success?: false
|
15
|
-
RepoFinder.stubs find_remote_gemspec: "homepage: http://github.com/rails/arel"
|
15
|
+
RepoFinder.stubs find_remote_gemspec: fake_gemspec("homepage: http://github.com/rails/arel")
|
16
16
|
assert_equal "http://github.com/rails/arel", RepoFinder.github_url("arel")
|
17
17
|
end
|
18
18
|
|
19
19
|
it "returns github url from github search" do
|
20
20
|
RepoFinder.stubs octokit_client: mock_octokit("haml/haml")
|
21
|
-
RepoFinder.stubs gemspec:
|
21
|
+
RepoFinder.stubs gemspec: fake_gemspec
|
22
22
|
assert_equal "http://github.com/haml/haml", RepoFinder.github_url("haml")
|
23
23
|
end
|
24
24
|
|
25
25
|
it "returns nil when not found" do
|
26
26
|
RepoFinder.stubs octokit_client: mock_octokit(nil)
|
27
|
-
RepoFinder.stubs gemspec:
|
27
|
+
RepoFinder.stubs gemspec: fake_gemspec
|
28
28
|
assert_nil RepoFinder.github_url("not_found")
|
29
29
|
end
|
30
30
|
|
@@ -44,5 +44,17 @@ module Gemdiff
|
|
44
44
|
end
|
45
45
|
mock { stubs search_repositories: mock_items }
|
46
46
|
end
|
47
|
+
|
48
|
+
FAKE_GEMSPEC = %(
|
49
|
+
--- !ruby/object:Gem::Specification
|
50
|
+
name: fake
|
51
|
+
version: !ruby/object:Gem::Version
|
52
|
+
version: 1.2.3
|
53
|
+
description: fake
|
54
|
+
)
|
55
|
+
|
56
|
+
def fake_gemspec(extra = "")
|
57
|
+
[FAKE_GEMSPEC, extra].compact.join("\n")
|
58
|
+
end
|
47
59
|
end
|
48
60
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemdiff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tee Parham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octokit
|
@@ -58,56 +58,56 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.6'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.6'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '5.
|
75
|
+
version: '5.4'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '5.
|
82
|
+
version: '5.4'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: mocha
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '1.
|
89
|
+
version: '1.1'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '1.
|
96
|
+
version: '1.1'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rake
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '10.
|
103
|
+
version: '10.3'
|
104
104
|
type: :development
|
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: '10.
|
110
|
+
version: '10.3'
|
111
111
|
description: Command-line utility to find source repositories for ruby gems, open
|
112
112
|
common github pages, compare gem versions, and simplify gem update workflow in git
|
113
113
|
email:
|