update_dependencies 0.1.0
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/bin/update_dependencies +9 -0
- data/update_dependencies.rb +58 -0
- metadata +49 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
module Bundler
|
2
|
+
class Dsl
|
3
|
+
def gemspec
|
4
|
+
puts "gemspec \n\n"
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class UpdateDependencies
|
10
|
+
attr_reader :dependency_gemfile
|
11
|
+
def initialize(path_to_gemfile)
|
12
|
+
raise "Needs a location of a dependent Gemfile" unless path_to_gemfile
|
13
|
+
puts "source 'http://rubygems.org' \n\n"
|
14
|
+
@dependency_gemfile = Bundler::Dsl.new.eval_gemfile(path_to_gemfile)
|
15
|
+
end
|
16
|
+
|
17
|
+
def run_dependencies
|
18
|
+
dependency_gemfile.group_by {|g| g.groups.first }.each do |group, gem_sources|
|
19
|
+
in_group(group.to_s) do
|
20
|
+
gem_sources.each do |gem_source|
|
21
|
+
print_dependent_sources(gem_source, group)
|
22
|
+
print_version_sources(gem_source, group)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def spaces(group)
|
31
|
+
group.to_s == "default" ? "" : " "
|
32
|
+
end
|
33
|
+
|
34
|
+
def ref(source)
|
35
|
+
source.ref == "master" ? "" : ", ref => '" + source.ref + "'"
|
36
|
+
end
|
37
|
+
|
38
|
+
def in_group(group)
|
39
|
+
puts "\ngroup :" + group + " do" unless group == "default"
|
40
|
+
yield
|
41
|
+
puts "end" unless group == "default"
|
42
|
+
end
|
43
|
+
|
44
|
+
def locked_gemfile
|
45
|
+
@locked ||= Bundler::LockfileParser.new(Bundler.read_file("Gemfile.lock"))
|
46
|
+
end
|
47
|
+
|
48
|
+
def print_dependent_sources(gem_source, group)
|
49
|
+
locked_gemfile.sources.select {|s| gem_source.name == s.name}.
|
50
|
+
map {|s| puts spaces(group) + "gem '" + s.name + "', :git => '" + s.uri + "'" + ref(s)}
|
51
|
+
end
|
52
|
+
|
53
|
+
def print_version_sources(gem_source, group)
|
54
|
+
locked_gemfile.specs.reject {|s| locked_gemfile.sources.map(&:name).include?(s.name)}.
|
55
|
+
select {|s| s.name == gem_source.name}.
|
56
|
+
map {|s| puts spaces(group) + "gem '" + s.name + "', '" + s.version.version + "'"}
|
57
|
+
end
|
58
|
+
end
|
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: update_dependencies
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- dougdroper
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-01-21 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Updates dependencies of gemfile from gemfile.lock
|
15
|
+
email:
|
16
|
+
- dougdroper@gmail.com
|
17
|
+
executables:
|
18
|
+
- update_dependencies
|
19
|
+
extensions: []
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- update_dependencies.rb
|
23
|
+
- bin/update_dependencies
|
24
|
+
homepage: https://gist.github.com/4566388
|
25
|
+
licenses: []
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- .
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ! '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ! '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
requirements: []
|
43
|
+
rubyforge_project:
|
44
|
+
rubygems_version: 1.8.24
|
45
|
+
signing_key:
|
46
|
+
specification_version: 3
|
47
|
+
summary: Updates dependencies of gemfile from gemfile.lock
|
48
|
+
test_files: []
|
49
|
+
has_rdoc:
|