padrino-core 0.9.21 → 0.9.22
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/LICENSE +1 -1
- data/README.rdoc +1 -1
- data/lib/padrino-core/application.rb +4 -3
- data/lib/padrino-core/application/routing.rb +16 -3
- data/lib/padrino-core/locale/ja.yml +30 -0
- data/lib/padrino-core/version.rb +1 -1
- data/padrino-core.gemspec +2 -2
- data/test/test_application.rb +3 -2
- data/test/test_routing.rb +29 -9
- metadata +7 -6
data/LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -6,7 +6,7 @@ module Padrino
|
|
6
6
|
# Subclasses of this become independent Padrino applications (stemming from Sinatra::Application)
|
7
7
|
# These subclassed applications can be easily mounted into other Padrino applications as well.
|
8
8
|
#
|
9
|
-
class Application < Sinatra::
|
9
|
+
class Application < Sinatra::Base
|
10
10
|
register Padrino::Routing # Support for advanced routing, controllers, url_for
|
11
11
|
register Padrino::Rendering # Support for enhanced rendering with template detection
|
12
12
|
|
@@ -131,6 +131,7 @@ module Padrino
|
|
131
131
|
set :raise_errors, true if development?
|
132
132
|
set :reload, true if development?
|
133
133
|
set :logging, false
|
134
|
+
set :padrino_logging, true
|
134
135
|
set :sessions, false
|
135
136
|
set :public, Proc.new { Padrino.root('public', self.uri_root) }
|
136
137
|
# Padrino specific
|
@@ -196,7 +197,7 @@ module Padrino
|
|
196
197
|
# Requires the Padrino middleware
|
197
198
|
#
|
198
199
|
def register_initializers
|
199
|
-
use Padrino::Logger::Rack if Padrino.logger && Padrino.logger.level == 0
|
200
|
+
use Padrino::Logger::Rack if Padrino.logger && (Padrino.logger.level == 0 && padrino_logging?)
|
200
201
|
use Padrino::Reloader::Rack if reload?
|
201
202
|
use Rack::Flash if flash? && sessions?
|
202
203
|
end
|
@@ -234,4 +235,4 @@ module Padrino
|
|
234
235
|
}.map! { |line| line.gsub(/^\.\//, '') }
|
235
236
|
end
|
236
237
|
end # Application
|
237
|
-
end # Padrino
|
238
|
+
end # Padrino
|
@@ -502,10 +502,17 @@ module Padrino
|
|
502
502
|
@_use_format = true
|
503
503
|
condition do
|
504
504
|
mime_types = types.map { |t| mime_type(t) }
|
505
|
-
accepts = request.accept.map { |a| a.split(";")[0].strip }
|
506
|
-
matching_types = (accepts & mime_types)
|
507
505
|
request.path_info =~ /\.([^\.\/]+)$/
|
508
506
|
url_format = $1.to_sym if $1
|
507
|
+
accepts = request.accept.map { |a| a.split(";")[0].strip }
|
508
|
+
|
509
|
+
# per rfc2616-sec14:
|
510
|
+
# Assume */* if no ACCEPT header is given.
|
511
|
+
if accepts.empty? || accepts.any? { |a| a == "*/*" }
|
512
|
+
matching_types = mime_types.slice(0,1)
|
513
|
+
else
|
514
|
+
matching_types = (accepts & mime_types)
|
515
|
+
end
|
509
516
|
|
510
517
|
if params[:format]
|
511
518
|
accept_format = params[:format]
|
@@ -517,9 +524,15 @@ module Padrino
|
|
517
524
|
matched_format = types.include?(:any) ||
|
518
525
|
types.include?(accept_format) ||
|
519
526
|
types.include?(url_format) ||
|
520
|
-
accepts.any? { |a| a == "*/*" } ||
|
521
527
|
((!url_format) && request.accept.empty? && types.include?(:html))
|
522
528
|
|
529
|
+
# per rfc2616-sec14:
|
530
|
+
# answer with 406 if accept is given but types to not match any
|
531
|
+
# provided type
|
532
|
+
if !url_format && !accepts.empty? && !matched_format
|
533
|
+
halt 406
|
534
|
+
end
|
535
|
+
|
523
536
|
if matched_format
|
524
537
|
@_content_type = url_format || accept_format || :html
|
525
538
|
content_type(@_content_type, :charset => 'utf-8')
|
@@ -0,0 +1,30 @@
|
|
1
|
+
ja:
|
2
|
+
date:
|
3
|
+
formats:
|
4
|
+
# Use the strftime parameters for formats.
|
5
|
+
# When no format has been given, it uses default.
|
6
|
+
# You can provide other formats here if you like!
|
7
|
+
default: "%Y/%m/%d"
|
8
|
+
short: "%m/%d"
|
9
|
+
long: "%Y年%m月%d日"
|
10
|
+
|
11
|
+
day_names: [日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日]
|
12
|
+
abbr_day_names: [日, 月, 火, 水, 木, 金, 土]
|
13
|
+
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
|
14
|
+
abbr_month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
|
15
|
+
order: [ :year, :month, :day ]
|
16
|
+
|
17
|
+
time:
|
18
|
+
formats:
|
19
|
+
default: "%Y/%m/%d %H:%M:%S"
|
20
|
+
short: "%m/%d %H:%M"
|
21
|
+
long: "%Y年%m月%d日 %H時%M分%S秒"
|
22
|
+
am: "午前"
|
23
|
+
pm: "午後"
|
24
|
+
|
25
|
+
# Used in array.to_sentence.
|
26
|
+
support:
|
27
|
+
array:
|
28
|
+
words_connector: ", "
|
29
|
+
two_words_connector: " と "
|
30
|
+
last_word_connector: ", と "
|
data/lib/padrino-core/version.rb
CHANGED
data/padrino-core.gemspec
CHANGED
@@ -17,9 +17,9 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.files = %w(.document .gitignore LICENSE README.rdoc Rakefile padrino-core.gemspec) + Dir.glob("{bin,lib,test}/**/*")
|
18
18
|
s.rdoc_options = ["--charset=UTF-8"]
|
19
19
|
s.require_path = "lib"
|
20
|
-
s.add_dependency("sinatra", "
|
20
|
+
s.add_dependency("sinatra", "~> 1.1.0")
|
21
21
|
s.add_dependency("http_router", "~> 0.5.4")
|
22
22
|
s.add_dependency("thor", ">=0.14.3")
|
23
23
|
s.add_dependency("activesupport", ">= 3.0.0")
|
24
24
|
s.add_dependency("tzinfo")
|
25
|
-
end
|
25
|
+
end
|
data/test/test_application.rb
CHANGED
@@ -20,6 +20,7 @@ class TestApplication < Test::Unit::TestCase
|
|
20
20
|
assert_equal Padrino.root("views"), PadrinoTestApp.views
|
21
21
|
assert PadrinoTestApp.raise_errors
|
22
22
|
assert !PadrinoTestApp.logging
|
23
|
+
assert PadrinoTestApp.padrino_logging
|
23
24
|
assert !PadrinoTestApp.sessions
|
24
25
|
end
|
25
26
|
|
@@ -45,10 +46,10 @@ class TestApplication < Test::Unit::TestCase
|
|
45
46
|
get '/foo', {}, { 'HTTP_ACCEPT' => 'application/xml' }
|
46
47
|
assert_equal 'Foo in xml', body
|
47
48
|
get '/foo'
|
48
|
-
|
49
|
+
assert_equal 'Foo in xml', body
|
49
50
|
|
50
51
|
get '/bar', {}, { 'HTTP_ACCEPT' => 'application/xml' }
|
51
52
|
assert_equal "Foo in html", body
|
52
53
|
end
|
53
54
|
end
|
54
|
-
end
|
55
|
+
end
|
data/test/test_routing.rb
CHANGED
@@ -170,13 +170,31 @@ class TestRouting < Test::Unit::TestCase
|
|
170
170
|
assert_equal 404, status
|
171
171
|
end
|
172
172
|
|
173
|
-
should "
|
173
|
+
should "return 406 on Accept-Headers it does not provide" do
|
174
174
|
mock_app do
|
175
175
|
get(:a, :provides => [:html, :js]){ content_type }
|
176
176
|
end
|
177
177
|
|
178
178
|
get "/a", {}, {"HTTP_ACCEPT" => "application/yaml"}
|
179
|
-
assert_equal
|
179
|
+
assert_equal 406, status
|
180
|
+
end
|
181
|
+
|
182
|
+
should "not set content_type to :html if Accept */* and html not in provides" do
|
183
|
+
mock_app do
|
184
|
+
get("/foo", :provides => [:json, :xml]) { content_type.to_s }
|
185
|
+
end
|
186
|
+
|
187
|
+
get '/foo', {}, { 'HTTP_ACCEPT' => '*/*;q=0.5' }
|
188
|
+
assert_equal 'json', body
|
189
|
+
end
|
190
|
+
|
191
|
+
should "return the first content type in provides if accept header is empty" do
|
192
|
+
mock_app do
|
193
|
+
get(:a, :provides => [:js]){ content_type.to_s }
|
194
|
+
end
|
195
|
+
|
196
|
+
get "/a", {}, {}
|
197
|
+
assert_equal "js", body
|
180
198
|
end
|
181
199
|
|
182
200
|
should "not default to HTML if HTML is not provided and no type is given" do
|
@@ -185,7 +203,7 @@ class TestRouting < Test::Unit::TestCase
|
|
185
203
|
end
|
186
204
|
|
187
205
|
get "/a", {}, {}
|
188
|
-
assert_equal
|
206
|
+
assert_equal "application/javascript;charset=utf-8", content_type
|
189
207
|
end
|
190
208
|
|
191
209
|
should "not match routes if url_format and http_accept is provided but not included" do
|
@@ -345,14 +363,16 @@ class TestRouting < Test::Unit::TestCase
|
|
345
363
|
get(:d, :provides => [:html, :js]){ "html,js"}
|
346
364
|
end
|
347
365
|
get "/a"
|
348
|
-
assert_equal
|
366
|
+
assert_equal 200, status
|
367
|
+
assert_equal "js", body
|
349
368
|
get "/a.js"
|
350
369
|
assert_equal "js", body
|
351
370
|
get "/b"
|
352
371
|
assert_equal "any", body
|
353
372
|
assert_raise(RuntimeError) { get "/b.foo" }
|
354
373
|
get "/c"
|
355
|
-
assert_equal
|
374
|
+
assert_equal 200, status
|
375
|
+
assert_equal "js,json", body
|
356
376
|
get "/c.js"
|
357
377
|
assert_equal "js,json", body
|
358
378
|
get "/c.json"
|
@@ -733,8 +753,8 @@ class TestRouting < Test::Unit::TestCase
|
|
733
753
|
assert ok?
|
734
754
|
assert_equal 'application/javascript;charset=utf-8', response.headers['Content-Type']
|
735
755
|
|
736
|
-
get '/foo', {}, {
|
737
|
-
|
756
|
+
get '/foo', {}, { "HTTP_ACCEPT" => 'text/html' }
|
757
|
+
assert_equal 406, status
|
738
758
|
end
|
739
759
|
|
740
760
|
should "works allow global provides" do
|
@@ -748,8 +768,8 @@ class TestRouting < Test::Unit::TestCase
|
|
748
768
|
get '/foo', {}, { 'HTTP_ACCEPT' => 'application/xml' }
|
749
769
|
assert_equal 'Foo in xml', body
|
750
770
|
get '/foo'
|
751
|
-
|
752
|
-
|
771
|
+
assert_equal 'Foo in xml', body
|
772
|
+
|
753
773
|
get '/bar', {}, { 'HTTP_ACCEPT' => 'application/xml' }
|
754
774
|
assert_equal 'Bar in html', body
|
755
775
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: padrino-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 22
|
10
|
+
version: 0.9.22
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Padrino Team
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2011-
|
21
|
+
date: 2011-03-04 00:00:00 -08:00
|
22
22
|
default_executable: padrino
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
requirement: &id001 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
|
-
- -
|
30
|
+
- - ~>
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
hash: 19
|
33
33
|
segments:
|
@@ -135,6 +135,7 @@ files:
|
|
135
135
|
- lib/padrino-core/locale/es.yml
|
136
136
|
- lib/padrino-core/locale/fr.yml
|
137
137
|
- lib/padrino-core/locale/it.yml
|
138
|
+
- lib/padrino-core/locale/ja.yml
|
138
139
|
- lib/padrino-core/locale/nl.yml
|
139
140
|
- lib/padrino-core/locale/no.yml
|
140
141
|
- lib/padrino-core/locale/pl.yml
|
@@ -204,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
205
|
requirements: []
|
205
206
|
|
206
207
|
rubyforge_project: padrino-core
|
207
|
-
rubygems_version: 1.
|
208
|
+
rubygems_version: 1.6.0
|
208
209
|
signing_key:
|
209
210
|
specification_version: 3
|
210
211
|
summary: The required Padrino core gem
|