sinatra-respond_to 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ .bundle
2
+ .DS_Store
3
+ pkg/
4
+ coverage/
5
+ coverage.info
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --profile
data/Gemfile.lock CHANGED
@@ -2,38 +2,42 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  sinatra-respond_to (0.5.0)
5
- sinatra (~> 1.0)
5
+ sinatra (~> 1.1)
6
6
 
7
7
  GEM
8
8
  remote: http://rubygems.org/
9
9
  specs:
10
10
  builder (2.1.2)
11
11
  diff-lcs (1.1.2)
12
- haml (3.0.17)
12
+ haml (3.0.22)
13
13
  rack (1.2.1)
14
- rack-test (0.5.4)
14
+ rack-test (0.5.6)
15
15
  rack (>= 1.0)
16
- rcov (0.9.8)
17
- rspec (2.0.0.beta.19)
18
- rspec-core (= 2.0.0.beta.19)
19
- rspec-expectations (= 2.0.0.beta.19)
20
- rspec-mocks (= 2.0.0.beta.19)
21
- rspec-core (2.0.0.beta.19)
22
- rspec-expectations (2.0.0.beta.19)
16
+ rcov (0.9.9)
17
+ rspec (2.0.1)
18
+ rspec-core (~> 2.0.1)
19
+ rspec-expectations (~> 2.0.1)
20
+ rspec-mocks (~> 2.0.1)
21
+ rspec-core (2.0.1)
22
+ rspec-expectations (2.0.1)
23
23
  diff-lcs (>= 1.1.2)
24
- rspec-mocks (2.0.0.beta.19)
25
- sinatra (1.0)
26
- rack (>= 1.0)
24
+ rspec-mocks (2.0.1)
25
+ rspec-core (~> 2.0.1)
26
+ rspec-expectations (~> 2.0.1)
27
+ sinatra (1.1.0)
28
+ rack (~> 1.1)
29
+ tilt (~> 1.1)
30
+ tilt (1.1)
27
31
 
28
32
  PLATFORMS
29
33
  ruby
30
34
 
31
35
  DEPENDENCIES
32
36
  builder (>= 2.0)
33
- bundler (~> 1.0.0.rc.5)
37
+ bundler (~> 1.0.0)
34
38
  haml (>= 2.0)
35
- rack-test (~> 0.5.4)
39
+ rack-test (~> 0.5.6)
36
40
  rcov (~> 0.9.8)
37
- rspec (~> 2.0.0.beta.19)
38
- sinatra (~> 1.0)
41
+ rspec (~> 2.0.1)
42
+ sinatra (~> 1.1)
39
43
  sinatra-respond_to!
data/README.md CHANGED
@@ -8,7 +8,6 @@ A respond\_to style Rails block for baked-in web service support in Sinatra
8
8
 
9
9
  ## FEATURES/PROBLEMS:
10
10
 
11
- * Handles setting charset for appropriate types
12
11
  * Handles setting the content type depending on what is being served
13
12
  * Automatically can adjust XMLHttpRequests to return Javascript
14
13
 
@@ -70,9 +69,6 @@ To change the character set of the response, there is a `charset` helper. For e
70
69
 
71
70
  There a few options available for configuring the default behavior of respond\_to using Sinatra's `set` utility.
72
71
 
73
- * **default\_charset - utf-8**
74
- Assumes all text documents are encoded using this character set.
75
- This can be overridden within the respond_to block for the appropriate format
76
72
  * **default\_content - :html**
77
73
  When a user vists a url without an extension, for example /post this will be
78
74
  the assumed content to serve first. Expects a symbol as used in setting content_type.
@@ -83,7 +79,9 @@ There a few options available for configuring the default behavior of respond\_t
83
79
 
84
80
  ## REQUIREMENTS:
85
81
 
86
- * sinatra 1.x
82
+ * sinatra 1.1
83
+
84
+ If you would like to use Sinatra 1.0, use version `0.5.0`.
87
85
 
88
86
  ## INSTALL:
89
87
 
@@ -93,11 +91,10 @@ There a few options available for configuring the default behavior of respond\_t
93
91
  Due to the way respond\_to works, all incoming requests have the extension striped from the request.path\_info. This causes routes like the following to fail.
94
92
 
95
93
  get '/style.css' do
96
- content_type :css, :charset => 'utf-8'
97
94
  sass :style # => renders views/style.sass
98
95
  end
99
96
 
