gem_version_check 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6ea91e42ae06eeaac0ba2ab3bbc8a6d33b4b52f
4
- data.tar.gz: f0f502a5510d19f00b80ea53f60a6b2c1ac99a26
3
+ metadata.gz: 7284422ac74e144b799ec08e7399b1b556b06cbe
4
+ data.tar.gz: ce4ab570a41a78eac7f7e1ec8ec6e7ae1afbd809
5
5
  SHA512:
6
- metadata.gz: 24fb8176dfe8dde8317ca8ec669ea83d37c5a473c238275fc1eef06e58b6b87793917d99d39cd0ee8929330bf592a11b558a3257ccb833378861379e7898cfe9
7
- data.tar.gz: 5cf7e9d32d83b32bd971f0b325f135c4c1b7eb07e09249975176fca2f050f14c1b3048845efb1d227e7a20bd2d4bf7883546800562816957cc3d67f47eb703e8
6
+ metadata.gz: a192b0c7279ba59849b4f5412bd3c642993831958ad6fa1edf6feab4773c1a0f140ca206f1f53378caea902d3bd63cdd0c528c200d1589ada09f37007aeb0824
7
+ data.tar.gz: 11602328e51323e0360303ffcca9ce5fbf37382f96ba83f27e75a87ba39ae9350e52c860450499f7e1c0dccdc395394c1ca96e92c1ce9d8b53d3259f13acf53a
@@ -45,6 +45,10 @@ module GemVersionCheck
45
45
  options[:ignore_major_version_change] = ignore_major_version_change
46
46
  end
47
47
 
48
+ opts.on("--allow-prerelease-dependencies", "Allow dependencies to be prereleases") do |allow_prerelease_dependencies|
49
+ options[:allow_prerelease_dependencies] = allow_prerelease_dependencies
50
+ end
51
+
48
52
  opts.on("--output-format FORMAT", %w(json pretty), "Output format") do |output_format|
49
53
  options[:output_format] = output_format
50
54
  end
@@ -63,10 +67,11 @@ module GemVersionCheck
63
67
  end.parse!(params)
64
68
 
65
69
  GemVersionCheck.configuration = {
66
- :github_host => options[:host],
67
- :sources => options[:sources],
68
- :show_progress_bar => !options[:disable_progress_bar],
69
- :ignore_major_version_change => options[:ignore_major_version_change]
70
+ :github_host => options[:host],
71
+ :sources => options[:sources],
72
+ :show_progress_bar => !options[:disable_progress_bar],
73
+ :ignore_major_version_change => options[:ignore_major_version_change],
74
+ :allow_prerelease_dependencies => options[:allow_prerelease_dependencies]
70
75
  }
71
76
 
72
77
  [Array(project_names), options]
@@ -93,4 +98,4 @@ module GemVersionCheck
93
98
  end
94
99
 
95
100
  end
96
- end
101
+ end
@@ -1,12 +1,13 @@
1
1
  module GemVersionCheck
2
2
  class Configuration
3
- attr_reader :github_host, :sources, :show_progress_bar, :ignore_major_version_change
3
+ attr_reader :github_host, :sources, :show_progress_bar, :ignore_major_version_change, :allow_prerelease_dependencies
4
4
 
5
5
  def initialize(settings = {})
6
6
  @github_host = settings[:github_host] || "github.com"
7
7
  @sources = settings[:sources]
8
8
  @show_progress_bar = settings[:show_progress_bar] || false
9
9
  @ignore_major_version_change = settings[:ignore_major_version_change] || false
10
+ @allow_prerelease_dependencies = settings[:allow_prerelease_dependencies] || false
10
11
  end
11
12
  end
12
- end
13
+ end
@@ -45,6 +45,10 @@ module GemVersionCheck
45
45
 
46
46
  private
47
47
 
48
+ def allow_prerelease_dependencies?
49
+ @options[:allow_prerelease_dependencies]
50
+ end
51
+
48
52
  def ignore_major_version_change?
49
53
  @options[:ignore_major_version_change]
50
54
  end
