gem_version_check 0.0.8 → 0.0.9

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.
@@ -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