padrino-core 0.13.0.beta1 → 0.13.0.beta2

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: dd190eb5ae35578b80e7e1f3917864308bf6be3a
4
- data.tar.gz: 8927013bd7f6c5c190a894780efd38d842e9bc87
3
+ metadata.gz: 9157558167a224779bc75315038e491ff4817df7
4
+ data.tar.gz: 7b3b6f87d38b17584c7b4f513279062e262c69ad
5
5
  SHA512:
6
- metadata.gz: 6b1db6d4f4ebfd97f9a0b1383f94a8f19e8d10f4b9b71d33ee7a8b8be6ba2e5d9a5227dda9b5a57ed28595127646a508fd8cc7bce4dfa1e52400757f1bc5b468
7
- data.tar.gz: a5ccf5a769094f21b189f30fbdf06914ad977c3c7a7caf794cbf4bf56ec361bcc5514c144b91f9c0e96c5a3de875bac84a863d27b142b23f8745b856cdd47e73
6
+ metadata.gz: 808a48bbb9e9ce5963a80e9ecfca40ec6122f3152efe6aecc150d1a8a6a8c87958b3efc1f3c391c4792fb5169c8d96e223f1783ac908a4a644c3b1ef0d56d060
7
+ data.tar.gz: 94db6c26a4c2162e15a550c58fabe704da50f9d3d7adbb0ee479364441ea697828ff7ad25c34ff917143f2ef7de04b2a380f4453d33c8eed4ed953421fba3abb
data/README.rdoc CHANGED
@@ -291,4 +291,4 @@ For a complete overview of Padrino terminal commands, check out the
291
291
 
292
292
  == Copyright
293
293
 
294
- Copyright (c) 2011-2013 Padrino. See LICENSE for details.
294
+ Copyright (c) 2011-2015 Padrino. See LICENSE for details.
@@ -916,6 +916,7 @@ module Padrino
916
916
  end
917
917
 
918
918
  def filter!(type, base=settings)
919
+ filter! type, base.superclass if base.superclass.respond_to?(:filters)
919
920
  base.filters[type].each { |block| instance_eval(&block) }
920
921
  end
921
922
 
@@ -4,35 +4,6 @@ module Padrino
4
4
  #
5
5
  # @private
6
6
  class ShowExceptions < Sinatra::ShowExceptions
7
- if Sinatra::VERSION <= '1.4.5'
8
- def call(env)
9
- @app.call(env)
10
- rescue Exception => e
11
- errors, env["rack.errors"] = env["rack.errors"], @@eats_errors
12
-
13
- if prefers_plain_text?(env)
14
- content_type = "text/plain"
15
- exception_string = dump_exception(e)
16
- else
17
- content_type = "text/html"
18
- exception_string = pretty(env, e)
19
- end
20
-
21
- env["rack.errors"] = errors
22
-
23
- # Post 893a2c50 in rack/rack, the #pretty method above, implemented in
24
- # Rack::ShowExceptions, returns a String instead of an array.
25
- body = Array(exception_string)
26
-
27
- [
28
- 500,
29
- {"Content-Type" => content_type,
30
- "Content-Length" => Rack::Utils.bytesize(body.join).to_s},
31
- body
32
- ]
33
- end
34
- end
35
-
36
7
  private
37
8
 
38
9
  def frame_class(frame)
@@ -1,11 +1,3 @@
1
- Dir["{lib/tasks/**,tasks/**,test,spec}/*.rake"].each do |file|
2
- begin
3
- load(file)
4
- rescue LoadError => e
5
- warn "#{file}: #{e.message}"
6
- end
7
- end
8
-
9
1
  # Loads the Padrino applications mounted within the project.
10
2
  # Setting up the required environment for Padrino.
11
3
  task :environment do
@@ -43,6 +35,19 @@ def list_app_routes(app, args)
43
35
  end
44
36
  end
45
37
 
38
+ def env_migration_version
39
+ version = ENV["MIGRATION_VERSION"]
40
+ if version.nil? && ENV["VERSION"]
41
+ deprecated = true
42
+ warn "Environment variable VERSION is deprecated, use MIGRATION_VERSION"
43
+ version = ENV["VERSION"]
44
+ end
45
+ version ? Integer(version) : nil
46
+ rescue ArgumentError
47
+ warn "Environment variable #{deprecated ? '' : 'MIGRATION_'}VERSION=#{version} should be non-existant or Integer"
48
+ nil
49
+ end
50
+
46
51
  desc "Displays a listing of the named routes within a project, optionally only those matched by [query]"
47
52
  task :routes, [:query] => :environment do |t, args|
48
53
  Padrino.mounted_apps.each do |app|
@@ -57,3 +62,11 @@ namespace :routes do
57
62
  list_app_routes(app, args) if app
58
63
  end
59
64
  end
