spitball 0.3.0 → 0.3.1
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 +1 -3
- data/VERSION +1 -1
- data/lib/ext/bundler_lockfile_parser.rb +17 -16
- data/lib/spitball/remote.rb +13 -2
- data/lib/spitball.rb +0 -1
- data/spec/spitball_spec.rb +4 -4
- data/spitball.gemspec +5 -8
- metadata +11 -27
data/Rakefile
CHANGED
@@ -24,9 +24,7 @@ begin
|
|
24
24
|
gem.homepage = "http://github.com/freels/spitball"
|
25
25
|
gem.authors = ["Matt Freels", "Brandon Mitchell", "Joshua Hull"]
|
26
26
|
|
27
|
-
gem.add_dependency '
|
28
|
-
gem.add_dependency 'sinatra', '~> 1.0'
|
29
|
-
|
27
|
+
gem.add_dependency 'sinatra', '>= 1.0'
|
30
28
|
gem.add_development_dependency 'rspec'
|
31
29
|
gem.add_development_dependency 'rr'
|
32
30
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
@@ -25,18 +25,26 @@ module Bundler
|
|
25
25
|
private
|
26
26
|
|
27
27
|
TYPES = {
|
28
|
-
"GIT" =>
|
29
|
-
"GEM" =>
|
30
|
-
"PATH" =>
|
28
|
+
"GIT" => 'git',
|
29
|
+
"GEM" => 'gem',
|
30
|
+
"PATH" => 'path'
|
31
31
|
}
|
32
32
|
|
33
|
+
GemSource = Struct.new(:remotes)
|
34
|
+
|
33
35
|
def parse_source(line)
|
34
36
|
case line
|
35
37
|
when "GIT", "GEM", "PATH"
|
36
38
|
@current_source = nil
|
37
39
|
@opts, @type = {}, line
|
38
40
|
when " specs:"
|
39
|
-
|
41
|
+
case @type
|
42
|
+
when 'GEM'
|
43
|
+
@current_source = GemSource.new([])
|
44
|
+
@current_source.remotes << @opts['remote']
|
45
|
+
else
|
46
|
+
raise
|
47
|
+
end
|
40
48
|
@sources << @current_source
|
41
49
|
when /^ ([a-z]+): (.*)$/i
|
42
50
|
value = $2
|
@@ -63,20 +71,11 @@ module Bundler
|
|
63
71
|
name, version, pinned = $1, $2, $4
|
64
72
|
version = version.split(",").map { |d| d.strip } if version
|
65
73
|
|
66
|
-
dep =
|
74
|
+
dep = Gem::Dependency.new(name, version)
|
67
75
|
|
68
76
|
if pinned && dep.name != 'bundler'
|
69
77
|
spec = @specs.find { |s| s.name == dep.name }
|
70
78
|
dep.source = spec.source if spec
|
71
|
-
|
72
|
-
# Path sources need to know what the default name / version
|
73
|
-
# to use in the case that there are no gemspecs present. A fake
|
74
|
-
# gemspec is created based on the version set on the dependency
|
75
|
-
# TODO: Use the version from the spec instead of from the dependency
|
76
|
-
if version && version.size == 1 && version.first =~ /^\s*= (.+)\s*$/ && dep.source.is_a?(Bundler::Source::Path)
|
77
|
-
dep.source.name = name
|
78
|
-
dep.source.version = $1
|
79
|
-
end
|
80
79
|
end
|
81
80
|
|
82
81
|
@dependencies << dep
|
@@ -87,8 +86,10 @@ module Bundler
|
|
87
86
|
if line =~ %r{^ {4}#{NAME_VERSION}$}
|
88
87
|
name, version = $1, Gem::Version.new($2)
|
89
88
|
platform = $3 ? Gem::Platform.new($3) : Gem::Platform::RUBY
|
90
|
-
@current_spec =
|
91
|
-
@current_spec.
|
89
|
+
@current_spec = Gem::Specification.new
|
90
|
+
@current_spec.name = name
|
91
|
+
@current_spec.version = version
|
92
|
+
#@current_spec.source = @current_source
|
92
93
|
@specs << @current_spec
|
93
94
|
elsif line =~ %r{^ {6}#{NAME_VERSION}$}
|
94
95
|
name, version = $1, $2
|
data/lib/spitball/remote.rb
CHANGED
@@ -11,8 +11,19 @@ class Spitball::Remote
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def copy_to(path)
|
14
|
-
|
15
|
-
|
14
|
+
case path
|
15
|
+
when /\.tar\.gz$/, /\.tgz$/
|
16
|
+
data = generate_remote_tarball
|
17
|
+
File.open(path, 'w') { |f| f.write data }
|
18
|
+
else
|
19
|
+
begin
|
20
|
+
File.open('tmp.tgz', 'w') { |f| f.write data }
|
21
|
+
FileUtils.mkdir_p path
|
22
|
+
`tar xvf tmp.tgz -C #{path}`
|
23
|
+
ensure
|
24
|
+
FileUtils.rm_rf('tmp.tgz')
|
25
|
+
end
|
26
|
+
end
|
16
27
|
end
|
17
28
|
|
18
29
|
private
|
data/lib/spitball.rb
CHANGED
data/spec/spitball_spec.rb
CHANGED
@@ -29,7 +29,7 @@ describe Spitball do
|
|
29
29
|
it "returns true if the tarball has already been cached" do
|
30
30
|
@spitball.should_not be_cached
|
31
31
|
mock(@spitball).install_gem(anything, anything).times(any_times)
|
32
|
-
|
32
|
+
@spitball.cache!
|
33
33
|
@spitball.should be_cached
|
34
34
|
end
|
35
35
|
end
|
@@ -97,7 +97,7 @@ describe Spitball do
|
|
97
97
|
end
|
98
98
|
end_gemfile
|
99
99
|
|
100
|
-
@lockfile = <<-end_lockfile.strip.gsub(/\n[ ]{
|
100
|
+
@lockfile = <<-end_lockfile.strip.gsub(/\n[ ]{8}/m, "\n")
|
101
101
|
GEM
|
102
102
|
remote: http://rubygems.org/
|
103
103
|
specs:
|
@@ -127,10 +127,10 @@ describe Spitball do
|
|
127
127
|
|
128
128
|
it "should use without" do
|
129
129
|
@spitball = Spitball.new(@gemfile, @lockfile)
|
130
|
-
mock(@spitball).install_gem(anything, anything).times(
|
130
|
+
mock(@spitball).install_gem(anything, anything).times(7)
|
131
131
|
@spitball.create_bundle
|
132
132
|
@spitball = Spitball.new(@gemfile, @lockfile, :without => 'development')
|
133
|
-
mock(@spitball).install_gem(anything, anything).times(
|
133
|
+
mock(@spitball).install_gem(anything, anything).times(6)
|
134
134
|
@spitball.create_bundle
|
135
135
|
end
|
136
136
|
end
|
data/spitball.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{spitball}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Matt Freels", "Brandon Mitchell", "Joshua Hull"]
|
12
|
-
s.date = %q{2010-10-
|
12
|
+
s.date = %q{2010-10-28}
|
13
13
|
s.description = %q{Use bundler to generate gem tarball packages.}
|
14
14
|
s.email = %q{freels@twitter.com}
|
15
15
|
s.executables = ["spitball", "spitball-cache-cleanup", "spitball-server"]
|
@@ -51,19 +51,16 @@ Gem::Specification.new do |s|
|
|
51
51
|
s.specification_version = 3
|
52
52
|
|
53
53
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
54
|
-
s.add_runtime_dependency(%q<
|
55
|
-
s.add_runtime_dependency(%q<sinatra>, ["~> 1.0"])
|
54
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 1.0"])
|
56
55
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
57
56
|
s.add_development_dependency(%q<rr>, [">= 0"])
|
58
57
|
else
|
59
|
-
s.add_dependency(%q<
|
60
|
-
s.add_dependency(%q<sinatra>, ["~> 1.0"])
|
58
|
+
s.add_dependency(%q<sinatra>, [">= 1.0"])
|
61
59
|
s.add_dependency(%q<rspec>, [">= 0"])
|
62
60
|
s.add_dependency(%q<rr>, [">= 0"])
|
63
61
|
end
|
64
62
|
else
|
65
|
-
s.add_dependency(%q<
|
66
|
-
s.add_dependency(%q<sinatra>, ["~> 1.0"])
|
63
|
+
s.add_dependency(%q<sinatra>, [">= 1.0"])
|
67
64
|
s.add_dependency(%q<rspec>, [">= 0"])
|
68
65
|
s.add_dependency(%q<rr>, [">= 0"])
|
69
66
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spitball
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matt Freels
|
@@ -17,32 +17,16 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-10-
|
20
|
+
date: 2010-10-28 00:00:00 -07:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
|
-
- !ruby/object:Gem::Dependency
|
24
|
-
name: bundler
|
25
|
-
prerelease: false
|
26
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
|
-
requirements:
|
29
|
-
- - ~>
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
hash: 23
|
32
|
-
segments:
|
33
|
-
- 1
|
34
|
-
- 0
|
35
|
-
- 0
|
36
|
-
version: 1.0.0
|
37
|
-
type: :runtime
|
38
|
-
version_requirements: *id001
|
39
23
|
- !ruby/object:Gem::Dependency
|
40
24
|
name: sinatra
|
41
25
|
prerelease: false
|
42
|
-
requirement: &
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
43
27
|
none: false
|
44
28
|
requirements:
|
45
|
-
- -
|
29
|
+
- - ">="
|
46
30
|
- !ruby/object:Gem::Version
|
47
31
|
hash: 15
|
48
32
|
segments:
|
@@ -50,11 +34,11 @@ dependencies:
|
|
50
34
|
- 0
|
51
35
|
version: "1.0"
|
52
36
|
type: :runtime
|
53
|
-
version_requirements: *
|
37
|
+
version_requirements: *id001
|
54
38
|
- !ruby/object:Gem::Dependency
|
55
39
|
name: rspec
|
56
40
|
prerelease: false
|
57
|
-
requirement: &
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
58
42
|
none: false
|
59
43
|
requirements:
|
60
44
|
- - ">="
|
@@ -64,11 +48,11 @@ dependencies:
|
|
64
48
|
- 0
|
65
49
|
version: "0"
|
66
50
|
type: :development
|
67
|
-
version_requirements: *
|
51
|
+
version_requirements: *id002
|
68
52
|
- !ruby/object:Gem::Dependency
|
69
53
|
name: rr
|
70
54
|
prerelease: false
|
71
|
-
requirement: &
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
72
56
|
none: false
|
73
57
|
requirements:
|
74
58
|
- - ">="
|
@@ -78,7 +62,7 @@ dependencies:
|
|
78
62
|
- 0
|
79
63
|
version: "0"
|
80
64
|
type: :development
|
81
|
-
version_requirements: *
|
65
|
+
version_requirements: *id003
|
82
66
|
description: Use bundler to generate gem tarball packages.
|
83
67
|
email: freels@twitter.com
|
84
68
|
executables:
|