gemlock 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -59,30 +59,28 @@ module Gemlock
59
59
  return_hash
60
60
  end
61
61
 
62
- def config_file
63
- config_file = nil
64
- config_file = if defined?(Rails)
65
- Rails.root.join('config', 'gemlock.yml')
66
- end
62
+ def config
63
+ if defined?(Rails) && File.exists?(Rails.root.join('config', 'gemlock.yml'))
64
+ Rails.root.join('config', 'gemlock.yml')
65
+ end
67
66
  end
68
67
 
69
68
  def parsed_config
70
- parsed_config = nil
71
- if(config_file)
72
- parsed_config = YAML.load_file(config_file)
73
- end
69
+ YAML.load_file(config) if config
74
70
  end
75
71
 
76
- def difference(local_version, gem_version)
77
- lock_major, lock_minor, lock_patch = local_version.split('.')
78
- gem_major, gem_minor, gem_patch = gem_version.split('.')
72
+ def difference(version_a, version_b)
73
+ major_a, minor_a, patch_a = version_a.split('.').collect(&:to_i)
74
+ major_b, minor_b, patch_b = version_b.split('.').collect(&:to_i)
79
75
 
80
- if gem_major > lock_major
76
+ if (major_a - major_b).abs > 0
81
77
  "major"
82
- elsif gem_minor > lock_minor
78
+ elsif (minor_a - minor_b).abs > 0
83
79
  "minor"
84
- elsif gem_patch>lock_patch
80
+ elsif (patch_a - patch_b).abs > 0
85
81
  "patch"
82
+ else
83
+ "none"
86
84
  end
87
85
  end
88
86
  end
@@ -1,3 +1,3 @@
1
1
  module Gemlock
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -69,7 +69,7 @@ describe Gemlock do
69
69
  end
70
70
 
71
71
  it "returns a hash of outdated gems & versions specificed in config" do
72
- Gemlock.stubs(:config_file).returns((File.join(File.dirname(__FILE__), 'fixtures', 'gemlock.yml')))
72
+ Gemlock.stubs(:config).returns((File.join(File.dirname(__FILE__), 'fixtures', 'gemlock.yml')))
73
73
 
