gem_version_check 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,8 +5,4 @@ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
5
5
  require "rubygems"
6
6
  require "gem_version_check"
7
7
 
8
- GemVersionCheck.configuration = {
9
- :github_host => ENV["GITHUB_HOST"]
10
- }
11
-
12
8
  GemVersionCheck::Cli.run(ARGV)
@@ -16,8 +16,9 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_development_dependency 'rake'
20
- s.add_development_dependency 'rspec'
21
- s.add_development_dependency 'mocha'
19
+ s.add_development_dependency "rake"
20
+ s.add_development_dependency "rspec", "~> 2.12.0"
21
+ s.add_development_dependency "mocha", "~> 0.13.0"
22
22
  s.add_runtime_dependency "bundler"
23
+ s.add_runtime_dependency "progressbar"
23
24
  end
@@ -1,19 +1,21 @@
1
1
  require "bundler"
2
+ require "progressbar"
2
3
 
3
4
  require "gem_version_check/cli"
4
5
  require "gem_version_check/version"
5
6
  require "gem_version_check/project"
6
7
  require "gem_version_check/dependency"
7
8
  require "gem_version_check/checks"
9
+ require "gem_version_check/lockfile"
10
+ require "gem_version_check/lockfile_fetcher"
8
11
  require "gem_version_check/configuration"
12
+ require "gem_version_check/report"
9
13
  require "gem_version_check/formatter/json"
10
14
  require "gem_version_check/formatter/pretty_print"
11
15
 
12
16
  module GemVersionCheck
13
17
  extend self
14
18
 
15
- class GemfileLockNotFoundError < StandardError; end
16
-
17
19
  def configuration
18
20
  @@configuration ||= Configuration.new
19
21
  end
@@ -3,8 +3,8 @@ module GemVersionCheck
3
3
  class Checks
4
4
  include Enumerable
5
5
 
6
- def initialize(gem_names = nil)
7
- @gem_names = gem_names || configured_checks
6
+ def initialize(gem_names)
7
+ @gem_names = gem_names
8
8
  end
9
9
 
10
10
  def each(&block)
@@ -28,15 +28,5 @@ module GemVersionCheck
28
28
  end
29
29
  end
30
30
 
31
- private
32
-
33
- def configured_checks
34
- ActiveSupport::JSON.decode(IO.read(checks_file))
35
- end
36
-
37
- def checks_file
38
- File.expand_path("../../../checks.json", __FILE__)
39
- end
40
-
41
31
  end
42
32
  end
@@ -1,22 +1,83 @@
1
+ require "optparse"
2
+
1
3
  module GemVersionCheck
2
4
  module Cli
3
5
  extend self
4
6
 
5
7
  def run(params)
6
- result = nil
7
- if (params.size >= 2)
8
- generate_report(params)
9
- else
8
+ project_names, options = parse(params)
9
+ if project_names.size > 0
10
+ generate_report(project_names, options)
11
+ else
10
12
  puts "Missing params: gem_version_check my-gh-name/my-project gem1 gem2 gem3"
11
13
  exit(1)
12
14
  end
13
15
  end
14
16
 
