box-release 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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