gem_version_check 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -12,23 +12,31 @@ At XING we use this gem in combination with jenkins to automatically check on ge
12
12
 
13
13
  Use the Github project name:
14
14
 
15
- gem_version_check fdietz/team_dashboard activesupport rspec
15
+ gem_version_check fdietz/team_dashboard
16
16
 
17
17
  Use any url to a Gemfile.lock:
18
18
 
19
- gem_version_check https://raw.github.com/fdietz/team_dashboard/raw/master/Gemfile.lock activesupport rspec
19
+ gem_version_check https://raw.github.com/fdietz/team_dashboard/raw/master/Gemfile.lock
20
20
 
21
21
  ## Configuration
22
22
 
23
- Use GITHUB_HOST environment variable if you use Enterprise Github:
23
+ Use --host option if you use Enterprise Github:
24
24
 
25
- GITHUB_HOST=github.mycompany.com gem_version_check fdietz/team_dashboard activesupport rspec
25
+ gem_version_check fdietz/team_dashboard --host github.mycompany.com
26
+
27
+ Use --only option if you want to specify the list of gems
28
+
29
+ gem_version_check fdietz/team_dashboard --only activesupport,rspec
30
+
31
+ Use --output-format if you want different formats
32
+
33
+ gem_version_check fdietz/team_dashboard --output-format=json
26
34
 
27
35
  ## Example Report
28
36
 
29
37
  ### Pretty Print
30
38
 
31
- Example command: gem_version_check fdietz/team_dashboard activesupport rspec
39
+ Example command: gem_version_check fdietz/team_dashboard --only activesupport,rspec
32
40
 
33
41
  Output:
34
42
 
@@ -7,7 +7,7 @@ module GemVersionCheck
7
7
 
8
8
  def initialize(name, expected_version = nil)
9
9
  @name = name
10
- @expected_version = expected_version || latest_version
10
+ @expected_version = expected_version
11
11
  end
12
12
 
13
13
  def check(lock_file)
@@ -15,7 +15,7 @@ module GemVersionCheck
15
15
  @used = !!@version
16
16
  return unless used?
17
17
 
18
- @result = @expected_version == @version
18
+ @result = expected_version == @version
19
19
  end
20
20
 
21
21
  def valid?
@@ -26,6 +26,14 @@ module GemVersionCheck
26
26
  @used
27
27
  end
28
28
 
29
+ def gem_not_found?
30
+ expected_version.nil?
31
+ end
32
+
33
+ def expected_version
34
+ @expected_version ||= latest_version
35
+ end
36
+
29
37
  def latest_version
30
38
  @latest_version ||= begin
31
39
  spec = retrieve_spec
@@ -27,20 +27,26 @@ module GemVersionCheck
27
27
  "Project: #{project.check_failed? ? red : green}#{project.name}#{black}"
28
28
  end
29
29
 
30
- def dependency_listitem(dependency)
31
- " * #{dependency.name}: #{ yield dependency }\n"
30
+ def dependency_listitem(dep)
31
+ " #{dep.name}: #{ yield dep }\n"
32
32
  end
33
33
 
34
- def format_dependency(dependency)
35
- result = dependency.valid? ? valid_dependency(dependency) : invalid_dependency(dependency)
34
+ def format_dependency(dep)
35
+ if dep.gem_not_found?
36
+ "not found"
37
+ elsif dep.valid?
38
+ valid_dependency(dep)
39
+ else
40
+ invalid_dependency(dep)
41
+ end
36
42
  end
37
43
 
38
- def valid_dependency(dependency)
39
- "#{green}#{dependency.expected_version} ✓#{black}"
44
+ def valid_dependency(dep)
45
+ "#{green}#{dep.expected_version} ✓#{black}"
40
46
  end
41
47
 
42
- def invalid_dependency(dependency)
43
- "#{dependency.expected_version} != #{red}#{dependency.version}#{black}"
48
+ def invalid_dependency(dep)
49
+ "#{dep.expected_version} != #{red}#{dep.version}#{black}"
44
50
  end
45
51
 
46
52
  def black
@@ -1,3 +1,3 @@
1
1
  module GemVersionCheck
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -9,8 +9,8 @@ module GemVersionCheck
9
9
 
10
10
  let(:dependency) { Dependency.new("activesupport", "3.2.9") }
11
11
  let(:invalid_dependency) { Dependency.new("activesupport", "3.2.10") }
12
- let(:not_found_dependency) { Dependency.new("rails", "3.2.9") }
13
-
12
+ let(:not_used_dependency) { Dependency.new("rails", "3.2.9") }
13
+
14
14
  context "#valid?" do
15
15
  it "is valid if current version == expected version" do
16
16
  dependency.check(lock_file)
@@ -30,8 +30,23 @@ module GemVersionCheck
30
30
  end
31
31
 
32
32
  it "return false if not found in lock file" do
33
- not_found_dependency.check(lock_file)
34
- not_found_dependency.should_not be_used
33
+ not_used_dependency.check(lock_file)
34
+ not_used_dependency.should_not be_used
35
+ end
36
+ end
37
+
38
+ context "#gem_not_found?" do
39
+ it "returns false if gem was found on gems server" do
40
+ dependency.check(lock_file)
41
+ dependency.should_not be_gem_not_found
42
+ end
43
+
44
+ it "returns true if gem was not found on gems server" do
45
+ dep = Dependency.new("non_existing_gem")
46
+ dep.expects(:retrieve_spec).returns(nil)
47
+ dep.check(lock_file)
48
+
49
+ dep.should be_gem_not_found
35
50
  end
36
51
  end
37
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_version_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -139,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
139
139
  version: '0'
140
140
  segments:
141
141
  - 0
142
- hash: 2330606061019261803
142
+ hash: -4198302242782915360
143
143
  required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements:
@@ -148,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  version: '0'
149
149
  segments:
150
150
  - 0
151
- hash: 2330606061019261803
151
+ hash: -4198302242782915360
152
152
  requirements: []
153
153
  rubyforge_project:
154
154
  rubygems_version: 1.8.24