100
- They need to be changed to the following. Note that you no longer have to set the content\_type or charset.
97
+ They need to be changed to the following.
101
98
 
102
99
  get '/style' do
103
100
  sass :style # => renders views/style.css.sass
@@ -114,7 +111,7 @@ If you want to ensure the route only gets called for css requests try this. Thi
114
111
  After checking out the source, run:
115
112
 
116
113
  $ bundle install
117
- $ rake spec:spec
114
+ $ rake spec
118
115
 
119
116
  This task will install any missing dependencies, run the tests/specs, and generate the RDoc.
120
117
 
data/Rakefile CHANGED
@@ -3,13 +3,11 @@ Bundler::GemHelper.install_tasks
3
3
 
4
4
  begin
5
5
  require 'rspec/core/rake_task'
6
- namespace :spec do
7
- desc 'Run specs'
8
- RSpec::Core::RakeTask.new do |t|
9
- t.rcov = true
10
- t.rcov_opts = ['--sort coverage --text-summary --sort-reverse']
11
- t.rcov_opts << "--comments --exclude spec,pkg,#{ENV['GEM_HOME']}"
12
- end
6
+ desc 'Run specs'
7
+ RSpec::Core::RakeTask.new do |t|
8
+ t.rcov = true
9
+ t.rcov_opts = ['--sort coverage --text-summary --sort-reverse']
10
+ t.rcov_opts << "--comments --exclude spec,pkg,#{ENV['GEM_HOME']}"
13
11
  end
14
12
  rescue LoadError
15
13
  puts 'RSpec not available, try a bundle install'
@@ -16,16 +16,9 @@ module Sinatra
16
16
  def code; 500 end
17
17
  end
18
18
 
19
- TEXT_MIME_TYPES = [:txt, :html, :js, :json, :xml, :rss, :atom, :css, :asm, :c, :cc, :conf,
20
- :csv, :cxx, :diff, :dtd, :f, :f77, :f90, :for, :gemspec, :h, :hh, :htm,
21
- :log, :mathml, :mml, :p, :pas, :pl, :pm, :py, :rake, :rb, :rdf, :rtf, :ru,
22
- :s, :sgm, :sgml, :sh, :svg, :svgz, :text, :wsdl, :xhtml, :xsl, :xslt, :yaml,
23
- :yml, :ics]
24
-
25
19
  def self.registered(app)
26
20
  app.helpers RespondTo::Helpers
27
21
 
28
- app.set :default_charset, 'utf-8'
29
22
  app.set :default_content, :html
30
23
  app.set :assume_xhr_is_js, true
31
24
 
@@ -51,7 +44,6 @@ module Sinatra
51
44
 
52
45
  format request.xhr? && options.assume_xhr_is_js? ? :js : $1 || options.default_content
53
46
  end
54
- charset options.default_charset if Sinatra::RespondTo::TEXT_MIME_TYPES.include? format
55
47
  end
56
48
  end
57
49
 
@@ -157,9 +149,8 @@ module Sinatra
157
149
  klass.class_eval do
158
150
  alias :content_type_without_save :content_type
159
151
  def content_type(*args)
160
- content_type_without_save *args
161
152
  @_format = args.first.to_sym
162
- response['Content-Type']
153
+ content_type_without_save *args
163
154
  end
164
155
  end
165
156
  end
@@ -170,7 +161,7 @@ module Sinatra
170
161
  fail "Unknown media type #{val}\nTry registering the extension with a mime type" if mime_type.nil?
171
162
 
172
163
  @_format = val.to_sym
173
- response['Content-Type'].sub!(/^[^;]+/, mime_type)
164
+ response['Content-Type'] ? response['Content-Type'].sub!(/^[^;]+/, mime_type) : content_type(@_format)
174
165
  end
175
166
 
176
167
  @_format
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module RespondTo
3
- Version = '0.5.0'
3
+ Version = '0.6.0'
4
4
  end
5
5
  end
@@ -12,16 +12,17 @@ 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.0'
15
+ s.add_runtime_dependency 'sinatra', '~> 1.1'
16
16
 
17
- s.add_development_dependency 'bundler', '~> 1.0.0.rc.5'
18
- s.add_development_dependency 'rspec', '~> 2.0.0.beta.19'
19
- s.add_development_dependency 'rack-test', '~> 0.5.4'
17
+ s.add_development_dependency 'rspec', '~> 2.0.1'
18
+ s.add_development_dependency 'rack-test', '~> 0.5.6'
20
19
  s.add_development_dependency 'rcov', '~> 0.9.8'
