gemlock 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +5 -0
- data/gemlock.gemspec +6 -0
- data/lib/gemlock.rb +20 -1
- data/lib/gemlock/railtie.rb +10 -0
- data/lib/gemlock/version.rb +1 -1
- data/lib/tasks/gemlock.rake +8 -0
- data/spec/fixtures/Gemfile +16 -0
- data/spec/rake_tasks_spec.rb +33 -0
- data/spec/spec_helper.rb +13 -0
- metadata +78 -8
data/Rakefile
CHANGED
data/gemlock.gemspec
CHANGED
@@ -17,4 +17,10 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_dependency('rake', '>= 0.8.7')
|
22
|
+
|
23
|
+
s.add_development_dependency('rspec' , '~> 2.6.0')
|
24
|
+
s.add_development_dependency('mocha' , '~> 0.10.0')
|
25
|
+
s.add_development_dependency('pry' , '>= 0.9.5')
|
20
26
|
end
|
data/lib/gemlock.rb
CHANGED
@@ -1,5 +1,24 @@
|
|
1
1
|
require "gemlock/version"
|
2
2
|
|
3
3
|
module Gemlock
|
4
|
-
|
4
|
+
require 'gemlock/railtie' if defined?(Rails)
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def lockfile
|
8
|
+
@lockfile = if defined?(Rails)
|
9
|
+
Rails.root.join('Gemfile.lock')
|
10
|
+
else
|
11
|
+
Bundler::SharedHelpers.default_lockfile
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def locked_gemfile_specs
|
16
|
+
locked_content = Bundler.read_file(lockfile)
|
17
|
+
locked = Bundler::LockfileParser.new(locked_content)
|
18
|
+
|
19
|
+
gemfile_names = locked.dependencies.map(&:name)
|
20
|
+
locked_gemfile_specs = locked.specs.clone
|
21
|
+
locked_gemfile_specs.delete_if { |spec| !gemfile_names.include?(spec.name) }
|
22
|
+
end
|
23
|
+
end
|
5
24
|
end
|
data/lib/gemlock/version.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
source 'http://rubygems.org'
|
2
|
+
|
3
|
+
gem 'rails', '3.1.0'
|
4
|
+
gem 'sqlite3'
|
5
|
+
gem 'json'
|
6
|
+
|
7
|
+
group :assets do
|
8
|
+
gem 'sass-rails', " ~> 3.1.0"
|
9
|
+
gem 'coffee-rails', "~> 3.1.0"
|
10
|
+
gem 'uglifier'
|
11
|
+
end
|
12
|
+
|
13
|
+
gem 'jquery-rails'
|
14
|
+
gem 'unicorn'
|
15
|
+
gem 'ruby-debug'
|
16
|
+
|
@@ -0,0 +1,33 @@
|
|
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
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.require(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
config.mock_with :mocha
|
13
|
+
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: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mike Skalnik
|
@@ -18,10 +18,73 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2011-09-
|
21
|
+
date: 2011-09-19 00:00:00 -04:00
|
22
22
|
default_executable:
|
23
|
-
dependencies:
|
24
|
-
|
23
|
+
dependencies:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: rake
|
26
|
+
prerelease: false
|
27
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
hash: 49
|
33
|
+
segments:
|
34
|
+
- 0
|
35
|
+
- 8
|
36
|
+
- 7
|
37
|
+
version: 0.8.7
|
38
|
+
type: :runtime
|
39
|
+
version_requirements: *id001
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rspec
|
42
|
+
prerelease: false
|
43
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
hash: 23
|
49
|
+
segments:
|
50
|
+
- 2
|
51
|
+
- 6
|
52
|
+
- 0
|
53
|
+
version: 2.6.0
|
54
|
+
type: :development
|
55
|
+
version_requirements: *id002
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: mocha
|
58
|
+
prerelease: false
|
59
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ~>
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
hash: 55
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
- 10
|
68
|
+
- 0
|
69
|
+
version: 0.10.0
|
70
|
+
type: :development
|
71
|
+
version_requirements: *id003
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: pry
|
74
|
+
prerelease: false
|
75
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
hash: 49
|
81
|
+
segments:
|
82
|
+
- 0
|
83
|
+
- 9
|
84
|
+
- 5
|
85
|
+
version: 0.9.5
|
86
|
+
type: :development
|
87
|
+
version_requirements: *id004
|
25
88
|
description: When installed, allows a user to check for updates in their Rails application
|
26
89
|
email:
|
27
90
|
- mskalnik@gatech.edu
|
@@ -37,7 +100,12 @@ files:
|
|
37
100
|
- Rakefile
|
38
101
|
- gemlock.gemspec
|
39
102
|
- lib/gemlock.rb
|
103
|
+
- lib/gemlock/railtie.rb
|
40
104
|
- lib/gemlock/version.rb
|
105
|
+
- lib/tasks/gemlock.rake
|
106
|
+
- spec/fixtures/Gemfile
|
107
|
+
- spec/rake_tasks_spec.rb
|
108
|
+
- spec/spec_helper.rb
|
41
109
|
has_rdoc: true
|
42
110
|
homepage: ""
|
43
111
|
licenses: []
|
@@ -72,5 +140,7 @@ rubygems_version: 1.5.3
|
|
72
140
|
signing_key:
|
73
141
|
specification_version: 3
|
74
142
|
summary: Get notified when there are updates for gems in your Rails application
|
75
|
-
test_files:
|
76
|
-
|
143
|
+
test_files:
|
144
|
+
- spec/fixtures/Gemfile
|
145
|
+
- spec/rake_tasks_spec.rb
|
146
|
+
- spec/spec_helper.rb
|