15
- def generate_report(params)
16
- result = GemVersionCheck::Project.generate_report(params.shift, params)
17
- puts GemVersionCheck::Formatter::PrettyPrint.new(result).format
18
- result.check_failed? ? exit(1) : exit(0)
19
- rescue GemVersionCheck::GemfileLockNotFoundError => e
17
+ private
18
+
19
+ def parse(params)
20
+ options = {}
21
+ option_parser = nil
22
+ project_names = OptionParser.new do |opts|
23
+ opts.banner = "Usage: gem_version_check project [options]"
24
+
25
+ opts.separator ""
26
+ opts.separator "Specific options:"
27
+
28
+ opts.on("--only gem1,gem2,gem3", Array, "List of ruby gems") do |list|
29
+ options[:only] = list
30
+ end
31
+
32
+ opts.on("--host github.com", String, "Github host name") do |host|
33
+ options[:host] = host
34
+ end
35
+
36
+ opts.on("--disable-progress-bar", "Disable progress bar") do |disable_progress_bar|
37
+ options[:disable_progress_bar] = disable_progress_bar
38
+ end
39
+
40
+ opts.on("--output-format FORMAT", %w(json pretty), "Output format") do |output_format|
41
+ options[:output_format] = output_format
42
+ end
43
+
44
+ opts.on_tail("--version", "Show version") do
45
+ puts GemVersionCheck::VERSION
46
+ exit
47
+ end
48
+
49
+ opts.on_tail("-h", "--help", "Show this message") do
50
+ puts opts
51
+ exit
52
+ end
53
+
54
+ option_parser = opts
55
+ end.parse!(params)
56
+
57
+ GemVersionCheck.configuration = {
58
+ :github_host => options[:host],
59
+ :show_progress_bar => !options[:disable_progress_bar]
60
+ }
61
+
62
+ [Array(project_names), options]
63
+ rescue OptionParser::InvalidOption, OptionParser::InvalidArgument, OptionParser::MissingArgument => e
64
+ puts "#{e}\n"
65
+ puts option_parser
66
+ exit(1)
67
+ end
68
+
69
+ def generate_report(project_names, options)
70
+ report = Report.new(project_names, options)
71
+
72
+ case options[:output_format]
73
+ when "json"
74
+ puts Formatter::JSON.new(report.generate).format
75
+ else
76
+ puts Formatter::PrettyPrint.new(report.generate).format
77
+ end
78
+
79
+ report.check_failed? ? exit(1) : exit(0)
80
+ rescue LockfileFetcher::NotFoundError => e
20
81
  puts "Can't find Gemfile.lock for #{e}"
21
82
  exit(1)
22
83
  end
@@ -1,9 +1,10 @@
1
1
  module GemVersionCheck
2
2
  class Configuration
3
- attr_reader :github_host
3
+ attr_reader :github_host, :show_progress_bar
4
4
 
5
5
  def initialize(settings = {})
6
- @github_host = settings[:github_host] || "github.com"
6
+ @github_host = settings[:github_host] || "github.com"
7
+ @show_progress_bar = settings[:show_progress_bar] || false
7
8
  end
8
9
  end
9
10
  end
@@ -1,15 +1,17 @@
1
+ require "rubygems"
2
+
1
3
  module GemVersionCheck
2
4
  class Dependency
3
5
 
4
6
  attr_reader :name, :expected_version, :version
5
7
 
6
- def initialize(name, expected_version)
8
+ def initialize(name, expected_version = nil)
7
9
  @name = name
8
- @expected_version = expected_version
10
+ @expected_version = expected_version || latest_version
9
11
  end
10
12
 
11
13
  def check(lock_file)
12
- @version = spec_version(@name, lock_file)
14
+ @version = lock_file.version_for(@name)
13
15
  @used = !!@version
14
16
  return unless used?
15
17
 
@@ -24,15 +26,18 @@ module GemVersionCheck
24
26
  @used
25
27
  end
26
28
 
29
+ def latest_version
30
+ @latest_version ||= begin
31
+ spec = retrieve_spec
32
+ spec ? spec.version.to_s : nil
33
+ end
34
+ end
35
+
27
36
  private
28
37
 
29
- def spec_version(name, lock_file)
30
- spec = find_spec(name, lock_file)
31
- spec ? spec.version.to_s : nil
38
+ def retrieve_spec
39
+ Gem.latest_spec_for(@name)
32
40
  end
33
41
 
34
- def find_spec(name, lock_file)
35
- lock_file.specs.find { |spec| spec.name == name }
36
- end
37
42
  end
38
43
  end
@@ -1,5 +1,8 @@
1
+ require "json"
2
+
1
3
  module GemVersionCheck
2
4
  module Formatter
5
+
3
6
  class JSON
4
7
  def initialize(report_result)
5
8
  @report_result = Array(report_result)
