gemlock 0.0.2 → 0.0.3
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.
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/Rakefile +1 -1
- data/gemlock.gemspec +6 -0
- data/lib/gemlock.rb +39 -5
- data/lib/gemlock/version.rb +1 -1
- data/lib/tasks/gemlock.rake +13 -0
- data/spec/fixtures/vcr_cassettes/outdated_cassette.yml +334 -0
- data/spec/fixtures/vcr_cassettes/rails_cassette.yml +38 -0
- data/spec/gemlock_spec.rb +65 -0
- data/spec/spec_helper.rb +13 -0
- metadata +111 -15
- data/spec/rake_tasks_spec.rb +0 -33
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color --format=doc
|
data/Rakefile
CHANGED
data/gemlock.gemspec
CHANGED
@@ -19,8 +19,14 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
s.add_dependency('rake', '>= 0.8.7')
|
22
|
+
s.add_dependency('bundler', '~> 1.0.0')
|
23
|
+
s.add_dependency('rest-client')
|
24
|
+
s.add_dependency('json')
|
22
25
|
|
26
|
+
s.add_development_dependency('autotest')
|
23
27
|
s.add_development_dependency('rspec' , '~> 2.6.0')
|
24
28
|
s.add_development_dependency('mocha' , '~> 0.10.0')
|
25
29
|
s.add_development_dependency('pry' , '>= 0.9.5')
|
30
|
+
s.add_development_dependency('vcr' , '>= 1.11.0')
|
31
|
+
s.add_development_dependency('fakeweb', '>= 1.3.0')
|
26
32
|
end
|
data/lib/gemlock.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require "bundler"
|
2
|
+
require "rest_client"
|
3
|
+
require "json"
|
4
|
+
|
1
5
|
require "gemlock/version"
|
2
6
|
|
3
7
|
module Gemlock
|
@@ -5,11 +9,11 @@ module Gemlock
|
|
5
9
|
|
6
10
|
class << self
|
7
11
|
def lockfile
|
8
|
-
@lockfile
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
@lockfile ||= if defined?(Rails)
|
13
|
+
Rails.root.join('Gemfile.lock')
|
14
|
+
else
|
15
|
+
Bundler::SharedHelpers.default_lockfile
|
16
|
+
end
|
13
17
|
end
|
14
18
|
|
15
19
|
def locked_gemfile_specs
|
@@ -20,5 +24,35 @@ module Gemlock
|
|
20
24
|
locked_gemfile_specs = locked.specs.clone
|
21
25
|
locked_gemfile_specs.delete_if { |spec| !gemfile_names.include?(spec.name) }
|
22
26
|
end
|
27
|
+
|
28
|
+
def lookup_version(name)
|
29
|
+
json_hash = JSON.parse(RestClient.get("https://rubygems.org/api/v1/gems/#{name}.json"))
|
30
|
+
|
31
|
+
return json_hash["version"]
|
32
|
+
end
|
33
|
+
|
34
|
+
def outdated
|
35
|
+
specs = {}
|
36
|
+
locked_gemfile_specs.each do |spec|
|
37
|
+
specs[spec.name] = spec.version.to_s
|
38
|
+
end
|
39
|
+
|
40
|
+
oudated = {}
|
41
|
+
locked_gemfile_specs.each do |spec|
|
42
|
+
latest_version = lookup_version(spec.name)
|
43
|
+
if Gem::Version.new(latest_version) > Gem::Version.new(spec.version)
|
44
|
+
oudated[spec.name] = latest_version
|
45
|
+
end
|
46
|
+
hash
|
47
|
+
end
|
48
|
+
|
49
|
+
return_hash = {}
|
50
|
+
oudated.each_pair do |name, latest_version|
|
51
|
+
return_hash[name] = { :latest => latest_version,
|
52
|
+
:current => specs[name] }
|
53
|
+
end
|
54
|
+
|
55
|
+
return_hash
|
56
|
+
end
|
23
57
|
end
|
24
58
|
end
|
data/lib/gemlock/version.rb
CHANGED
data/lib/tasks/gemlock.rake
CHANGED
@@ -5,4 +5,17 @@ namespace :gemlock do
|
|
5
5
|
puts "#{spec.name}, version = #{spec.version.to_s}"
|
6
6
|
end
|
7
7
|
end
|
8
|
+
|
9
|
+
desc 'lists out of date gems'
|
10
|
+
task :outdated => :environment do
|
11
|
+
oudated = Gemlock.outdated
|
12
|
+
if oudated.empty?
|
13
|
+
puts "All gems up to date!"
|
14
|
+
else
|
15
|
+
oudated.each_pair do |name, versions|
|
16
|
+
puts "#{name} is out of date!"
|
17
|
+
puts "Installed version: #{versions[:current]}. Latest version: #{versions[:latest]}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
8
21
|
end
|
@@ -0,0 +1,334 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: https://rubygems.org:443/api/v1/gems/coffee-rails.json
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- "*/*; q=0.5, application/xml"
|
10
|
+
accept-encoding:
|
11
|
+
- gzip, deflate
|
12
|
+
response: !ruby/struct:VCR::Response
|
13
|
+
status: !ruby/struct:VCR::ResponseStatus
|
14
|
+
code: 200
|
15
|
+
message: OK
|
16
|
+
headers:
|
17
|
+
x-ua-compatible:
|
18
|
+
- IE=Edge,chrome=1
|
19
|
+
etag:
|
20
|
+
- "\"8d7bc50c01b6d796704c36b69d8732ab\""
|
21
|
+
x-powered-by:
|
22
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
x-runtime:
|
26
|
+
- "0.019747"
|
27
|
+
server:
|
28
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
29
|
+
date:
|
30
|
+
- Fri, 23 Sep 2011 03:47:53 GMT
|
31
|
+
status:
|
32
|
+
- "200"
|
33
|
+
cache-control:
|
34
|
+
- max-age=0, private, must-revalidate
|
35
|
+
transfer-encoding:
|
36
|
+
- chunked
|
37
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"coffee-script\",\"requirements\":\">= 2.2.0\"},{\"name\":\"railties\",\"requirements\":\"~> 3.1.0\"}],\"development\":[]},\"name\":\"coffee-rails\",\"downloads\":140147,\"info\":\"Coffee Script adapter for the Rails asset pipeline.\",\"version_downloads\":43646,\"version\":\"3.1.1\",\"homepage_uri\":\"\",\"bug_tracker_uri\":\"\",\"source_code_uri\":\"https://github.com/rails/coffee-rails\",\"gem_uri\":\"http://rubygems.org/gems/coffee-rails-3.1.1.gem\",\"project_uri\":\"http://rubygems.org/gems/coffee-rails\",\"authors\":\"Santiago Pastorino\",\"mailing_list_uri\":\"\",\"documentation_uri\":\"\",\"wiki_uri\":\"\"}"
|
38
|
+
http_version: "1.1"
|
39
|
+
- !ruby/struct:VCR::HTTPInteraction
|
40
|
+
request: !ruby/struct:VCR::Request
|
41
|
+
method: :get
|
42
|
+
uri: https://rubygems.org:443/api/v1/gems/jquery-rails.json
|
43
|
+
body:
|
44
|
+
headers:
|
45
|
+
accept:
|
46
|
+
- "*/*; q=0.5, application/xml"
|
47
|
+
accept-encoding:
|
48
|
+
- gzip, deflate
|
49
|
+
response: !ruby/struct:VCR::Response
|
50
|
+
status: !ruby/struct:VCR::ResponseStatus
|
51
|
+
code: 200
|
52
|
+
message: OK
|
53
|
+
headers:
|
54
|
+
x-ua-compatible:
|
55
|
+
- IE=Edge,chrome=1
|
56
|
+
etag:
|
57
|
+
- "\"7b8f4b4f11f43511919ace9e2d8be129\""
|
58
|
+
x-powered-by:
|
59
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
60
|
+
content-type:
|
61
|
+
- application/json; charset=utf-8
|
62
|
+
x-runtime:
|
63
|
+
- "0.028728"
|
64
|
+
server:
|
65
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
66
|
+
date:
|
67
|
+
- Fri, 23 Sep 2011 03:47:53 GMT
|
68
|
+
status:
|
69
|
+
- "200"
|
70
|
+
cache-control:
|
71
|
+
- max-age=0, private, must-revalidate
|
72
|
+
transfer-encoding:
|
73
|
+
- chunked
|
74
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"railties\",\"requirements\":\"~> 3.0\"},{\"name\":\"thor\",\"requirements\":\"~> 0.14\"}],\"development\":[{\"name\":\"bundler\",\"requirements\":\"~> 1.0.0\"},{\"name\":\"rails\",\"requirements\":\"~> 3.0\"}]},\"name\":\"jquery-rails\",\"downloads\":795877,\"info\":\"This gem provides jQuery and the jQuery-ujs driver for your Rails 3 application.\",\"version_downloads\":80728,\"version\":\"1.0.14\",\"homepage_uri\":\"http://rubygems.org/gems/jquery-rails\",\"bug_tracker_uri\":\"https://github.com/rails/jquery-rails/issues\",\"source_code_uri\":\"https://github.com/rails/jquery-rails\",\"gem_uri\":\"http://rubygems.org/gems/jquery-rails-1.0.14.gem\",\"project_uri\":\"http://rubygems.org/gems/jquery-rails\",\"authors\":\"Andr\\u00e9 Arko\",\"mailing_list_uri\":\"\",\"documentation_uri\":\"\",\"wiki_uri\":\"\"}"
|
75
|
+
http_version: "1.1"
|
76
|
+
- !ruby/struct:VCR::HTTPInteraction
|
77
|
+
request: !ruby/struct:VCR::Request
|
78
|
+
method: :get
|
79
|
+
uri: https://rubygems.org:443/api/v1/gems/json.json
|
80
|
+
body:
|
81
|
+
headers:
|
82
|
+
accept:
|
83
|
+
- "*/*; q=0.5, application/xml"
|
84
|
+
accept-encoding:
|
85
|
+
- gzip, deflate
|
86
|
+
response: !ruby/struct:VCR::Response
|
87
|
+
status: !ruby/struct:VCR::ResponseStatus
|
88
|
+
code: 200
|
89
|
+
message: OK
|
90
|
+
headers:
|
91
|
+
x-ua-compatible:
|
92
|
+
- IE=Edge,chrome=1
|
93
|
+
etag:
|
94
|
+
- "\"ce9e53c2c841d4b332d07e6055a65b81\""
|
95
|
+
x-powered-by:
|
96
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
97
|
+
content-type:
|
98
|
+
- application/json; charset=utf-8
|
99
|
+
x-runtime:
|
100
|
+
- "0.018971"
|
101
|
+
server:
|
102
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
103
|
+
date:
|
104
|
+
- Fri, 23 Sep 2011 03:47:54 GMT
|
105
|
+
status:
|
106
|
+
- "200"
|
107
|
+
cache-control:
|
108
|
+
- max-age=0, private, must-revalidate
|
109
|
+
transfer-encoding:
|
110
|
+
- chunked
|
111
|
+
body: "{\"dependencies\":{\"runtime\":[],\"development\":[{\"name\":\"bullshit\",\"requirements\":\">= 0\"},{\"name\":\"permutation\",\"requirements\":\">= 0\"},{\"name\":\"sdoc\",\"requirements\":\">= 0\"}]},\"name\":\"json\",\"downloads\":2556085,\"info\":\"This is a JSON implementation as a Ruby extension in C.\",\"version_downloads\":26819,\"version\":\"1.6.1\",\"homepage_uri\":\"http://flori.github.com/json\",\"bug_tracker_uri\":\"http://github.com/flori/json/issues\",\"source_code_uri\":\"http://flori.github.com/json/\",\"gem_uri\":\"http://rubygems.org/gems/json-1.6.1.gem\",\"project_uri\":\"http://rubygems.org/gems/json\",\"authors\":\"Florian Frank\",\"mailing_list_uri\":\"\",\"documentation_uri\":\"http://flori.github.com/json/doc/index.html\",\"wiki_uri\":\"\"}"
|
112
|
+
http_version: "1.1"
|
113
|
+
- !ruby/struct:VCR::HTTPInteraction
|
114
|
+
request: !ruby/struct:VCR::Request
|
115
|
+
method: :get
|
116
|
+
uri: https://rubygems.org:443/api/v1/gems/rails.json
|
117
|
+
body:
|
118
|
+
headers:
|
119
|
+
accept:
|
120
|
+
- "*/*; q=0.5, application/xml"
|
121
|
+
accept-encoding:
|
122
|
+
- gzip, deflate
|
123
|
+
response: !ruby/struct:VCR::Response
|
124
|
+
status: !ruby/struct:VCR::ResponseStatus
|
125
|
+
code: 200
|
126
|
+
message: OK
|
127
|
+
headers:
|
128
|
+
x-ua-compatible:
|
129
|
+
- IE=Edge,chrome=1
|
130
|
+
etag:
|
131
|
+
- "\"72aec0bfd385b2b8ceee3d1ed74b8bfd\""
|
132
|
+
x-powered-by:
|
133
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
134
|
+
content-type:
|
135
|
+
- application/json; charset=utf-8
|
136
|
+
x-runtime:
|
137
|
+
- "0.022513"
|
138
|
+
server:
|
139
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
140
|
+
date:
|
141
|
+
- Fri, 23 Sep 2011 03:47:54 GMT
|
142
|
+
status:
|
143
|
+
- "200"
|
144
|
+
cache-control:
|
145
|
+
- max-age=0, private, must-revalidate
|
146
|
+
transfer-encoding:
|
147
|
+
- chunked
|
148
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"actionmailer\",\"requirements\":\"= 3.1.0\"},{\"name\":\"actionpack\",\"requirements\":\"= 3.1.0\"},{\"name\":\"activerecord\",\"requirements\":\"= 3.1.0\"},{\"name\":\"activeresource\",\"requirements\":\"= 3.1.0\"},{\"name\":\"activesupport\",\"requirements\":\"= 3.1.0\"},{\"name\":\"bundler\",\"requirements\":\"~> 1.0\"},{\"name\":\"railties\",\"requirements\":\"= 3.1.0\"}],\"development\":[]},\"name\":\"rails\",\"downloads\":5539753,\"info\":\"Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.\",\"version_downloads\":157488,\"version\":\"3.1.0\",\"homepage_uri\":\"http://www.rubyonrails.org\",\"bug_tracker_uri\":\"http://rails.lighthouseapp.com/projects/8994-ruby-on-rails\",\"source_code_uri\":\"http://github.com/rails/rails\",\"gem_uri\":\"http://rubygems.org/gems/rails-3.1.0.gem\",\"project_uri\":\"http://rubygems.org/gems/rails\",\"authors\":\"David Heinemeier Hansson\",\"mailing_list_uri\":\"http://groups.google.com/group/rubyonrails-talk\",\"documentation_uri\":\"http://api.rubyonrails.org\",\"wiki_uri\":\"http://wiki.rubyonrails.org\"}"
|
149
|
+
http_version: "1.1"
|
150
|
+
- !ruby/struct:VCR::HTTPInteraction
|
151
|
+
request: !ruby/struct:VCR::Request
|
152
|
+
method: :get
|
153
|
+
uri: https://rubygems.org:443/api/v1/gems/ruby-debug.json
|
154
|
+
body:
|
155
|
+
headers:
|
156
|
+
accept:
|
157
|
+
- "*/*; q=0.5, application/xml"
|
158
|
+
accept-encoding:
|
159
|
+
- gzip, deflate
|
160
|
+
response: !ruby/struct:VCR::Response
|
161
|
+
status: !ruby/struct:VCR::ResponseStatus
|
162
|
+
code: 200
|
163
|
+
message: OK
|
164
|
+
headers:
|
165
|
+
x-ua-compatible:
|
166
|
+
- IE=Edge,chrome=1
|
167
|
+
etag:
|
168
|
+
- "\"d4e2e9928d166507caf5c173dc7ca341\""
|
169
|
+
x-powered-by:
|
170
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
171
|
+
content-type:
|
172
|
+
- application/json; charset=utf-8
|
173
|
+
x-runtime:
|
174
|
+
- "0.017977"
|
175
|
+
server:
|
176
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
177
|
+
date:
|
178
|
+
- Fri, 23 Sep 2011 03:47:55 GMT
|
179
|
+
status:
|
180
|
+
- "200"
|
181
|
+
cache-control:
|
182
|
+
- max-age=0, private, must-revalidate
|
183
|
+
transfer-encoding:
|
184
|
+
- chunked
|
185
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"columnize\",\"requirements\":\">= 0.1\"},{\"name\":\"ruby-debug-base\",\"requirements\":\"~> 0.10.4.0\"}],\"development\":[]},\"name\":\"ruby-debug\",\"downloads\":525147,\"info\":\"A generic command line interface for ruby-debug.\\n\",\"version_downloads\":298586,\"version\":\"0.10.4\",\"homepage_uri\":\"http://rubyforge.org/projects/ruby-debug/\",\"bug_tracker_uri\":null,\"source_code_uri\":null,\"gem_uri\":\"http://rubygems.org/gems/ruby-debug-0.10.4.gem\",\"project_uri\":\"http://rubygems.org/gems/ruby-debug\",\"authors\":\"Kent Sibilev\",\"mailing_list_uri\":null,\"documentation_uri\":null,\"wiki_uri\":null}"
|
186
|
+
http_version: "1.1"
|
187
|
+
- !ruby/struct:VCR::HTTPInteraction
|
188
|
+
request: !ruby/struct:VCR::Request
|
189
|
+
method: :get
|
190
|
+
uri: https://rubygems.org:443/api/v1/gems/sass-rails.json
|
191
|
+
body:
|
192
|
+
headers:
|
193
|
+
accept:
|
194
|
+
- "*/*; q=0.5, application/xml"
|
195
|
+
accept-encoding:
|
196
|
+
- gzip, deflate
|
197
|
+
response: !ruby/struct:VCR::Response
|
198
|
+
status: !ruby/struct:VCR::ResponseStatus
|
199
|
+
code: 200
|
200
|
+
message: OK
|
201
|
+
headers:
|
202
|
+
x-ua-compatible:
|
203
|
+
- IE=Edge,chrome=1
|
204
|
+
etag:
|
205
|
+
- "\"c233274dea541f53bf6d815106885c04\""
|
206
|
+
x-powered-by:
|
207
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
208
|
+
content-type:
|
209
|
+
- application/json; charset=utf-8
|
210
|
+
x-runtime:
|
211
|
+
- "0.019487"
|
212
|
+
server:
|
213
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
214
|
+
date:
|
215
|
+
- Fri, 23 Sep 2011 03:47:55 GMT
|
216
|
+
status:
|
217
|
+
- "200"
|
218
|
+
cache-control:
|
219
|
+
- max-age=0, private, must-revalidate
|
220
|
+
transfer-encoding:
|
221
|
+
- chunked
|
222
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"actionpack\",\"requirements\":\"~> 3.1.0\"},{\"name\":\"railties\",\"requirements\":\"~> 3.1.0\"},{\"name\":\"sass\",\"requirements\":\">= 3.1.4\"},{\"name\":\"sprockets\",\"requirements\":\"~> 2.0.0\"},{\"name\":\"tilt\",\"requirements\":\"~> 1.3.2\"}],\"development\":[]},\"name\":\"sass-rails\",\"downloads\":207381,\"info\":\"Sass adapter for the Rails asset pipeline.\",\"version_downloads\":31931,\"version\":\"3.1.2\",\"homepage_uri\":\"\",\"bug_tracker_uri\":\"https://github.com/rails/sass-rails/issues\",\"source_code_uri\":\"https://github.com/rails/sass-rails\",\"gem_uri\":\"http://rubygems.org/gems/sass-rails-3.1.2.gem\",\"project_uri\":\"http://rubygems.org/gems/sass-rails\",\"authors\":\"wycats, chriseppstein\",\"mailing_list_uri\":\"\",\"documentation_uri\":\"https://github.com/rails/sass-rails/blob/master/README.markdown\",\"wiki_uri\":\"\"}"
|
223
|
+
http_version: "1.1"
|
224
|
+
- !ruby/struct:VCR::HTTPInteraction
|
225
|
+
request: !ruby/struct:VCR::Request
|
226
|
+
method: :get
|
227
|
+
uri: https://rubygems.org:443/api/v1/gems/sqlite3.json
|
228
|
+
body:
|
229
|
+
headers:
|
230
|
+
accept:
|
231
|
+
- "*/*; q=0.5, application/xml"
|
232
|
+
accept-encoding:
|
233
|
+
- gzip, deflate
|
234
|
+
response: !ruby/struct:VCR::Response
|
235
|
+
status: !ruby/struct:VCR::ResponseStatus
|
236
|
+
code: 200
|
237
|
+
message: OK
|
238
|
+
headers:
|
239
|
+
x-ua-compatible:
|
240
|
+
- IE=Edge,chrome=1
|
241
|
+
etag:
|
242
|
+
- "\"794925f2bbe1f05ecd9e46f61621d810\""
|
243
|
+
x-powered-by:
|
244
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
245
|
+
content-type:
|
246
|
+
- application/json; charset=utf-8
|
247
|
+
x-runtime:
|
248
|
+
- "0.017820"
|
249
|
+
server:
|
250
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
251
|
+
date:
|
252
|
+
- Fri, 23 Sep 2011 03:47:55 GMT
|
253
|
+
status:
|
254
|
+
- "200"
|
255
|
+
cache-control:
|
256
|
+
- max-age=0, private, must-revalidate
|
257
|
+
transfer-encoding:
|
258
|
+
- chunked
|
259
|
+
body: "{\"dependencies\":{\"runtime\":[],\"development\":[{\"name\":\"hoe\",\"requirements\":\"~> 2.10\"},{\"name\":\"mini_portile\",\"requirements\":\"~> 0.2.2\"},{\"name\":\"rake-compiler\",\"requirements\":\"~> 0.7.0\"}]},\"name\":\"sqlite3\",\"downloads\":1085992,\"info\":\"This module allows Ruby programs to interface with the SQLite3\\ndatabase engine (http://www.sqlite.org). You must have the\\nSQLite engine installed in order to build this module.\\n\\nNote that this module is NOT compatible with SQLite 2.x.\",\"version_downloads\":250346,\"version\":\"1.3.4\",\"homepage_uri\":\"http://github.com/luislavena/sqlite3-ruby\",\"bug_tracker_uri\":null,\"source_code_uri\":null,\"gem_uri\":\"http://rubygems.org/gems/sqlite3-1.3.4.gem\",\"project_uri\":\"http://rubygems.org/gems/sqlite3\",\"authors\":\"Jamis Buck, Luis Lavena, Aaron Patterson\",\"mailing_list_uri\":null,\"documentation_uri\":null,\"wiki_uri\":null}"
|
260
|
+
http_version: "1.1"
|
261
|
+
- !ruby/struct:VCR::HTTPInteraction
|
262
|
+
request: !ruby/struct:VCR::Request
|
263
|
+
method: :get
|
264
|
+
uri: https://rubygems.org:443/api/v1/gems/uglifier.json
|
265
|
+
body:
|
266
|
+
headers:
|
267
|
+
accept:
|
268
|
+
- "*/*; q=0.5, application/xml"
|
269
|
+
accept-encoding:
|
270
|
+
- gzip, deflate
|
271
|
+
response: !ruby/struct:VCR::Response
|
272
|
+
status: !ruby/struct:VCR::ResponseStatus
|
273
|
+
code: 200
|
274
|
+
message: OK
|
275
|
+
headers:
|
276
|
+
x-ua-compatible:
|
277
|
+
- IE=Edge,chrome=1
|
278
|
+
etag:
|
279
|
+
- "\"ffbd0a2c81a19bf6971441187104aada\""
|
280
|
+
x-powered-by:
|
281
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
282
|
+
content-type:
|
283
|
+
- application/json; charset=utf-8
|
284
|
+
x-runtime:
|
285
|
+
- "0.019840"
|
286
|
+
server:
|
287
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
288
|
+
date:
|
289
|
+
- Fri, 23 Sep 2011 03:47:56 GMT
|
290
|
+
status:
|
291
|
+
- "200"
|
292
|
+
cache-control:
|
293
|
+
- max-age=0, private, must-revalidate
|
294
|
+
transfer-encoding:
|
295
|
+
- chunked
|
296
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"execjs\",\"requirements\":\">= 0.3.0\"},{\"name\":\"multi_json\",\"requirements\":\">= 1.0.2\"}],\"development\":[{\"name\":\"bundler\",\"requirements\":\"~> 1.0.0\"},{\"name\":\"jeweler\",\"requirements\":\"~> 1.6.0\"},{\"name\":\"rcov\",\"requirements\":\">= 0\"},{\"name\":\"rspec\",\"requirements\":\"~> 2.6.0\"}]},\"name\":\"uglifier\",\"downloads\":248641,\"info\":\"Ruby wrapper for UglifyJS JavaScript compressor\",\"version_downloads\":80771,\"version\":\"1.0.3\",\"homepage_uri\":\"http://github.com/lautis/uglifier\",\"bug_tracker_uri\":\"https://github.com/lautis/uglifier/issues\",\"source_code_uri\":\"https://github.com/lautis/uglifier\",\"gem_uri\":\"http://rubygems.org/gems/uglifier-1.0.3.gem\",\"project_uri\":\"http://rubygems.org/gems/uglifier\",\"authors\":\"Ville Lautanala\",\"mailing_list_uri\":\"\",\"documentation_uri\":\"\",\"wiki_uri\":\"\"}"
|
297
|
+
http_version: "1.1"
|
298
|
+
- !ruby/struct:VCR::HTTPInteraction
|
299
|
+
request: !ruby/struct:VCR::Request
|
300
|
+
method: :get
|
301
|
+
uri: https://rubygems.org:443/api/v1/gems/unicorn.json
|
302
|
+
body:
|
303
|
+
headers:
|
304
|
+
accept:
|
305
|
+
- "*/*; q=0.5, application/xml"
|
306
|
+
accept-encoding:
|
307
|
+
- gzip, deflate
|
308
|
+
response: !ruby/struct:VCR::Response
|
309
|
+
status: !ruby/struct:VCR::ResponseStatus
|
310
|
+
code: 200
|
311
|
+
message: OK
|
312
|
+
headers:
|
313
|
+
x-ua-compatible:
|
314
|
+
- IE=Edge,chrome=1
|
315
|
+
etag:
|
316
|
+
- "\"99d2582038e2b4a7f938e0f088463238\""
|
317
|
+
x-powered-by:
|
318
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
319
|
+
content-type:
|
320
|
+
- application/json; charset=utf-8
|
321
|
+
x-runtime:
|
322
|
+
- "0.019507"
|
323
|
+
server:
|
324
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
325
|
+
date:
|
326
|
+
- Fri, 23 Sep 2011 03:47:56 GMT
|
327
|
+
status:
|
328
|
+
- "200"
|
329
|
+
cache-control:
|
330
|
+
- max-age=0, private, must-revalidate
|
331
|
+
transfer-encoding:
|
332
|
+
- chunked
|
333
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"kgio\",\"requirements\":\"~> 2.4\"},{\"name\":\"rack\",\"requirements\":\">= 0\"},{\"name\":\"raindrops\",\"requirements\":\"~> 0.6\"}],\"development\":[{\"name\":\"isolate\",\"requirements\":\"~> 3.1\"},{\"name\":\"wrongdoc\",\"requirements\":\"~> 1.6\"}]},\"name\":\"unicorn\",\"downloads\":403522,\"info\":\"\\\\Unicorn is an HTTP server for Rack applications designed to only serve\\nfast clients on low-latency, high-bandwidth connections and take\\nadvantage of features in Unix/Unix-like kernels. Slow clients should\\nonly be served by placing a reverse proxy capable of fully buffering\\nboth the the request and response in between \\\\Unicorn and slow clients.\",\"version_downloads\":21219,\"version\":\"4.1.1\",\"homepage_uri\":\"http://unicorn.bogomips.org/\",\"bug_tracker_uri\":\"http://rubyforge.org/mailman/listinfo/mongrel-unicorn\",\"source_code_uri\":\"http://git.bogomips.org/cgit/unicorn.git\",\"gem_uri\":\"http://rubygems.org/gems/unicorn-4.1.1.gem\",\"project_uri\":\"http://rubygems.org/gems/unicorn\",\"authors\":\"Unicorn hackers\",\"mailing_list_uri\":\"http://rubyforge.org/mailman/listinfo/mongrel-unicorn\",\"documentation_uri\":\"http://unicorn.bogomips.org/\",\"wiki_uri\":\"\"}"
|
334
|
+
http_version: "1.1"
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: https://rubygems.org:443/api/v1/gems/rails.json
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
accept:
|
9
|
+
- "*/*; q=0.5, application/xml"
|
10
|
+
accept-encoding:
|
11
|
+
- gzip, deflate
|
12
|
+
response: !ruby/struct:VCR::Response
|
13
|
+
status: !ruby/struct:VCR::ResponseStatus
|
14
|
+
code: 200
|
15
|
+
message: OK
|
16
|
+
headers:
|
17
|
+
x-ua-compatible:
|
18
|
+
- IE=Edge,chrome=1
|
19
|
+
etag:
|
20
|
+
- "\"2b7292ff1e188ecc0aae1f50591a9064\""
|
21
|
+
x-powered-by:
|
22
|
+
- Phusion Passenger (mod_rails/mod_rack) 3.0.0
|
23
|
+
content-type:
|
24
|
+
- application/json; charset=utf-8
|
25
|
+
x-runtime:
|
26
|
+
- "0.021268"
|
27
|
+
server:
|
28
|
+
- Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/3.0.0
|
29
|
+
date:
|
30
|
+
- Fri, 23 Sep 2011 03:35:39 GMT
|
31
|
+
status:
|
32
|
+
- "200"
|
33
|
+
cache-control:
|
34
|
+
- max-age=0, private, must-revalidate
|
35
|
+
transfer-encoding:
|
36
|
+
- chunked
|
37
|
+
body: "{\"dependencies\":{\"runtime\":[{\"name\":\"actionmailer\",\"requirements\":\"= 3.1.0\"},{\"name\":\"actionpack\",\"requirements\":\"= 3.1.0\"},{\"name\":\"activerecord\",\"requirements\":\"= 3.1.0\"},{\"name\":\"activeresource\",\"requirements\":\"= 3.1.0\"},{\"name\":\"activesupport\",\"requirements\":\"= 3.1.0\"},{\"name\":\"bundler\",\"requirements\":\"~> 1.0\"},{\"name\":\"railties\",\"requirements\":\"= 3.1.0\"}],\"development\":[]},\"name\":\"rails\",\"downloads\":5539660,\"info\":\"Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity. It encourages beautiful code by favoring convention over configuration.\",\"version_downloads\":157442,\"version\":\"3.1.0\",\"homepage_uri\":\"http://www.rubyonrails.org\",\"bug_tracker_uri\":\"http://rails.lighthouseapp.com/projects/8994-ruby-on-rails\",\"source_code_uri\":\"http://github.com/rails/rails\",\"gem_uri\":\"http://rubygems.org/gems/rails-3.1.0.gem\",\"project_uri\":\"http://rubygems.org/gems/rails\",\"authors\":\"David Heinemeier Hansson\",\"mailing_list_uri\":\"http://groups.google.com/group/rubyonrails-talk\",\"documentation_uri\":\"http://api.rubyonrails.org\",\"wiki_uri\":\"http://wiki.rubyonrails.org\"}"
|
38
|
+
http_version: "1.1"
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gemlock do
|
4
|
+
describe "#locked_gemfile_specs" do
|
5
|
+
it "should output the list of gems & version requirements" do
|
6
|
+
Gemlock.stubs(:lockfile).returns((File.join(File.dirname(__FILE__), 'fixtures', 'Gemfile.lock')))
|
7
|
+
|
8
|
+
specs = Gemlock.locked_gemfile_specs
|
9
|
+
expected = [["coffee-rails", "3.1.0"], ["jquery-rails", "1.0.14"],
|
10
|
+
["json", "1.5.0"], ["rails", "3.1.0"],
|
11
|
+
["ruby-debug", "0.10.4"], ["sass-rails", "3.1.0"],
|
12
|
+
["sqlite3", "1.3.4"], ["uglifier", "1.0.3"],
|
13
|
+
["unicorn", "4.1.0"]]
|
14
|
+
|
15
|
+
specs.should match_name_and_versions_of expected
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#lockfile" do
|
20
|
+
it "should load Gemfile.lock from the Rails root if Rails is defined" do
|
21
|
+
module Rails
|
22
|
+
def self.root
|
23
|
+
Pathname.new(File.dirname(__FILE__))
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
expected_path = Pathname.new(File.dirname(__FILE__)).join('Gemfile.lock')
|
28
|
+
Gemlock.lockfile.should eql expected_path
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should load Gemfile.lock from the default Bundler location if Rails is not defined" do
|
32
|
+
expected_path = Pathname.new(File.expand_path(File.join(File.dirname(__FILE__), 'Gemfile.lock')))
|
33
|
+
|
34
|
+
Gemlock.lockfile.should eql expected_path
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#lookup_version" do
|
39
|
+
it "should look up and return the latest version of a given gem" do
|
40
|
+
VCR.use_cassette('rails_cassette') do
|
41
|
+
version = Gemlock.lookup_version("rails")
|
42
|
+
version.should eql "3.1.0"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#outdated" do
|
48
|
+
it "should return an array of outdated gem specifications" do
|
49
|
+
Gemlock.stubs(:lockfile).returns((File.join(File.dirname(__FILE__), 'fixtures', 'Gemfile.lock')))
|
50
|
+
|
51
|
+
VCR.use_cassette('outdated_cassette') do
|
52
|
+
expected = {'coffee-rails' => { :current => '3.1.0',
|
53
|
+
:latest => '3.1.1' },
|
54
|
+
'sass-rails' => { :current => '3.1.0',
|
55
|
+
:latest => '3.1.2' },
|
56
|
+
'unicorn' => { :current => '4.1.0',
|
57
|
+
:latest => '4.1.1' },
|
58
|
+
'json' => { :current => '1.5.0',
|
59
|
+
:latest => '1.6.1' } }
|
60
|
+
|
61
|
+
Gemlock.oudated.should eql expected
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler'
|
3
|
+
|
3
4
|
begin
|
4
5
|
Bundler.require(:default, :development)
|
5
6
|
rescue Bundler::BundlerError => e
|
@@ -11,3 +12,15 @@ end
|
|
11
12
|
RSpec.configure do |config|
|
12
13
|
config.mock_with :mocha
|
13
14
|
end
|
15
|
+
|
16
|
+
VCR.config do |c|
|
17
|
+
c.cassette_library_dir = File.expand_path(File.join('fixtures', 'vcr_cassettes'), File.dirname(__FILE__))
|
18
|
+
c.stub_with :fakeweb
|
19
|
+
c.default_cassette_options = { :record => :once }
|
20
|
+
end
|
21
|
+
|
22
|
+
RSpec::Matchers.define :match_name_and_versions_of do |expected|
|
23
|
+
match do |actual|
|
24
|
+
expected == actual.inject([]) { |a, spec| a << [spec.name, spec.version.to_s] }
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemlock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mike Skalnik
|
@@ -18,8 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2011-09-
|
22
|
-
default_executable:
|
21
|
+
date: 2011-09-23 00:00:00 Z
|
23
22
|
dependencies:
|
24
23
|
- !ruby/object:Gem::Dependency
|
25
24
|
name: rake
|
@@ -38,9 +37,67 @@ dependencies:
|
|
38
37
|
type: :runtime
|
39
38
|
version_requirements: *id001
|
40
39
|
- !ruby/object:Gem::Dependency
|
41
|
-
name:
|
40
|
+
name: bundler
|
42
41
|
prerelease: false
|
43
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
hash: 23
|
48
|
+
segments:
|
49
|
+
- 1
|
50
|
+
- 0
|
51
|
+
- 0
|
52
|
+
version: 1.0.0
|
53
|
+
type: :runtime
|
54
|
+
version_requirements: *id002
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rest-client
|
57
|
+
prerelease: false
|
58
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
hash: 3
|
64
|
+
segments:
|
65
|
+
- 0
|
66
|
+
version: "0"
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 3
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
type: :runtime
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: autotest
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
type: :development
|
96
|
+
version_requirements: *id005
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
prerelease: false
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
44
101
|
none: false
|
45
102
|
requirements:
|
46
103
|
- - ~>
|
@@ -52,11 +109,11 @@ dependencies:
|
|
52
109
|
- 0
|
53
110
|
version: 2.6.0
|
54
111
|
type: :development
|
55
|
-
version_requirements: *
|
112
|
+
version_requirements: *id006
|
56
113
|
- !ruby/object:Gem::Dependency
|
57
114
|
name: mocha
|
58
115
|
prerelease: false
|
59
|
-
requirement: &
|
116
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
60
117
|
none: false
|
61
118
|
requirements:
|
62
119
|
- - ~>
|
@@ -68,11 +125,11 @@ dependencies:
|
|
68
125
|
- 0
|
69
126
|
version: 0.10.0
|
70
127
|
type: :development
|
71
|
-
version_requirements: *
|
128
|
+
version_requirements: *id007
|
72
129
|
- !ruby/object:Gem::Dependency
|
73
130
|
name: pry
|
74
131
|
prerelease: false
|
75
|
-
requirement: &
|
132
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
76
133
|
none: false
|
77
134
|
requirements:
|
78
135
|
- - ">="
|
@@ -84,7 +141,39 @@ dependencies:
|
|
84
141
|
- 5
|
85
142
|
version: 0.9.5
|
86
143
|
type: :development
|
87
|
-
version_requirements: *
|
144
|
+
version_requirements: *id008
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: vcr
|
147
|
+
prerelease: false
|
148
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: 59
|
154
|
+
segments:
|
155
|
+
- 1
|
156
|
+
- 11
|
157
|
+
- 0
|
158
|
+
version: 1.11.0
|
159
|
+
type: :development
|
160
|
+
version_requirements: *id009
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: fakeweb
|
163
|
+
prerelease: false
|
164
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
hash: 27
|
170
|
+
segments:
|
171
|
+
- 1
|
172
|
+
- 3
|
173
|
+
- 0
|
174
|
+
version: 1.3.0
|
175
|
+
type: :development
|
176
|
+
version_requirements: *id010
|
88
177
|
description: When installed, allows a user to check for updates in their Rails application
|
89
178
|
email:
|
90
179
|
- mskalnik@gatech.edu
|
@@ -96,7 +185,9 @@ extra_rdoc_files: []
|
|
96
185
|
|
97
186
|
files:
|
98
187
|
- .gitignore
|
188
|
+
- .rspec
|
99
189
|
- Gemfile
|
190
|
+
- Gemfile.lock
|
100
191
|
- Rakefile
|
101
192
|
- gemlock.gemspec
|
102
193
|
- lib/gemlock.rb
|
@@ -104,9 +195,11 @@ files:
|
|
104
195
|
- lib/gemlock/version.rb
|
105
196
|
- lib/tasks/gemlock.rake
|
106
197
|
- spec/fixtures/Gemfile
|
107
|
-
- spec/
|
198
|
+
- spec/fixtures/Gemfile.lock
|
199
|
+
- spec/fixtures/vcr_cassettes/outdated_cassette.yml
|
200
|
+
- spec/fixtures/vcr_cassettes/rails_cassette.yml
|
201
|
+
- spec/gemlock_spec.rb
|
108
202
|
- spec/spec_helper.rb
|
109
|
-
has_rdoc: true
|
110
203
|
homepage: ""
|
111
204
|
licenses: []
|
112
205
|
|
@@ -136,11 +229,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
229
|
requirements: []
|
137
230
|
|
138
231
|
rubyforge_project: gemlock
|
139
|
-
rubygems_version: 1.
|
232
|
+
rubygems_version: 1.8.10
|
140
233
|
signing_key:
|
141
234
|
specification_version: 3
|
142
235
|
summary: Get notified when there are updates for gems in your Rails application
|
143
236
|
test_files:
|
144
237
|
- spec/fixtures/Gemfile
|
145
|
-
- spec/
|
238
|
+
- spec/fixtures/Gemfile.lock
|
239
|
+
- spec/fixtures/vcr_cassettes/outdated_cassette.yml
|
240
|
+
- spec/fixtures/vcr_cassettes/rails_cassette.yml
|
241
|
+
- spec/gemlock_spec.rb
|
146
242
|
- spec/spec_helper.rb
|
data/spec/rake_tasks_spec.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "rake tasks" do
|
4
|
-
it "output the list of gems & version requirements" do
|
5
|
-
Gemlock.stubs(:lockfile).returns((File.join(File.dirname(__FILE__), 'fixtures', 'Gemfile.lock')))
|
6
|
-
|
7
|
-
specs = Gemlock.locked_gemfile_specs.inject([]) { |a, spec| a << [spec.name, spec.version.to_s]}
|
8
|
-
expected = [["coffee-rails", "3.1.1"], ["jquery-rails", "1.0.14"],
|
9
|
-
["json", "1.6.1"], ["rails", "3.1.0"],
|
10
|
-
["ruby-debug", "0.10.4"], ["sass-rails", "3.1.2"],
|
11
|
-
["sqlite3", "1.3.4"], ["uglifier", "1.0.3"],
|
12
|
-
["unicorn", "4.1.1"]]
|
13
|
-
|
14
|
-
specs.should eql expected
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should load Gemfile.lock from the Rails root if Rails is defined" do
|
18
|
-
module Rails
|
19
|
-
def self.root
|
20
|
-
Pathname.new(File.dirname(__FILE__))
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
expected_path = Pathname.new(File.dirname(__FILE__)).join('Gemfile.lock')
|
25
|
-
Gemlock.lockfile.should eql expected_path
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should load Gemfile.lock from the default Bundler location if Rails is not defined" do
|
29
|
-
expected_path = Pathname.new(File.expand_path(File.join(File.dirname(__FILE__), 'Gemfile.lock')))
|
30
|
-
|
31
|
-
Gemlock.lockfile.should eql expected_path
|
32
|
-
end
|
33
|
-
end
|