gemlock 0.0.1 → 0.0.2

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/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