@@ -7,14 +10,14 @@ module GemVersionCheck
7
10
 
8
11
  def format
9
12
  result = []
10
- Array(@report_result).each do |project|
13
+ @report_result.each do |project|
11
14
  project_hash = project_hash(project)
12
15
  project.report.each do |dependency|
13
16
  project_hash[:dependencies] << dependency_hash(dependency)
14
17
  end
15
18
  result << project_hash
16
19
  end
17
- result.to_json
20
+ ::JSON.pretty_generate(result)
18
21
  end
19
22
 
20
23
  private
@@ -32,8 +35,8 @@ module GemVersionCheck
32
35
  :name => dependency.name,
33
36
  :expected_version => dependency.expected_version,
34
37
  :version => dependency.version,
35
- :used => dependency.used?,
36
- :valid => dependency.valid?
38
+ :valid => dependency.valid?,
39
+ :used => dependency.used?
37
40
  }
38
41
  end
39
42
  end
@@ -2,30 +2,45 @@
2
2
  module GemVersionCheck
3
3
  module Formatter
4
4
  class PrettyPrint
5
+
5
6
  def initialize(report_result)
6
7
  @report_result = Array(report_result)
7
8
  end
8
9
 
9
10
  def format
10
- result = ""
11
- @report_result.each do |project|
12
- dep = ""
13
- project.report.each do |dependency|
14
- dep << " * #{dependency.name}: "
15
- if dependency.used?
16
- if dependency.valid?
17
- dep << "#{green}#{dependency.expected_version} ✓"
18
- else
19
- dep << "#{dependency.expected_version} != #{red}#{dependency.version}"
20
- end
21
- dep << black + "\n"
22
- else
23
- dep << "not used\n"
24
- end
11
+ @report_result.inject("") do |result, project|
12
+ result << "#{project_title(project)}\n#{format_project(project)}"
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def format_project(project)
19
+ project.report.inject("") do |result, dependency|
20
+ result << dependency_listitem(dependency) do |dep|
21
+ dep.used? ? format_dependency(dependency) : "not used"
25
22
  end
26
- result << "Project: #{project.check_failed? ? red : green}#{project.name}#{black}" + "\n" + dep
27
23
  end
28
- result
24
+ end
25
+
26
+ def project_title(project)
27
+ "Project: #{project.check_failed? ? red : green}#{project.name}#{black}"
28
+ end
29
+
30
+ def dependency_listitem(dependency)
31
+ " * #{dependency.name}: #{ yield dependency }\n"
32
+ end
33
+
34
+ def format_dependency(dependency)
35
+ result = dependency.valid? ? valid_dependency(dependency) : invalid_dependency(dependency)
36
+ end
37
+
38
+ def valid_dependency(dependency)
39
+ "#{green}#{dependency.expected_version} ✓#{black}"
40
+ end
41
+
42
+ def invalid_dependency(dependency)
43
+ "#{dependency.expected_version} != #{red}#{dependency.version}#{black}"
29
44
  end
30
45
 
31
46
  def black