74
74
  expected = {'coffee-rails' => { :current => '3.1.0',
75
75
  :latest => '3.1.1' },
@@ -82,34 +82,47 @@ describe Gemlock do
82
82
  end
83
83
  end
84
84
 
85
- describe "#config_file" do
85
+ describe "#config" do
86
86
  it "loads gemlock.yml from the config directory if Rails is defined" do
87
87
  module Rails
88
88
  def self.root
89
89
  Pathname.new(File.dirname(__FILE__))
90
90
  end
91
91
  end
92
-
93
92
  expected_path = Pathname.new(File.dirname(__FILE__)).join('config', 'gemlock.yml')
94
- Gemlock.config_file.should eql expected_path
93
+ File.stubs(:exists?).with(expected_path).returns(true)
94
+
95
+ Gemlock.config.should eql expected_path
95
96
 
96
97
  # Undefine Rails module
97
98
  Object.send(:remove_const, :Rails)
98
99
 
99
100
  end
100
101
 
101
- it "is nil if Rails is not defined" do
102
- Gemlock.config_file.should be_nil
102
+ it "is nil if Rails is defined and the files does not exist" do
103
+ module Rails
104
+ def self.root
105
+ Pathname.new(File.dirname(__FILE__))
106
+ end
107
+ end
108
+
109
+ Gemlock.parsed_config.should be_nil
110
+
111
+ Object.send(:remove_const, :Rails)
112
+ end
113
+
114
+ it "is nil if Rails is not defined and the file exists" do
115
+ Gemlock.config.should be_nil
103
116
  end
104
117
  end
105
118
 
106
119
  describe "#parsed_config" do
107
- it "returns nil if the config_file is not defined" do
120
+ it "returns nil if the config file is not present" do
108
121
  Gemlock.parsed_config.should be_nil
109
122
  end
110
123
 
111
- it "returns a hash containing the user's email if config_file is defined" do
112
- Gemlock.stubs(:config_file).returns((File.join(File.dirname(__FILE__), 'fixtures', 'gemlock.yml')))
124
+ it "returns a hash containing the user's email if config file is present" do
125
+ Gemlock.stubs(:config).returns((File.join(File.dirname(__FILE__), 'fixtures', 'gemlock.yml')))
113
126
 
114
127
  Gemlock.parsed_config["email"].should eql "tester@example.com"
115
128
  end
@@ -119,15 +132,25 @@ describe Gemlock do
119
132
  it "returns 'major' if there is a major version difference between the two gem versions" do
120
133
  Gemlock.difference("2.0.0", "3.0.0").should eql "major"
121
134
  Gemlock.difference("2.5.10", "3.1.0").should eql "major"
135
+ Gemlock.difference("3.1.10", "2.5.8").should eql "major"
122
136
  end
123
137
 
124
138
  it "returns 'minor' if there is a minor version difference between the two gem versions" do
125
139
  Gemlock.difference("3.0.0", "3.1.0").should eql "minor"
126
140
  Gemlock.difference("3.1.0", "3.2.1").should eql "minor"
141
+ Gemlock.difference("3.1.0", "3.0.0").should eql "minor"
127
142
  end
128
143
 
129
144
  it "returns 'patch' if there is a patch version difference between the two gem versions" do
130
145
  Gemlock.difference("3.1.0", "3.1.1").should eql "patch"
146
+ Gemlock.difference("0.0.2", "0.0.1").should eql "patch"
147
+ end
148
+
149
+ it "returns 'none' if there is no difference" do
150
+ Gemlock.difference("0.0.0", "0.0.0").should eql "none"
151
+ Gemlock.difference("0.0.1", "0.0.1").should eql "none"
152
+ Gemlock.difference("0.1.0", "0.1.0").should eql "none"
153
+ Gemlock.difference("1.0.0", "1.0.0").should eql "none"
131
154
  end
132
155
  end
133
156
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemlock
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:
@@ -12,11 +12,11 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2011-10-11 00:00:00.000000000Z
15
+ date: 2011-10-12 00:00:00.000000000Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rake
19
- requirement: &70120938963580 !ruby/object:Gem::Requirement
19
+ requirement: &70252669943040 !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ! '>='
@@ -24,10 +24,10 @@ dependencies:
24
24
  version: 0.8.7
25
25
  type: :runtime
26
26
  prerelease: false
27
- version_requirements: *70120938963580
27
+ version_requirements: *70252669943040
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bundler
30
- requirement: &70120938963080 !ruby/object:Gem::Requirement
30
+ requirement: &70252669942540 !ruby/object:Gem::Requirement
31
31
  none: false
32
32
  requirements:
33
33
  - - ~>
@@ -35,10 +35,10 @@ dependencies:
35
35
  version: 1.0.0
36
36
  type: :runtime
37
37
  prerelease: false
38
- version_requirements: *70120938963080
38
+ version_requirements: *70252669942540
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: rest-client
41
- requirement: &70120938962700 !ruby/object:Gem::Requirement
41
+ requirement: &70252669942160 !ruby/object:Gem::Requirement
42
42
  none: false
43
43
  requirements:
44
44
  - - ! '>='
@@ -46,10 +46,10 @@ dependencies:
46
46
  version: '0'
47
47
  type: :runtime
48
48
  prerelease: false
49
- version_requirements: *70120938962700
49
+ version_requirements: *70252669942160
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: json
52
- requirement: &70120938962240 !ruby/object:Gem::Requirement
52
+ requirement: &70252669941700 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ! '>='
@@ -57,10 +57,10 @@ dependencies:
57
57
  version: '0'
58
58
  type: :runtime
59
59
  prerelease: false
60
- version_requirements: *70120938962240
60
+ version_requirements: *70252669941700
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rspec
63
- requirement: &70120938961740 !ruby/object:Gem::Requirement
63
+ requirement: &70252669972160 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ~>
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 2.6.0
69
69
  type: :development
70
70
  prerelease: false
71
- version_requirements: *70120938961740
71
+ version_requirements: *70252669972160
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: mocha
74
- requirement: &70120938961240 !ruby/object:Gem::Requirement
74
+ requirement: &70252669971660 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ~>
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: 0.10.0
80
80
  type: :development
81
81
  prerelease: false
82
- version_requirements: *70120938961240
82
+ version_requirements: *70252669971660
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
- requirement: &70120938989440 !ruby/object:Gem::Requirement
85
+ requirement: &70252669971200 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ! '>='
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: 0.9.5
91
91
  type: :development
92
92
  prerelease: false
93
- version_requirements: *70120938989440
93
+ version_requirements: *70252669971200
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: vcr
96
- requirement: &70120938988980 !ruby/object:Gem::Requirement
96
+ requirement: &70252669970740 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ! '>='
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: 1.11.0
102
102
  type: :development
103
103
  prerelease: false
104
- version_requirements: *70120938988980
104
+ version_requirements: *70252669970740
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: fakeweb
107
- requirement: &70120938988520 !ruby/object:Gem::Requirement
107
+ requirement: &70252669970280 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - ! '>='
@@ -112,7 +112,7 @@ dependencies:
112
112
  version: 1.3.0
113
113
  type: :development
114
114
  prerelease: false
115
- version_requirements: *70120938988520
115
+ version_requirements: *70252669970280
116
116
  description: When installed, allows a user to check for updates in their Rails application
117
117
  email:
118
118
  - mskalnik@gatech.edu