@@ -58,24 +62,17 @@ module GemVersionCheck
58
62
  Gem.sources = Gem::SourceList.from(GemVersionCheck.configuration.sources.split(','))
59
63
  end
60
64
 
61
- if ignore_major_version_change?
62
- retrieve_latest_major_version_spec
63
- else
64
- retrieve_latest_spec
65
- end
65
+ retrieve_latest_spec
66
66
  end
67
67
 
68
- def retrieve_latest_major_version_spec
69
- dependency = Gem::Dependency.new(name, "~>#{major_version}")
68
+ def retrieve_latest_spec
69
+ requirements = "~>#{major_version}" if ignore_major_version_change?
70
+ dependency = Gem::Dependency.new(name, requirements)
71
+ dependency.prerelease = 1 if allow_prerelease_dependencies?
70
72
  fetcher = Gem::SpecFetcher.fetcher
71
73
  spec_tuples, = fetcher.spec_for_dependency(dependency)
72
74
  spec, = spec_tuples.last
73
75
  spec
74
76
  end
75
-
76
- def retrieve_latest_spec
77
- Gem.latest_spec_for(@name)
78
- end
79
-
80
77
  end
81
- end
78
+ end
@@ -22,7 +22,7 @@ module GemVersionCheck
22
22
  @check_failed = false
23
23
  result = []
24
24
  with_progress_bar(spec_names) do |spec_name|
25
- dependency = Dependency.new(spec_name, nil, ignore_major_version_change: ignore_major_version_change?)
25
+ dependency = Dependency.new(spec_name, nil, allow_prerelease_dependencies: allow_prerelease_dependencies?, ignore_major_version_change: ignore_major_version_change?)
26
26
  dependency.check(lock_file)
27
27
  result << dependency
28
28
 
@@ -53,6 +53,10 @@ module GemVersionCheck
53
53
  pb.clear if display_status?
54
54
  end
55
55
 
56
+ def allow_prerelease_dependencies?
57
+ GemVersionCheck.configuration.allow_prerelease_dependencies
58
+ end
59
+
56
60
  def display_status?
57
61
  GemVersionCheck.configuration.show_progress_bar
58
62
  end
@@ -70,4 +74,4 @@ module GemVersionCheck
70
74
  end
71
75
 
72
76
  end
73
- end
77
+ end
@@ -1,3 +1,3 @@
1
1
  module GemVersionCheck
2
- VERSION = "0.1.0"
3
- end
2
+ VERSION = "0.2.0"
3
+ end
@@ -41,7 +41,7 @@ module GemVersionCheck
41
41
 
42
42
  it "is valid when ignoring the major version" do
43
43
  dependency = Dependency.new("activesupport", nil, :ignore_major_version_change => true)
44
- dependency.expects(:retrieve_latest_major_version_spec).returns(Gem::Specification.new('activesupport', '3.2.8'))
44
+ dependency.expects(:retrieve_latest_spec).returns(Gem::Specification.new('activesupport', '3.2.8'))
45
45
 
46
46
  dependency.check(lock_file)
47
47
  dependency.should be_valid
@@ -49,11 +49,43 @@ module GemVersionCheck
49
49
 
50
50
  it "is invalid when ignoring the major version" do
51
51
  dependency = Dependency.new("activesupport", nil, :ignore_major_version_change => true)
52
- dependency.expects(:retrieve_latest_major_version_spec).returns(Gem::Specification.new('activesupport', '3.2.17'))
52
+ dependency.expects(:retrieve_latest_spec).returns(Gem::Specification.new('activesupport', '3.2.17'))
53
53
 
54
54
  dependency.check(lock_file)
55
55
  dependency.should_not be_valid
56
56
  end