21
20
  s.add_development_dependency 'builder', '>= 2.0'
22
21
  s.add_development_dependency 'haml', '>= 2.0'
22
+ s.add_development_dependency 'bundler', '~> 1.0.0'
23
23
 
24
- s.test_files = Dir['spec/**/*']
25
- s.files = `git ls-files`.split("\n") - ['.gitignore', '.rspec']
24
+ s.files = `git ls-files`.split("\n")
25
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
26
27
  s.require_path = 'lib'
27
28
  end
@@ -6,10 +6,6 @@ describe Sinatra::RespondTo do
6
6
  end
7
7
 
8
8
  describe "options" do
9
- it "should initialize with :default_charset set to 'utf-8'" do
10
- TestApp.default_charset.should == 'utf-8'
11
- end
12
-
13
9
  it "should initialize with :default_content set to :html" do
14
10
  TestApp.default_content.should == :html
15
11
  end
@@ -84,24 +80,12 @@ describe Sinatra::RespondTo do
84
80
  last_response['Content-Type'].should =~ %r{#{mime_type(:xml)}}
85
81
  end
86
82
 
87
- it "should set the character set to the default character set" do
88
- get "/default_charset"
89
-
90
- last_response['Content-Type'].should =~ %r{charset=#{TestApp.default_charset}}
91
- end
92
-
93
83
  it "should honor a change in character set in block" do
94
84
  get "/iso-8859-1"
95
85
 
96
86
  last_response['Content-Type'].should =~ %r{charset=iso-8859-1}
97
87
  end
98
88
 
99
- it "should not set the character set when requesting a non text resource" do
100
- get "/resource.png"
101
-
102
- last_response['Content-Type'].should_not =~ /charset/
103
- end
104
-
105
89
  it "should return not found when path does not exist" do
106
90
  get "/nonexistant-path.txt"
107
91
 
@@ -149,23 +133,11 @@ describe Sinatra::RespondTo do
149
133
  last_response['Content-Type'].should =~ %r{#{mime_type(TestApp.default_content)}}
150
134
  end
151
135
 
152
- it "should set the default character when no extension" do
153
- get "/normal-no-respond_to"
154
-
155
- last_response['Content-Type'].should =~ %r{charset=#{TestApp.default_charset}}
156
- end
157
-
158
136
  it "should set the appropriate content type when given an extension" do
159
137
  get "/normal-no-respond_to.css"
160
138
 
161
139
  last_response['Content-Type'].should =~ %r{#{mime_type(:css)}}
162
140
  end
163
-
164
- it "should set the default charset when given an extension" do
165
- get "/normal-no-respond_to.css"
166
-
167
- last_response['Content-Type'].should =~ %r{charset=#{TestApp.default_charset}}
168
- end
169
141
  end
170
142
 
171
143
  describe "error pages in production" do
@@ -340,6 +312,10 @@ describe Sinatra::RespondTo do
340
312
  end
341
313
 
342
314
  it "should not return nil when only content_type sets headers" do
315
+ settings = mock('settings')
316
+ settings.should_receive(:default_encoding).and_return('utf-8')
317
+ stub!(:settings).and_return(settings)
318
+
343
319
  content_type :xhtml
344
320
 
345
321
  format.should == :xhtml
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-respond_to
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 5
7
+ - 6
9
8
  - 0
10
- version: 0.5.0
9
+ version: 0.6.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - Chris Hoffman
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-22 00:00:00 -05:00
17
+ date: 2010-11-04 00:00:00 -05:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,90 +25,79 @@ dependencies:
26
25
  requirements:
27
26
  - - ~>
28
27
  - !ruby/object:Gem::Version
29
- hash: 15
30
28
  segments:
31
29
  - 1
32
- - 0
33
- version: "1.0"
30
+ - 1
31
+ version: "1.1"
34
32
  type: :runtime
35
33
  version_requirements: *id001
36
34
  - !ruby/object:Gem::Dependency
37
- name: bundler
35
+ name: rspec
38
36
  prerelease: false
39
37
  requirement: &id002 !ruby/object:Gem::Requirement
40
38
  none: false
41
39
  requirements:
42
40
  - - ~>
43
41
  - !ruby/object:Gem::Version
44
- hash: 15424063
45
42
  segments:
46
- - 1
47
- - 0
43
+ - 2
48
44
  - 0
49
- - rc
50
- - 5
51
- version: 1.0.0.rc.5
45
+ - 1
46
+ version: 2.0.1
52
47
  type: :development
53
48
  version_requirements: *id002
54
49
  - !ruby/object:Gem::Dependency
55
- name: rspec
50
+ name: rack-test
56
51
  prerelease: false
57
52
  requirement: &id003 !ruby/object:Gem::Requirement
58
53
  none: false
59
54
  requirements:
60
55
  - - ~>
61
56
  - !ruby/object:Gem::Version
62
- hash: 62196421
63
57
  segments:
64
- - 2
65
- - 0
66
58
  - 0
67
- - beta
68
- - 19
69
- version: 2.0.0.beta.19
59
+ - 5
60
+ - 6
61
+ version: 0.5.6
70
62
  type: :development
71
63
  version_requirements: *id003
72
64
  - !ruby/object:Gem::Dependency
73
- name: rack-test
65
+ name: rcov
74
66
  prerelease: false
75
67
  requirement: &id004 !ruby/object:Gem::Requirement
76
68
  none: false
77
69
  requirements:
78
70
  - - ~>
79
71
  - !ruby/object:Gem::Version
80
- hash: 3
81
72
  segments:
82
73
  - 0
83
- - 5
84
- - 4
85
- version: 0.5.4
74
+ - 9
75
+ - 8
76
+ version: 0.9.8
86
77
  type: :development
87
78
  version_requirements: *id004
88
79
  - !ruby/object:Gem::Dependency
89
- name: rcov
80
+ name: builder
90
81
  prerelease: false
91
82
  requirement: &id005 !ruby/object:Gem::Requirement
92
83
  none: false
93
84
  requirements:
94
- - - ~>
85
+ - - ">="
95
86
  - !ruby/object:Gem::Version
96
- hash: 43
97
87
  segments:
88
+ - 2
98
89
  - 0
99
- - 9
100
- - 8
101
- version: 0.9.8
90
+ version: "2.0"
102
91
  type: :development
103
92
  version_requirements: *id005
104
93
  - !ruby/object:Gem::Dependency
105
- name: builder
94
+ name: haml
106
95
  prerelease: false
107
96
  requirement: &id006 !ruby/object:Gem::Requirement
108
97
  none: false
109
98
  requirements:
110
99
  - - ">="
111
100
  - !ruby/object:Gem::Version
112
- hash: 3
113
101
  segments:
114
102
  - 2
115
103
  - 0
@@ -117,18 +105,18 @@ dependencies:
117
105
  type: :development
118
106
  version_requirements: *id006
119
107
  - !ruby/object:Gem::Dependency
120
- name: haml
108
+ name: bundler
121
109
  prerelease: false
122
110
  requirement: &id007 !ruby/object:Gem::Requirement
123
111
  none: false
124
112
  requirements:
125
- - - ">="
113
+ - - ~>
126
114
  - !ruby/object:Gem::Version
127
- hash: 3
128
115
  segments:
129
- - 2
116
+ - 1
130
117
  - 0
131
- version: "2.0"
118
+ - 0
119
+ version: 1.0.0
132
120
  type: :development
133
121
  version_requirements: *id007
134
122
  description:
@@ -141,6 +129,8 @@ extensions: []
141
129
  extra_rdoc_files: []
142
130
 
143
131
  files:
132
+ - .gitignore
133
+ - .rspec
144
134
  - Changelog.rdoc
145
135
  - Gemfile
146
136
  - Gemfile.lock
@@ -174,7 +164,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
174
164
  requirements:
175
165
  - - ">="
176
166
  - !ruby/object:Gem::Version
177
- hash: 3
178
167
  segments:
179
168
  - 0
180
169
  version: "0"
@@ -183,7 +172,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
172
  requirements:
184
173
  - - ">="
185
174
  - !ruby/object:Gem::Version
186
- hash: 23
187
175
  segments:
188
176
  - 1
189
177
  - 3
@@ -198,6 +186,7 @@ specification_version: 3
198
186
  summary: A respond_to style Rails block for baked-in web service support in Sinatra
199
187
  test_files:
200
188
  - spec/app/production_error_app.rb
189
+ - spec/app/public/static folder/.keep
201
190
  - spec/app/public/static.txt
202
191
  - spec/app/test_app.rb
203
192
  - spec/app/unreachable_static.txt