sinatra-respond_to 0.7.0 → 0.8.0
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/Changelog.rdoc +4 -0
- data/Gemfile.lock +19 -14
- data/Rakefile +2 -3
- data/lib/sinatra/respond_to.rb +23 -32
- data/lib/sinatra/respond_to/version.rb +1 -1
- data/sinatra-respond_to.gemspec +3 -2
- data/spec/app/test_app.rb +3 -2
- data/spec/extension_spec.rb +3 -3
- metadata +81 -76
data/Changelog.rdoc
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,40 +1,45 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sinatra-respond_to (0.
|
5
|
-
sinatra (~> 1.
|
4
|
+
sinatra-respond_to (0.8.0)
|
5
|
+
sinatra (~> 1.3)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
builder (
|
11
|
-
diff-lcs (1.1.
|
12
|
-
haml (3.
|
13
|
-
rack (1.
|
14
|
-
rack-
|
10
|
+
builder (3.0.0)
|
11
|
+
diff-lcs (1.1.3)
|
12
|
+
haml (3.1.3)
|
13
|
+
rack (1.3.5)
|
14
|
+
rack-protection (1.1.4)
|
15
|
+
rack
|
16
|
+
rack-test (0.5.7)
|
15
17
|
rack (>= 1.0)
|
16
|
-
rcov (0.9.
|
18
|
+
rcov (0.9.11)
|
17
19
|
rspec (2.5.0)
|
18
20
|
rspec-core (~> 2.5.0)
|
19
21
|
rspec-expectations (~> 2.5.0)
|
20
22
|
rspec-mocks (~> 2.5.0)
|
21
|
-
rspec-core (2.5.
|
23
|
+
rspec-core (2.5.2)
|
22
24
|
rspec-expectations (2.5.0)
|
23
25
|
diff-lcs (~> 1.1.2)
|
24
26
|
rspec-mocks (2.5.0)
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
sass (3.1.10)
|
28
|
+
sinatra (1.3.1)
|
29
|
+
rack (~> 1.3, >= 1.3.4)
|
30
|
+
rack-protection (~> 1.1, >= 1.1.2)
|
31
|
+
tilt (~> 1.3, >= 1.3.3)
|
32
|
+
tilt (1.3.3)
|
29
33
|
|
30
34
|
PLATFORMS
|
31
35
|
ruby
|
32
36
|
|
33
37
|
DEPENDENCIES
|
34
38
|
builder (>= 2.0)
|
35
|
-
bundler (~> 1.
|
39
|
+
bundler (~> 1.1.rc)
|
36
40
|
haml (>= 3.0)
|
37
41
|
rack-test (~> 0.5.6)
|
38
42
|
rcov (~> 0.9.8)
|
39
43
|
rspec (~> 2.5.0)
|
44
|
+
sass (>= 3.0)
|
40
45
|
sinatra-respond_to!
|
data/Rakefile
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
require '
|
2
|
-
require 'bundler'
|
1
|
+
require 'bundler/setup'
|
3
2
|
Bundler::GemHelper.install_tasks
|
4
3
|
|
5
4
|
begin
|
6
5
|
require 'rspec/core/rake_task'
|
7
6
|
desc 'Run specs'
|
8
7
|
RSpec::Core::RakeTask.new do |t|
|
9
|
-
t.rcov = true
|
8
|
+
t.rcov = true unless RUBY_VERSION =~ /^1\.9/
|
10
9
|
t.rcov_opts = ['--sort coverage --text-summary --sort-reverse']
|
11
10
|
t.rcov_opts << "--comments --exclude spec,pkg,#{ENV['GEM_HOME']}"
|
12
11
|
end
|
data/lib/sinatra/respond_to.rb
CHANGED
@@ -13,7 +13,7 @@ module Sinatra
|
|
13
13
|
module RespondTo
|
14
14
|
class UnhandledFormat < Sinatra::NotFound; end
|
15
15
|
class MissingTemplate < Sinatra::NotFound
|
16
|
-
def code;
|
16
|
+
def code; 404 end
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.registered(app)
|
@@ -36,7 +36,7 @@ module Sinatra
|
|
36
36
|
# Let through sinatra image urls in development
|
37
37
|
next if self.class.development? && request.path_info =~ %r{/__sinatra__/.*?.png}
|
38
38
|
|
39
|
-
unless
|
39
|
+
unless settings.static? && settings.public_folder? && (request.get? || request.head?) && static_file?(request.path_info)
|
40
40
|
if request.params.has_key? 'format'
|
41
41
|
format params['format']
|
42
42
|
else
|
@@ -46,12 +46,12 @@ module Sinatra
|
|
46
46
|
# for.
|
47
47
|
request.path_info = request.path_info.sub %r{\.([^\./]+)$}, ''
|
48
48
|
|
49
|
-
format $1 || (request.xhr? &&
|
49
|
+
format $1 || (request.xhr? && settings.assume_xhr_is_js? ? :js : settings.default_content)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
|
54
|
+
app.configure :development do |dev|
|
55
55
|
dev.error UnhandledFormat do
|
56
56
|
content_type :html, :charset => 'utf-8'
|
57
57
|
|
@@ -79,7 +79,7 @@ module Sinatra
|
|
79
79
|
|
80
80
|
dev.error MissingTemplate do
|
81
81
|
content_type :html, :charset => 'utf-8'
|
82
|
-
response.status =
|
82
|
+
response.status = 500
|
83
83
|
|
84
84
|
engine = request.env['sinatra.error'].message.split('.').last
|
85
85
|
engine = 'haml' unless ['haml', 'builder', 'erb'].include? engine
|
@@ -124,39 +124,30 @@ module Sinatra
|
|
124
124
|
</html>
|
125
125
|
HTML
|
126
126
|
end
|
127
|
-
|
128
|
-
end
|
129
|
-
|
130
|
-
app.class_eval do
|
131
|
-
# Changes in 1.0 Sinatra reuse render for layout so we store the
|
132
|
-
# original value to tell us if this is an automatic attempt to do a
|
133
|
-
# layout call. If it is, it might fail with Errno::ENOENT and we want
|
134
|
-
# to pass that back to sinatra since it isn't a MissingTemplate error
|
135
|
-
alias :render_without_format :render
|
136
|
-
def render(*args, &block)
|
137
|
-
assumed_layout = args[1] == :layout
|
138
|
-
args[1] = "#{args[1]}.#{format}".to_sym if args[1].is_a?(::Symbol)
|
139
|
-
render_without_format *args, &block
|
140
|
-
rescue Errno::ENOENT => e
|
141
|
-
raise MissingTemplate, "#{args[1]}.#{args[0]}" unless assumed_layout
|
142
|
-
raise e
|
143
|
-
end
|
144
|
-
private :render
|
145
127
|
end
|
146
128
|
end
|
147
129
|
|
148
130
|
module Helpers
|
131
|
+
# Changes in 1.0 Sinatra reuse render for layout so we store the
|
132
|
+
# original value to tell us if this is an automatic attempt to do a
|
133
|
+
# layout call. If it is, it might fail with Errno::ENOENT and we want
|
134
|
+
# to pass that back to sinatra since it isn't a MissingTemplate error
|
135
|
+
def render(*args, &block)
|
136
|
+
assumed_layout = args[1] == :layout
|
137
|
+
args[1] = "#{args[1]}.#{format}".to_sym if args[1].is_a?(::Symbol)
|
138
|
+
super *args, &block
|
139
|
+
rescue Errno::ENOENT
|
140
|
+
raise MissingTemplate, "#{args[1]}.#{args[0]}" unless assumed_layout
|
141
|
+
raise # Reraise original error
|
142
|
+
end
|
143
|
+
private :render
|
144
|
+
|
149
145
|
# Patch the content_type function to remember the set type
|
150
146
|
# This helps cut down on time in the format helper so it
|
151
147
|
# doesn't have to do a reverse lookup on the header
|
152
|
-
def
|
153
|
-
|
154
|
-
|
155
|
-
def content_type(*args)
|
156
|
-
@_format = args.first.to_sym
|
157
|
-
content_type_without_save *args
|
158
|
-
end
|
159
|
-
end
|
148
|
+
def content_type(*args)
|
149
|
+
@_format = args.first.to_sym
|
150
|
+
super
|
160
151
|
end
|
161
152
|
|
162
153
|
def format(val=nil)
|
@@ -174,7 +165,7 @@ module Sinatra
|
|
174
165
|
# This is mostly just a helper so request.path_info isn't changed when
|
175
166
|
# serving files from the public directory
|
176
167
|
def static_file?(path)
|
177
|
-
public_dir = File.expand_path(
|
168
|
+
public_dir = File.expand_path(settings.public_folder)
|
178
169
|
path = File.expand_path(File.join(public_dir, unescape(path)))
|
179
170
|
|
180
171
|
path[0, public_dir.length] == public_dir && File.file?(path)
|
data/sinatra-respond_to.gemspec
CHANGED
@@ -12,14 +12,15 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.required_rubygems_version = '>= 1.3.6'
|
14
14
|
|
15
|
-
s.add_runtime_dependency 'sinatra', '~> 1.
|
15
|
+
s.add_runtime_dependency 'sinatra', '~> 1.3'
|
16
16
|
|
17
17
|
s.add_development_dependency 'rspec', '~> 2.5.0'
|
18
18
|
s.add_development_dependency 'rack-test', '~> 0.5.6'
|
19
19
|
s.add_development_dependency 'rcov', '~> 0.9.8'
|
20
20
|
s.add_development_dependency 'builder', '>= 2.0'
|
21
21
|
s.add_development_dependency 'haml', '>= 3.0'
|
22
|
-
s.add_development_dependency '
|
22
|
+
s.add_development_dependency 'sass', '>= 3.0'
|
23
|
+
s.add_development_dependency 'bundler', '~> 1.1.rc'
|
23
24
|
|
24
25
|
s.files = `git ls-files`.split("\n")
|
25
26
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
data/spec/app/test_app.rb
CHANGED
@@ -8,7 +8,8 @@ class TestApp < Sinatra::Base
|
|
8
8
|
register Sinatra::RespondTo
|
9
9
|
|
10
10
|
set :views, File.join(File.dirname(__FILE__), 'views')
|
11
|
-
set :
|
11
|
+
set :public_folder, File.join(File.dirname(__FILE__), 'public')
|
12
|
+
set :show_exceptions, false
|
12
13
|
|
13
14
|
get '/resource' do
|
14
15
|
respond_to do |wants|
|
@@ -52,4 +53,4 @@ class TestApp < Sinatra::Base
|
|
52
53
|
wants.css { sass :missing }
|
53
54
|
end
|
54
55
|
end
|
55
|
-
end
|
56
|
+
end
|
data/spec/extension_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe Sinatra::RespondTo do
|
|
5
5
|
::Sinatra::Base.mime_type(sym)
|
6
6
|
end
|
7
7
|
|
8
|
-
describe "
|
8
|
+
describe "settings" do
|
9
9
|
it "should initialize with :default_content set to :html" do
|
10
10
|
TestApp.default_content.should == :html
|
11
11
|
end
|
@@ -197,7 +197,7 @@ describe Sinatra::RespondTo do
|
|
197
197
|
it "should show the /__sinatra__/500.png" do
|
198
198
|
get '/missing-template'
|
199
199
|
|
200
|
-
last_response.body.should =~ %r{src='/__sinatra__/500.png
|
200
|
+
last_response.body.should =~ %r{src=(?<quote>['"'])/__sinatra__/500.png\k<quote>}
|
201
201
|
end
|
202
202
|
|
203
203
|
it "should provide a contextual code example for the template engine" do
|
@@ -341,7 +341,7 @@ describe Sinatra::RespondTo do
|
|
341
341
|
TestApp.disable :static
|
342
342
|
end
|
343
343
|
|
344
|
-
def
|
344
|
+
def settings
|
345
345
|
TestApp
|
346
346
|
end
|
347
347
|
|
metadata
CHANGED
@@ -1,105 +1,111 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-respond_to
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.7.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Chris Hoffman
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: sinatra
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70288457045960 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
18
|
+
requirements:
|
22
19
|
- - ~>
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *70288457045960
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70288457044660 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
29
|
+
requirements:
|
33
30
|
- - ~>
|
34
|
-
- !ruby/object:Gem::Version
|
31
|
+
- !ruby/object:Gem::Version
|
35
32
|
version: 2.5.0
|
36
33
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rack-test
|
40
34
|
prerelease: false
|
41
|
-
|
35
|
+
version_requirements: *70288457044660
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rack-test
|
38
|
+
requirement: &70288457043920 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
|
-
requirements:
|
40
|
+
requirements:
|
44
41
|
- - ~>
|
45
|
-
- !ruby/object:Gem::Version
|
42
|
+
- !ruby/object:Gem::Version
|
46
43
|
version: 0.5.6
|
47
44
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: rcov
|
51
45
|
prerelease: false
|
52
|
-
|
46
|
+
version_requirements: *70288457043920
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rcov
|
49
|
+
requirement: &70288457043240 !ruby/object:Gem::Requirement
|
53
50
|
none: false
|
54
|
-
requirements:
|
51
|
+
requirements:
|
55
52
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
53
|
+
- !ruby/object:Gem::Version
|
57
54
|
version: 0.9.8
|
58
55
|
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: builder
|
62
56
|
prerelease: false
|
63
|
-
|
57
|
+
version_requirements: *70288457043240
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: builder
|
60
|
+
requirement: &70288457042560 !ruby/object:Gem::Requirement
|
64
61
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version:
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '2.0'
|
69
66
|
type: :development
|
70
|
-
|
71
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70288457042560
|
69
|
+
- !ruby/object:Gem::Dependency
|
72
70
|
name: haml
|
71
|
+
requirement: &70288457041720 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3.0'
|
77
|
+
type: :development
|
73
78
|
prerelease: false
|
74
|
-
|
79
|
+
version_requirements: *70288457041720
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: sass
|
82
|
+
requirement: &70288457040280 !ruby/object:Gem::Requirement
|
75
83
|
none: false
|
76
|
-
requirements:
|
77
|
-
- -
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version:
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '3.0'
|
80
88
|
type: :development
|
81
|
-
version_requirements: *id006
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: bundler
|
84
89
|
prerelease: false
|
85
|
-
|
90
|
+
version_requirements: *70288457040280
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: bundler
|
93
|
+
requirement: &70288457038780 !ruby/object:Gem::Requirement
|
86
94
|
none: false
|
87
|
-
requirements:
|
95
|
+
requirements:
|
88
96
|
- - ~>
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: 1.
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 1.1.rc
|
91
99
|
type: :development
|
92
|
-
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70288457038780
|
93
102
|
description:
|
94
|
-
email:
|
103
|
+
email:
|
95
104
|
- cehoffman@gmail.com
|
96
105
|
executables: []
|
97
|
-
|
98
106
|
extensions: []
|
99
|
-
|
100
107
|
extra_rdoc_files: []
|
101
|
-
|
102
|
-
files:
|
108
|
+
files:
|
103
109
|
- .gitignore
|
104
110
|
- .rspec
|
105
111
|
- Changelog.rdoc
|
@@ -121,35 +127,34 @@ files:
|
|
121
127
|
- spec/app/views/resource.xml.builder
|
122
128
|
- spec/extension_spec.rb
|
123
129
|
- spec/spec_helper.rb
|
124
|
-
has_rdoc: true
|
125
130
|
homepage: http://github.com/cehoffman/sinatra-respond_to
|
126
131
|
licenses: []
|
127
|
-
|
128
132
|
post_install_message:
|
129
133
|
rdoc_options: []
|
130
|
-
|
131
|
-
require_paths:
|
134
|
+
require_paths:
|
132
135
|
- lib
|
133
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
134
137
|
none: false
|
135
|
-
requirements:
|
136
|
-
- -
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version:
|
139
|
-
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
segments:
|
143
|
+
- 0
|
144
|
+
hash: 890127812341403240
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
146
|
none: false
|
141
|
-
requirements:
|
142
|
-
- -
|
143
|
-
- !ruby/object:Gem::Version
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
144
150
|
version: 1.3.6
|
145
151
|
requirements: []
|
146
|
-
|
147
152
|
rubyforge_project:
|
148
|
-
rubygems_version: 1.
|
153
|
+
rubygems_version: 1.8.11
|
149
154
|
signing_key:
|
150
155
|
specification_version: 3
|
151
156
|
summary: A respond_to style Rails block for baked-in web service support in Sinatra
|
152
|
-
test_files:
|
157
|
+
test_files:
|
153
158
|
- spec/app/production_error_app.rb
|
154
159
|
- spec/app/public/static folder/.keep
|
155
160
|
- spec/app/public/static.txt
|