57
+
58
+ context "latest available dependency version is a prerelease" do
59
+ before :each do
60
+ Gem::SpecFetcher.any_instance.stubs(:spec_for_dependency).returns([ spec_tuples ])
61
+ end
62
+
63
+ context "when not ignoring the major version" do
64
+ let(:spec_tuples) { %w(3.2.21 4.0.0.rc1).map { |v| [ Gem::Specification.new('activesupport', v) ] } }
65
+
66
+ it "retrieves prerelease as the latest version available" do
67
+ dependency = Dependency.new("activesupport", nil, :allow_prerelease_dependencies => true, :ignore_major_version_change => false)
68
+
69
+ dependency.check(lock_file)
70
+ dependency.should_not be_valid
71
+
72
+ expect(dependency.latest_version).to eq("4.0.0.rc1")
73
+ end
74
+ end
75
+
76
+ context "when ignoring the major version" do
77
+ let(:spec_tuples) { %w(3.2.17 3.3.0.rc1).map { |v| [ Gem::Specification.new('activesupport', v) ] } }
78
+
79
+ it "retrieves prerelease as the latest major version available" do
80
+ dependency = Dependency.new("activesupport", nil, :allow_prerelease_dependencies => true, :ignore_major_version_change => true)
81
+
82
+ dependency.check(lock_file)
83
+ dependency.should_not be_valid
84
+
85
+ expect(dependency.latest_version).to eq("3.3.0.rc1")
86
+ end
87
+ end
88
+ end
57
89
  end
58
90
  end
59
91
 
@@ -84,6 +116,5 @@ module GemVersionCheck
84
116
  end
85
117
  end
86
118
  end
87
-
88
119
  end
89
120
  end
metadata CHANGED
@@ -1,85 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_version_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frederik Dietz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-26 00:00:00.000000000 Z
11
+ date: 2015-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
- version_requirements: !ruby/object:Gem::Requirement
15
+ requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
- requirement: !ruby/object:Gem::Requirement
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
22
23
  requirements:
23
- - - '>='
24
+ - - ">="
24
25
  - !ruby/object:Gem::Version
25
26
  version: '0'
26
- prerelease: false
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
- version_requirements: !ruby/object:Gem::Requirement
29
+ requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.12.0
34
34
  type: :development
35
- requirement: !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
36
37
  requirements:
37
- - - ~>
38
+ - - "~>"
38
39
  - !ruby/object:Gem::Version
39
40
  version: 2.12.0
40
- prerelease: false
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: mocha
43
- version_requirements: !ruby/object:Gem::Requirement
43
+ requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.13.0
48
48
  type: :development
49
- requirement: !ruby/object:Gem::Requirement
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
50
51
  requirements:
51
- - - ~>
52
+ - - "~>"
52
53
  - !ruby/object:Gem::Version
53
54
  version: 0.13.0
54
- prerelease: false
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
- version_requirements: !ruby/object:Gem::Requirement
57
+ requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
- requirement: !ruby/object:Gem::Requirement
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
64
65
  requirements:
65
- - - '>='
66
+ - - ">="
66
67
  - !ruby/object:Gem::Version
67
68
  version: '0'
68
- prerelease: false
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: progressbar
71
- version_requirements: !ruby/object:Gem::Requirement
71
+ requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
- requirement: !ruby/object:Gem::Requirement
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
78
79
  requirements:
79
- - - '>='
80
+ - - ">="
80
81
  - !ruby/object:Gem::Version
81
82
  version: '0'
82
- prerelease: false
83
83
  description: Check for a given github project if gem dependencies are up to date
84
84
  email:
85
85
  - fdietz@github.com
@@ -88,7 +88,7 @@ executables:
88
88
  extensions: []
89
89
  extra_rdoc_files: []
90
90
  files:
91
- - .gitignore
91
+ - ".gitignore"
92
92
  - Gemfile
93
93
  - README.md
94
94
  - Rakefile
@@ -123,17 +123,17 @@ require_paths:
123
123
  - lib
124
124
  required_ruby_version: !ruby/object:Gem::Requirement
125
125
  requirements:
126
- - - '>='
126
+ - - ">="
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - '>='
131
+ - - ">="
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  requirements: []
135
135
  rubyforge_project:
136
- rubygems_version: 2.1.11
136
+ rubygems_version: 2.4.5
137
137
  signing_key:
138
138
  specification_version: 4
139
139
  summary: Check your gem dependencies