@@ -0,0 +1,28 @@
1
+ module GemVersionCheck
2
+ class Lockfile
3
+
4
+ def initialize(content)
5
+ @content = content
6
+ end
7
+
8
+ def spec_names
9
+ lock_file.specs.map { |spec| spec.name }
10
+ end
11
+
12
+ def version_for(name)
13
+ spec = lock_file.specs.find { |spec| spec.name == name }
14
+ spec ? spec.version.to_s : nil
15
+ end
16
+
17
+ def total
18
+ lock_file.specs.size
19
+ end
20
+
21
+ private
22
+
23
+ def lock_file
24
+ @lock_file ||= Bundler::LockfileParser.new(@content)
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,51 @@
1
+ module GemVersionCheck
2
+ class LockfileFetcher
3
+
4
+ class NotFoundError < StandardError; end
5
+
6
+ def initialize(project)
7
+ @project = project
8
+ end
9
+
10
+ def content
11
+ uri = URI.parse(repository)
12
+ body = request(uri)
13
+ raise NotFoundError.new(repository) if body.nil?
14
+ body
15
+ end
16
+
17
+ def repository
18
+ @repository ||= begin
19
+ if @project =~ /^http(s)?:\/\//
20
+ @project
21
+ else
22
+ gemfile_lock_url
23
+ end
24
+ end
25
+ end
26
+
27
+ # github.com redirects github.com/user/project/raw/master/Gemfile.lock to raw.github.com/user/project/master/Gemfile.lock
28
+ # github enterprise does not redirect
29
+ # TODO: change if github enterprise redirects too
30
+ def gemfile_lock_url
31
+ if GemVersionCheck.configuration.github_host == "github.com"
32
+ "https://raw.#{GemVersionCheck.configuration.github_host}/#{@project}/master/Gemfile.lock"
33
+ else
34
+ "https://#{GemVersionCheck.configuration.github_host}/#{@project}/raw/master/Gemfile.lock"
35
+ end
36
+ end
37
+
38
+ def request(uri)
39
+ http = Net::HTTP.new(uri.host, uri.port)
40
+ http.use_ssl = true if uri.scheme == 'https'
41
+ request = Net::HTTP::Get.new(uri.request_uri)
42
+ response = http.request(request)
43
+ if response.code == "200"
44
+ response.body
45
+ else
46
+ puts "Error retrieving Gemfile.lock: #{response.inspect}"
47
+ nil
48
+ end
49
+ end
50
+ end
51
+ end
@@ -1,19 +1,13 @@
1
1
  require "uri"
2
2
  require "net/http"
3
+ require "net/https"
3
4
 
4
5
  module GemVersionCheck
5
6
  class Project
6
- attr_reader :repository, :report
7
7
 
8
- def self.generate_report(project_name, checks = nil)
9
- project = Project.new(project_name, checks || Checks.new())
10
- project.report
11
- project
12
- end
13
-
14
- def initialize(project, checks)
8
+ def initialize(project, spec_names = [])
15
9
  @project = project
16
- @checks = checks
10
+ @spec_names = spec_names
17
11
  end
18
12
 
19
13
  def name
@@ -27,11 +21,12 @@ module GemVersionCheck
27
21
  def generate_report
28
22
  @check_failed = false
29
23
  result = []
30
- @checks.each do |key, value|
31
- dependency = Dependency.new(key, value)
24
+ with_progress_bar(spec_names) do |spec_name|
25
+ dependency = Dependency.new(spec_name)
32
26
  dependency.check(lock_file)
33
- @check_failed = true unless dependency.valid?
34
27
  result << dependency
28
+
29
+ @check_failed = true unless dependency.valid?
35
30
  end
36
31
  result
37
32
  end
@@ -41,45 +36,34 @@ module GemVersionCheck
41
36
  end
42
37
 
43
38
  def lock_file
44
- @lock_file ||= Bundler::LockfileParser.new(download_gemfile_lock(repository))
45
- end
46
-
47
- def repository
48
- @repository ||= begin
49
- if @project =~ /^http(s)?:\/\//
50
- @project
51
- else
52
- gemfile_lock_url
53
- end
39
+ @lock_file ||= begin
40
+ content = LockfileFetcher.new(@project).content
41
+ Lockfile.new(content)
54
42
  end
55
43
  end
56
44
 
57
45
  private
58
46
 
59
- # github.com redirects github.com/user/project/raw/master/Gemfile.lock to raw.github.com/user/project/master/Gemfile.lock
60
- # github enterprise does not redirect
61
- # TODO: change if github enterprise redirects too
62
- def gemfile_lock_url
63
- if GemVersionCheck.configuration.github_host == "github.com"
64
- "https://raw.#{GemVersionCheck.configuration.github_host}/#{@project}/master/Gemfile.lock"
65
- else
66
- "https://#{GemVersionCheck.configuration.github_host}/#{@project}/raw/master/Gemfile.lock"
47
+ def with_progress_bar(elements)
48
+ pb = ProgressBar.new("Fetch specs", lock_file.total) if display_status?
49
+ elements.each do |el|
50
+ yield el
51
+ pb.inc if display_status?
67
52
  end
