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.
@@ -0,0 +1,8 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
@@ -23,4 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_development_dependency('rspec')
25
25
  s.add_development_dependency('rcov')
26
+ s.add_development_dependency('rake')
27
+ s.add_development_dependency('guard')
28
+ s.add_development_dependency('guard-rspec')
26
29
  end
@@ -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?
@@ -23,7 +23,7 @@ module Box
23
23
  end
24
24
 
25
25
  def release
26
- Box::Release::Memory.new attributes
26
+ Box::Release::Memory.new attributes.merge(:reference_url => url)
27
27
  end
28
28
 
29
29
  end
@@ -15,6 +15,10 @@ module Box
15
15
  attr_accessor :name, :description_url, :status_updated_at
16
16
  attr_accessor :url, :checksum
17
17
 
18
+ def url=(url)
19
+ @url = normalize_url(url)
20
+ end
21
+
18
22
  def to_s
19
23
  name
20
24
  end
@@ -1,5 +1,5 @@
1
1
  module Box
2
2
  module Release
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -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: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
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: 2011-05-19 00:00:00 Z
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
- type: :runtime
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
- type: :development
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
- type: :development
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.7.2
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