gem_version_check 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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