53
+ pb.clear if display_status?
68
54
  end
69
55
 
70
- def download_gemfile_lock(repository)
71
- uri = URI.parse(repository)
72
- body = request(uri)
73
- raise GemfileLockNotFoundError.new(repository) if body.nil?
74
- body
56
+ def display_status?
57
+ GemVersionCheck.configuration.show_progress_bar
75
58
  end
76
59
 
77
- def request(uri)
78
- http = Net::HTTP.new(uri.host, uri.port)
79
- http.use_ssl = true if uri.scheme == 'https'
80
- request = Net::HTTP::Get.new(uri.request_uri)
81
- response = http.request(request)
82
- response.code == "200" ? response.body : nil
60
+ def spec_names
61
+ @spec_names.any? ? @spec_names : all_spec_names
83
62
  end
63
+
64
+ def all_spec_names
65
+ lock_file.spec_names
66
+ end
67
+
84
68
  end
85
69
  end
@@ -0,0 +1,25 @@
1
+ module GemVersionCheck
2
+ class Report
3
+
4
+ def initialize(project_names, options = {})
5
+ @project_names = project_names
6
+ @options = options
7
+ @only = options[:only] || []
8
+ end
9
+
10
+ def generate
11
+ @check_failed = false
12
+ @project_names.inject([]) do |result, project_name|
13
+ project = Project.new(project_name, @only)
14
+ project.report
15
+ @check_failed = true if project.check_failed?
16
+ result << project
17
+ end
18
+ end
19
+
20
+ def check_failed?
21
+ @check_failed
22
+ end
23
+
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module GemVersionCheck
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -5,7 +5,7 @@ module GemVersionCheck
5
5
  describe Dependency do
6
6
 
7
7
  context "#check" do
8
- let(:lock_file) { Bundler::LockfileParser.new(lock_file_content("Gemfile.lock")) }
8
+ let(:lock_file) { Lockfile.new(lock_file_content("Gemfile.lock")) }
9
9
 
10
10
  let(:dependency) { Dependency.new("activesupport", "3.2.9") }
11
11
  let(:invalid_dependency) { Dependency.new("activesupport", "3.2.10") }
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ module GemVersionCheck
5
+ describe LockfileFetcher do
6
+ let(:url) { "https://github.com/toadkicker/teststrap/raw/master/Gemfile.lock" }
7
+ let(:redirect_url) { "https://raw.github.com/toadkicker/teststrap/master/Gemfile.lock" }
8
+
9
+ context "#repository" do
10
+ it "returns a url as is" do
11
+ fetcher = LockfileFetcher.new(url)
12
+ fetcher.repository.should == url
13
+ end
14
+
15
+ it "returns a resolved url if gh project name given" do
16
+ fetcher = LockfileFetcher.new("toadkicker/teststrap")
17
+ fetcher.repository.should == redirect_url
18
+ end
19
+ end
20
+
21
+ context "#lock_file" do
22
+ it "downloads lock file content and returns lock_file" do
23
+ fetcher = LockfileFetcher.new(redirect_url)
24
+ fetcher.expects(:request).returns(lock_file_content("Gemfile.lock"))
25
+ Bundler::LockfileParser.new(fetcher.content).specs.size.should > 0
26
+ end
27
+
28
+ it "raises GemfileLockNotFoundError if not found" do
29
+ fetcher = LockfileFetcher.new(redirect_url)
30
+ fetcher.expects(:request).returns(nil)
31
+ expect { fetcher.content }.to raise_error(LockfileFetcher::NotFoundError)
32
+ end
33
+ end
34
+
35
+ end
36
+ end
37
+
38
+
@@ -0,0 +1,31 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ module GemVersionCheck
5
+ describe Lockfile do
6
+ let(:lockfile) { Lockfile.new(lock_file_content("Gemfile.lock")) }
7
+
8
+ describe "#spec_names" do
9
+ it "returns all spec names" do
10
+ lockfile.spec_names.size.should == 12
11
+ lockfile.spec_names.should include("activesupport")
12
+ end
13
+ end
14
+
15
+ describe "#version_for" do
16
+ it "returns spec for name" do
17
+ lockfile.version_for("activesupport").should == "3.2.9"
18
+ end
19
+
20
+ it "returns nil if spec does not exist" do
21
+ lockfile.version_for("non_existing_gem").should be_nil
22
+ end
23
+ end
24
+
25
+ describe "#total" do
26
+ it "returns total number of spec" do
27
+ lockfile.total.should == 12
28
+ end
29
+ end
30
+ end
31
+ end
data/spec/project_spec.rb CHANGED
@@ -5,51 +5,33 @@ module GemVersionCheck
5
5
  describe Project do
