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 CHANGED
@@ -1 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ load File.join(File.dirname(__FILE__), 'tasks', 'gemlock.rake')
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task :default => :spec
@@ -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
@@ -1,5 +1,24 @@
1
1
  require "gemlock/version"
2
2
 
3
3
  module Gemlock
4
- # Your code goes here...
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
@@ -0,0 +1,10 @@
1
+ require 'gemlock'
2
+ require 'rails'
3
+
4
+ module Gemlock
5
+ class Railtie < Rails::Railtie
6
+ rake_tasks do
7
+ load 'tasks/gemlock.rake'
8
+ end
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module Gemlock
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,8 @@
1
+ namespace :gemlock do
2
+ desc 'list gems & versions'
3
+ task :list => :environment do
4
+ Gemlock.locked_gemfile_specs.each do |spec|
5
+ puts "#{spec.name}, version = #{spec.version.to_s}"
6
+ end
7
+ end
8
+ end
@@ -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
@@ -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: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
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-18 00:00:00 -04:00
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