65
+
66
+ Dir["{lib/tasks/**,tasks/**,test,spec}/*.rake"].each do |file|
67
+ begin
68
+ load(file)
69
+ rescue LoadError => e
70
+ warn "#{file}: #{e.message}"
71
+ end
72
+ end
@@ -0,0 +1,55 @@
1
+ module Padrino
2
+ class Mounter
3
+ module ApplicationExtension
4
+ attr_accessor :uri_root, :mounter_options
5
+ attr_writer :public_folder
6
+
7
+ def dependencies
8
+ @__dependencies ||= Dir.glob("#{root}/**/*.rb").delete_if { |path| path == app_file }
9
+ end
10
+
11
+ def prerequisites
12
+ @__prerequisites ||= []
13
+ end
14
+
15
+ def app_file
16
+ @__app_file ||= trace_method(:app_file) { mounter_options[:app_file] }
17
+ end
18
+
19
+ def root
20
+ @__root ||= trace_method(:root) { File.expand_path("#{app_file}/../") }
21
+ end
22
+
23
+ def public_folder
24
+ @public_folder ||= trace_method(:public_folder) { "" }
25
+ end
26
+
27
+ def app_name
28
+ @__app_name ||= mounter_options[:app_name] || self.to_s.underscore.to_sym
29
+ end
30
+
31
+ def setup_application!
32
+ @configured ||= trace_method(:setup_application!) do
33
+ $LOAD_PATH.concat(prerequisites)
34
+ require_dependencies if root.start_with?(Padrino.root)
35
+ true
36
+ end
37
+ end
38
+
39
+ private
40
+
41
+ def require_dependencies
42
+ Padrino.require_dependencies(dependencies, :force => true)
43
+ end
44
+
45
+ def trace_method(method_name)
46
+ value = baseclass.send(method_name) if baseclass != self && baseclass.respond_to?(method_name)
47
+ value || yield
48
+ end
49
+
50
+ def baseclass
51
+ @__baseclass ||= respond_to?(:superclass) ? superclass : self
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,4 +1,4 @@
1
- require 'delegate'
1
+ require 'padrino-core/mounter/application_extension'
2
2
 
3
3
  module Padrino
4
4
  ##
@@ -14,55 +14,6 @@ module Padrino
14
14
  class MounterException < RuntimeError
15
15
  end
16
16
 
17
- class ApplicationWrapper < SimpleDelegator
18
- attr_accessor :uri_root
19
- attr_writer :public_folder
20
-
21
- def initialize(app, options = {})
22
- @options = options
23
- super(app)
24
- end
25
-
26
- def dependencies
27
- @__dependencies ||= Dir["#{root}/**/*.rb"]
28
- end
29
-
30
- def prerequisites
31
- @__prerequisites ||= []
32
- end
33
-
34
- def app_file
35
- return @__app_file if @__app_file
36
- obj = __getobj__
37
- @__app_file = obj.respond_to?(:app_file) ? obj.app_file : @options[:app_file]
38
- end
39
-
40
- def root
41
- return @__root if @__root
42
- obj = __getobj__
43
- @__root = obj.respond_to?(:root) ? obj.root : File.expand_path("#{app_file}/../")
44
- end
45
-
46
- def public_folder
47
- return @public_folder if @public_folder
48
- obj = __getobj__
49
- @public_folder = obj.respond_to?(:public_folder) ? obj.public_folder : ""
50
- end
51
-
52
- def app_name
53
- @__app_name ||= @options[:app_name] || __getobj__.to_s.underscore.to_sym
54
- end
55
-
56
- def setup_application!
57
- @configured ||=
58
- begin
59
- $LOAD_PATH.concat(prerequisites)
60
- Padrino.require_dependencies(dependencies, :force => true) if root.start_with?(Padrino.root)
61
- true
62
- end
63
- end
64
- end
65
-
66
17
  attr_accessor :name, :uri_root, :app_file, :app_class, :app_root, :app_obj, :app_host, :cascade
67
18
 
68
19
  ##
@@ -83,7 +34,10 @@ module Padrino
83
34
  @app_file = options[:app_file] || locate_app_file
84
35
  @app_obj = options[:app_obj] || app_constant || locate_app_object
85
36
  ensure_app_file! || ensure_app_object!
86
- @app_obj = ApplicationWrapper.new(@app_obj, options) unless padrino_application?
37
+ unless padrino_application?
38
+ @app_obj.extend ApplicationExtension
39
+ @app_obj.mounter_options = options
40
+ end
87
41
  @app_root = options[:app_root] || (@app_obj.respond_to?(:root) && @app_obj.root || File.dirname(@app_file))
88
42
  @uri_root = "/"
89
43
  @cascade = options[:cascade] ? true == options[:cascade] ? DEFAULT_CASCADE.dup : Array(options[:cascade]) : []
@@ -174,7 +128,7 @@ module Padrino
174
128
  def named_routes