6
6
  let(:url) { "https://github.com/toadkicker/teststrap/raw/master/Gemfile.lock" }
7
7
  let(:redirect_url) { "https://raw.github.com/toadkicker/teststrap/master/Gemfile.lock" }
8
-
9
- let(:lock_file) { Bundler::LockfileParser.new(lock_file_content("rails_app_example.lock")) }
10
- let(:project) {
8
+ let(:lock_file) { Lockfile.new(lock_file_content("rails_app_example.lock")) }
9
+ let(:project) do
10
+ Dependency.any_instance.stubs(:latest_version).returns("1.0")
11
11
  project = Project.new("toadkicker/teststrap", %w(actionpack not_existing))
12
12
  project.stubs(:lock_file).returns(lock_file)
13
13
  project
14
- }
14
+ end
15
15
 
16
16
  context "#report" do
17
- it "returns array of all dependencies" do
17
+ it "returns array of given dependencies" do
18
18
  project.report.size.should == 2
19
19
  project.report.first.name.should == "actionpack"
20
20
  project.report.last.name.should == "not_existing"
21
21
  end
22
- end
23
22
 
24
- context "#check_failed?" do
25
- it "returns true if at least one dependency is not up to date or non existing" do
26
- project.check_failed? == true
27
- end
28
- end
29
-
30
- context "#repository" do
31
- it "returns a url as is" do
32
- project = Project.new(url, [])
33
- project.repository.should == url
34
- end
23
+ it "returns array of all dependencies" do
24
+ Dependency.any_instance.stubs(:latest_version).returns("1.0")
25
+ project = Project.new("toadkicker/teststrap")
26
+ project.stubs(:lock_file).returns(lock_file)
35
27
 
36
- it "returns a resolved url if gh project name given" do
37
- project = Project.new("toadkicker/teststrap", [])
38
- project.repository.should == redirect_url
28
+ project.report.size.should == 47
39
29
  end
40
30
  end
41
31
 
42
- context "#lock_file" do
43
- it "downloads lock file content and returns lock_file" do
44
- project = Project.new(redirect_url, [])
45
- project.expects(:request).returns(lock_file_content("Gemfile.lock"))
46
- project.lock_file.specs.size.should > 0
47
- end
48
-
49
- it "raises GemfileLockNotFoundError if not found" do
50
- project1 = Project.new(redirect_url, [])
51
- project1.expects(:request).returns(nil)
52
- expect { project1.lock_file }.to raise_error(GemfileLockNotFoundError)
32
+ context "#check_failed?" do
33
+ it "returns true if at least one dependency is not up to date or non existing" do
34
+ project.check_failed? == true
53
35
  end
54
36
  end
