rasti-web 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7421139482ecc1b7964db860e548a5805eb4fc66
4
- data.tar.gz: 573b00b2c7da729862711044b6a62cad8bc3bad0
3
+ metadata.gz: 8b24dfc486a03d7e1c5e7c535f631311ccb3d263
4
+ data.tar.gz: 3ca07ae28c45cf51ffa6e4fe4acc5be0d114b159
5
5
  SHA512:
6
- metadata.gz: 493938ffdf31f07406316a026096a00bf7ba3554c50dfbe4ec820d3676a663520343a40fd10521d3d968adda48f78b1a770375e8b5bb92098891a439938b0116
7
- data.tar.gz: dc2e21807b7ceb4f6be33f21352f262444bf07f111c308b0c6de95876f61053b40200fe5c98fe77f168a68aa9c58ff34703a6bc82ba9058f8766bff6596f4de0
6
+ metadata.gz: 301968af1068afca49f4cf1198a7b44994f4665f5cd22d6fbaf0f8d73f4f29285296ba982d2369471801429525c18f3622bd05091555ec6c0ce81a01de13b5e5
7
+ data.tar.gz: fac959563b845b652af63c2cb779328386ecc8f5c9fa0561602efd5fd1838d80ed7f84c0e3d3b41c2ec44821e558eea11b16befb39b67626db9615ee388a1194
@@ -40,6 +40,15 @@ module Rasti
40
40
  script
41
41
  end
42
42
 
43
+ def file(filename, *args)
44
+ content_type = MIME::Types.of(filename).first.content_type
45
+ body = File.read filename
46
+
47
+ respond_with extract_status(args),
48
+ extract_headers(args).merge('Content-Type' => content_type),
49
+ body
50
+ end
51
+
43
52
  def partial(template, locals={})
44
53
  response['Content-Type'] = 'text/html'
45
54
  response.write view_context.render(template, locals)
@@ -1,5 +1,5 @@
1
1
  module Rasti
2
2
  module Web
3
- VERSION = '0.0.1'
3
+ VERSION = '0.0.2'
4
4
  end
5
5
  end
data/lib/rasti/web.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'rack'
2
2
  require 'tilt'
3
3
  require 'json'
4
+ require 'mime-types'
4
5
  require 'class_config'
5
6
  require 'forwardable'
6
7
 
data/rasti-web.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency 'rack'
22
22
  spec.add_dependency 'tilt'
23
+ spec.add_dependency 'mime-types'
23
24
  spec.add_dependency 'class_config', '~> 0.0.2'
24
25
 
25
26
  spec.add_development_dependency 'bundler', '~> 1.6'
@@ -27,6 +28,6 @@ Gem::Specification.new do |spec|
27
28
  spec.add_development_dependency 'minitest', '~> 4.7'
28
29
  spec.add_development_dependency 'turn', '~> 0.9'
29
30
  spec.add_development_dependency 'simplecov'
30
- spec.add_development_dependency 'pry'
31
+ spec.add_development_dependency 'pry-nav'
31
32
  spec.add_development_dependency 'rack-test'
32
33
  end
@@ -3,6 +3,7 @@ require 'rasti-web'
3
3
  require 'minitest/autorun'
4
4
  require 'turn'
5
5
  require 'rack/test'
6
+ require 'pry-nav'
6
7
 
7
8
  Turn.config do |c|
8
9
  c.format = :pretty
data/spec/render_spec.rb CHANGED
@@ -204,6 +204,46 @@ describe Rasti::Web::Render do
204
204
 
205
205
  end
206
206
 
207
+ describe 'File' do
208
+
209
+ let(:filename) { File.expand_path '../sample_file.zip', __FILE__ }
210
+
211
+ it 'Body' do
212
+ render.file filename
213
+
214
+ response.status.must_equal 200
215
+ response['Content-Type'].must_equal 'application/zip'
216
+ response.body.must_equal [File.read(filename)]
217
+ end
218
+
219
+ it 'Body and status' do
220
+ render.file filename, 206
221
+
222
+ response.status.must_equal 206
223
+ response['Content-Type'].must_equal 'application/zip'
224
+ response.body.must_equal [File.read(filename)]
225
+ end
226
+
227
+ it 'Body and headers' do
228
+ render.file filename, 'Content-Disposition' => 'attachment; filename=test_file.zip'
229
+
230
+ response.status.must_equal 200
231
+ response['Content-Type'].must_equal 'application/zip'
232
+ response['Content-Disposition'].must_equal 'attachment; filename=test_file.zip'
233
+ response.body.must_equal [File.read(filename)]
234
+ end
235
+
236
+ it 'Body, status and headers' do
237
+ render.file filename, 206, 'Content-Disposition' => 'attachment; filename=test_file.zip'
238
+
239
+ response.status.must_equal 206
240
+ response['Content-Type'].must_equal 'application/zip'
241
+ response['Content-Disposition'].must_equal 'attachment; filename=test_file.zip'
242
+ response.body.must_equal [File.read(filename)]
243
+ end
244
+
245
+ end
246
+
207
247
  it 'Partial' do
208
248
  render.partial 'context_and_locals', title: 'Welcome', text: 'Hello world'
209
249
 
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rasti-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Naiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-10 00:00:00.000000000 Z
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mime-types
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: class_config
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +137,7 @@ dependencies:
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: pry
140
+ name: pry-nav
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - '>='
@@ -188,6 +202,7 @@ files:
188
202
  - spec/request_spec.rb
189
203
  - spec/route_spec.rb
190
204
  - spec/router_spec.rb
205
+ - spec/sample_file.zip
191
206
  - spec/template_spec.rb
192
207
  - spec/views/context_and_locals.erb
193
208
  - spec/views/context_method.erb
@@ -229,6 +244,7 @@ test_files:
229
244
  - spec/request_spec.rb
230
245
  - spec/route_spec.rb
231
246
  - spec/router_spec.rb
247
+ - spec/sample_file.zip
232
248
  - spec/template_spec.rb
233
249
  - spec/views/context_and_locals.erb
234
250
  - spec/views/context_method.erb