175
129
  app_obj.routes.map { |route|
176
130
  route_name = route.name.to_s
177
- route_name =
131
+ route_name =
178
132
  if route.controller
179
133
  route_name.split(" ", 2).map{|name| ":#{name}" }.join(", ")
180
134
  else
@@ -6,7 +6,7 @@
6
6
  #
7
7
  module Padrino
8
8
  # The version constant for the current version of Padrino.
9
- VERSION = '0.13.0.beta1' unless defined?(Padrino::VERSION)
9
+ VERSION = '0.13.0.beta2' unless defined?(Padrino::VERSION)
10
10
 
11
11
  #
12
12
  # The current Padrino version.
data/padrino-core.gemspec CHANGED
@@ -27,9 +27,7 @@ Gem::Specification.new do |s|
27
27
  if ENV["SINATRA_EDGE"]
28
28
  s.add_dependency("sinatra")
29
29
  else
30
- # remove this rack dependency after Sinatra > 1.4.5
31
- s.add_dependency("rack", "< 1.6.0")
32
- s.add_dependency("sinatra", "~> 1.4.2")
30
+ s.add_dependency("sinatra", "~> 1.4.6")
33
31
  end
34
32
  s.add_dependency("mustermann19")
35
33
  s.add_dependency("thor", "~> 0.18")
@@ -3,6 +3,10 @@ class RackApp
3
3
  def self.call(_)
4
4
  [200, {}, ["hello rack app"]]
5
5
  end
6
+
7
+ def self.prerequisites
8
+ super
9
+ end
6
10
  end
7
11
 
8
12
  RackApp2 = lambda{|_| [200, {}, ["hello rack app2"]] }
data/test/helper.rb CHANGED
@@ -12,7 +12,6 @@ require 'padrino-core'
12
12
 
13
13
  require 'ext/minitest-spec'
14
14
  require 'ext/rack-test-methods'
15
- require 'ext/rack-test-utils'
16
15
 
17
16
  class MiniTest::Spec
18
17
  include Rack::Test::Methods
data/test/test_filters.rb CHANGED
@@ -386,4 +386,15 @@ describe "Filters" do
386
386
  assert_equal 'We broke after', body
387
387
  assert_equal 'Been now and after', doodle
388
388
  end
389
+
390
+ it 'should trigger filters if superclass responds to :filters' do
391
+ class FilterApp < Padrino::Application
392
+ before { @foo = "foo" }
393
+ end
394
+ mock_app FilterApp do
395
+ get("/") { @foo }
396
+ end
397
+ get "/"
398
+ assert_equal "foo", body
399
+ end
389
400
  end
data/test/test_mounter.rb CHANGED
@@ -269,6 +269,7 @@ describe "Mounter" do
269
269
  assert_equal "hello sinatra app", res.body
270
270
  res = Rack::MockRequest.new(app).get("/sinatra_app/static.html")
271
271
  assert_equal "hello static file\n", res.body
272
+ assert_equal [], RackApp.prerequisites
272
273
  end
273
274
 
274
275
  it 'should support the Rack Application inside padrino project' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0.beta1
4
+ version: 0.13.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-02-22 00:00:00.000000000 Z
14
+ date: 2015-04-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: padrino-support
@@ -19,42 +19,28 @@ dependencies:
19
19
  requirements:
20
20
  - - '='
21
21
  - !ruby/object:Gem::Version
22
- version: 0.13.0.beta1
22
+ version: 0.13.0.beta2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - '='
28
28
  - !ruby/object:Gem::Version
29
- version: 0.13.0.beta1
30
- - !ruby/object:Gem::Dependency
31
- name: rack
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - <
35
- - !ruby/object:Gem::Version
36
- version: 1.6.0
37
- type: :runtime
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - <
42
- - !ruby/object:Gem::Version
43
- version: 1.6.0
29
+ version: 0.13.0.beta2
44
30
  - !ruby/object:Gem::Dependency
45
31
  name: sinatra
46
32
  requirement: !ruby/object:Gem::Requirement
47
33
  requirements:
48
34
  - - ~>
49
35
  - !ruby/object:Gem::Version
50
- version: 1.4.2
36
+ version: 1.4.6
51
37
  type: :runtime
52
38
  prerelease: false
53
39
  version_requirements: !ruby/object:Gem::Requirement
54
40
  requirements:
55
41
  - - ~>
56
42
  - !ruby/object:Gem::Version
57
- version: 1.4.2
43
+ version: 1.4.6
58
44
  - !ruby/object:Gem::Dependency
59
45
  name: mustermann19
60
46
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +136,7 @@ files:
150
136
  - lib/padrino-core/logger.rb
151
137
  - lib/padrino-core/module.rb
152
138
  - lib/padrino-core/mounter.rb
139
+ - lib/padrino-core/mounter/application_extension.rb
153
140
  - lib/padrino-core/path_router.rb
154
141
  - lib/padrino-core/path_router/compiler.rb
155
142
  - lib/padrino-core/path_router/error_handler.rb