55
37
 
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+
4
+ module GemVersionCheck
5
+ describe Report do
6
+
7
+ before do
8
+ Project.any_instance.stubs(:report)
9
+ end
10
+
11
+ let (:report) do
12
+ report = Report.new(%w(proj1, proj2))
13
+ report.generate
14
+ report
15
+ end
16
+
17
+ context "#generate" do
18
+ it "returns array of projects" do
19
+ report = Report.new(%w(proj1, proj2))
20
+ report.generate.size.should == 2
21
+ end
22
+
23
+ it "#check_failed? returns true if at least on project failed" do
24
+ Project.any_instance.stubs(:check_failed?).returns(true)
25
+ report.should be_check_failed
26
+ end
27
+
28
+ it "#check_failed? returns false if all projects report success" do
29
+ Project.any_instance.stubs(:check_failed?).returns(false)
30
+ report.should_not be_check_failed
31
+ end
32
+ end
33
+
34
+ end
35
+ end
data/spec/spec_helper.rb CHANGED
@@ -8,6 +8,7 @@ def lock_file_content(filename)
8
8
  end
9
9
 
10
10
  RSpec.configure do |config|
11
+ config.mock_framework = :mocha
11
12
  config.before do
12
13
  GemVersionCheck.configuration = { :github_host => "github.com" }
13
14
  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.8
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-21 00:00:00.000000000 Z
12
+ date: 2012-11-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -32,26 +32,42 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: 2.12.0
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: 2.12.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: mocha
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.13.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.13.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
48
64
  requirement: !ruby/object:Gem::Requirement
49
65
  none: false
50
66
  requirements:
51
67
  - - ! '>='
52
68
  - !ruby/object:Gem::Version
53
69
  version: '0'
54
- type: :development
70
+ type: :runtime
55
71
  prerelease: false
56
72
  version_requirements: !ruby/object:Gem::Requirement
57
73
  none: false
@@ -60,7 +76,7 @@ dependencies:
60
76
  - !ruby/object:Gem::Version
61
77
  version: '0'
62
78
  - !ruby/object:Gem::Dependency
63
- name: bundler
79
+ name: progressbar
64
80
  requirement: !ruby/object:Gem::Requirement
65
81
  none: false
66
82
  requirements:
@@ -96,11 +112,17 @@ files:
96
112
  - lib/gem_version_check/dependency.rb
97
113
  - lib/gem_version_check/formatter/json.rb
98
114
  - lib/gem_version_check/formatter/pretty_print.rb
115
+ - lib/gem_version_check/lockfile.rb
116
+ - lib/gem_version_check/lockfile_fetcher.rb
99
117
  - lib/gem_version_check/project.rb
118
+ - lib/gem_version_check/report.rb
100
119
  - lib/gem_version_check/version.rb
101
120
  - spec/configuration_spec.rb
102
121
  - spec/dependency_spec.rb
122
+ - spec/lockfile_fetch_spec.rb
123
+ - spec/lockfile_spec.rb
103
124
  - spec/project_spec.rb
125
+ - spec/report_spec.rb
104
126
  - spec/spec_helper.rb
105
127
  - spec/stubs/rails_app_example.lock
106
128
  homepage: ''
@@ -117,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
139
  version: '0'
118
140
  segments:
119
141
  - 0
120
- hash: 2738635845954003320
142
+ hash: 2330606061019261803
121
143
  required_rubygems_version: !ruby/object:Gem::Requirement
122
144
  none: false
123
145
  requirements:
@@ -126,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
148
  version: '0'
127
149
  segments:
128
150
  - 0
129
- hash: 2738635845954003320
151
+ hash: 2330606061019261803
130
152
  requirements: []
131
153
  rubyforge_project:
132
154
  rubygems_version: 1.8.24
@@ -136,6 +158,9 @@ summary: Check your gem dependencies
136
158
  test_files:
137
159
  - spec/configuration_spec.rb
138
160
  - spec/dependency_spec.rb
161
+ - spec/lockfile_fetch_spec.rb
162
+ - spec/lockfile_spec.rb
139
163
  - spec/project_spec.rb
164
+ - spec/report_spec.rb
140
165
  - spec/spec_helper.rb
141
166
  - spec/stubs/rails_app_example.lock