box-release 0.0.3 → 0.0.4
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/Guardfile +8 -0
- data/box-release.gemspec +3 -0
- data/lib/box/release/base.rb +10 -0
- data/lib/box/release/loader.rb +1 -1
- data/lib/box/release/memory.rb +4 -0
- data/lib/box/release/version.rb +1 -1
- data/spec/box/release/base_spec.rb +25 -1
- data/spec/box/release/loader_spec.rb +6 -1
- data/spec/box/release/memory_spec.rb +11 -1
- metadata +54 -11
data/Guardfile
ADDED
data/box-release.gemspec
CHANGED
data/lib/box/release/base.rb
CHANGED
@@ -73,6 +73,16 @@ module Box
|
|
73
73
|
# @presenter ||= ReleasePresenter.new self
|
74
74
|
# end
|
75
75
|
|
76
|
+
attr_accessor :reference_url
|
77
|
+
|
78
|
+
def normalize_url(url)
|
79
|
+
if reference_url and (uri = URI(url)).relative?
|
80
|
+
URI(reference_url).merge(uri).to_s
|
81
|
+
else
|
82
|
+
url
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
76
86
|
def download
|
77
87
|
logger.info "Download #{url} into #{file}"
|
78
88
|
# return if self.status.downloaded?
|
data/lib/box/release/loader.rb
CHANGED
data/lib/box/release/memory.rb
CHANGED
data/lib/box/release/version.rb
CHANGED
@@ -20,7 +20,7 @@ describe Box::Release::Base do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
describe "#download" do
|
25
25
|
|
26
26
|
before(:each) do
|
@@ -126,4 +126,28 @@ describe Box::Release::Base do
|
|
126
126
|
|
127
127
|
end
|
128
128
|
|
129
|
+
describe "#normalize_url" do
|
130
|
+
|
131
|
+
context 'when url is relative' do
|
132
|
+
|
133
|
+
it "should use reference_url if defined" do
|
134
|
+
subject.reference_url = "http://dummy/path/to/latest.yml"
|
135
|
+
subject.normalize_url("release").should == "http://dummy/path/to/release"
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should not change url if reference_url is not defined" do
|
139
|
+
subject.reference_url = nil
|
140
|
+
subject.normalize_url("release").should == "release"
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
let(:absolute_url) { "http://dummy/path/to/release" }
|
146
|
+
|
147
|
+
it "should change an absolute url" do
|
148
|
+
subject.normalize_url(absolute_url).should == absolute_url
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|
152
|
+
|
129
153
|
end
|
@@ -26,13 +26,18 @@ describe Box::Release::Loader do
|
|
26
26
|
|
27
27
|
describe "#release" do
|
28
28
|
|
29
|
-
let(:loader) { Box::Release::Loader.new("dummy") }
|
29
|
+
let(:loader) { Box::Release::Loader.new("http://dummy") }
|
30
30
|
|
31
31
|
it "should create a new Release with attributes" do
|
32
32
|
loader.stub :attributes => { "checksum" => "dummy" }
|
33
33
|
loader.release.checksum.should == "dummy"
|
34
34
|
end
|
35
35
|
|
36
|
+
it "should use Loader url as reference_url" do
|
37
|
+
loader.stub :attributes => {}
|
38
|
+
loader.release.reference_url.should == loader.url
|
39
|
+
end
|
40
|
+
|
36
41
|
end
|
37
42
|
|
38
43
|
describe ".release_at" do
|
@@ -2,7 +2,17 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Box::Release::Memory do
|
4
4
|
|
5
|
-
|
5
|
+
describe "#url=" do
|
6
|
+
|
7
|
+
let(:url) { "dummy" }
|
8
|
+
let(:normalized_url) { "http://path/to/dummy" }
|
9
|
+
|
10
|
+
it "should normalize the given url" do
|
11
|
+
subject.should_receive(:normalize_url).with(url).and_return(normalized_url)
|
12
|
+
subject.url = url
|
13
|
+
subject.url.should == normalized_url
|
14
|
+
end
|
6
15
|
|
16
|
+
end
|
7
17
|
|
8
18
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: box-release
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alban Peignier
|
@@ -16,11 +16,11 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2012-02-22 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name: activesupport
|
23
22
|
prerelease: false
|
23
|
+
type: :runtime
|
24
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
@@ -30,11 +30,11 @@ dependencies:
|
|
30
30
|
segments:
|
31
31
|
- 0
|
32
32
|
version: "0"
|
33
|
-
|
33
|
+
name: activesupport
|
34
34
|
version_requirements: *id001
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name: rspec
|
37
36
|
prerelease: false
|
37
|
+
type: :development
|
38
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
@@ -44,11 +44,11 @@ dependencies:
|
|
44
44
|
segments:
|
45
45
|
- 0
|
46
46
|
version: "0"
|
47
|
-
|
47
|
+
name: rspec
|
48
48
|
version_requirements: *id002
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name: rcov
|
51
50
|
prerelease: false
|
51
|
+
type: :development
|
52
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
@@ -58,8 +58,50 @@ dependencies:
|
|
58
58
|
segments:
|
59
59
|
- 0
|
60
60
|
version: "0"
|
61
|
-
|
61
|
+
name: rcov
|
62
62
|
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
prerelease: false
|
65
|
+
type: :development
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
75
|
+
name: rake
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
prerelease: false
|
79
|
+
type: :development
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
89
|
+
name: guard
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
prerelease: false
|
93
|
+
type: :development
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
103
|
+
name: guard-rspec
|
104
|
+
version_requirements: *id006
|
63
105
|
description: ""
|
64
106
|
email:
|
65
107
|
- alban@tryphon.eu
|
@@ -75,6 +117,7 @@ files:
|
|
75
117
|
- COPYING
|
76
118
|
- COPYRIGHT
|
77
119
|
- Gemfile
|
120
|
+
- Guardfile
|
78
121
|
- Rakefile
|
79
122
|
- autotest/discover.rb
|
80
123
|
- bin/box-release
|
@@ -125,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
168
|
requirements: []
|
126
169
|
|
127
170
|
rubyforge_project: box-release
|
128
|
-
rubygems_version: 1.
|
171
|
+
rubygems_version: 1.8.15
|
129
172
|
signing_key:
|
130
173
|
specification_version: 3
|
131
174
|
summary: Check, download and install Tryphon boxes releases
|