Skip to content

Commit

Permalink
Refactor Lotus::Middleware
Browse files Browse the repository at this point in the history
Ensure that we clean test fixture temp folder
This avoid spec failed spec with full_stack test
  • Loading branch information
Trung Lê committed Dec 20, 2014
1 parent 6eb2fc3 commit c8516e3
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 19 deletions.
2 changes: 1 addition & 1 deletion lib/lotus/commands/console.rb
Expand Up @@ -40,7 +40,7 @@ def engine
private

def engine_lookup
(ENGINES.find {|_, klass| Object.const_defined?(klass) } || default_engine).first
(ENGINES.find { |_, klass| Object.const_defined?(klass) } || default_engine).first
end

def default_engine
Expand Down
@@ -1,5 +1,5 @@
require 'lotus/model'
Dir["#{ __dir__ }/**/*.rb"].each {|file| require_relative file }
Dir["#{ __dir__ }/**/*.rb"].each { |file| require_relative file }

Lotus::Model.configure do
# Database adapter
Expand Down
49 changes: 35 additions & 14 deletions lib/lotus/middleware.rb
Expand Up @@ -80,24 +80,45 @@ def load_middleware(middleware)
# @since x.x.x
def load_default_stack(application)
@default_stack_loaded ||= begin
if @configuration.sessions.enabled?
use(*@configuration.sessions.middleware)
end
_load_session_middleware
_load_asset_middlewares
_load_default_welcome_page_for(application)
use Rack::MethodOverride

if @configuration.serve_assets
@configuration.assets.entries.each do |path, children|
use Rack::Static, urls: children, root: path
end
end
true
end
end

use Rack::MethodOverride
# Default welcome page
#
# @api private
# @since 0.2.0
def _load_default_welcome_page_for(application)
unless application.routes.defined?
require 'lotus/welcome'
use Lotus::Welcome
end
end

unless application.routes.defined?
require 'lotus/welcome'
use Lotus::Welcome
end
# Add session middleware
#
# @api private
# @since x.x.x
def _load_session_middleware
if @configuration.sessions.enabled?
use(*@configuration.sessions.middleware)
end
end

true
# Add asset middlewares
#
# @api private
# #since 0.2.0
def _load_asset_middlewares
if @configuration.serve_assets
@configuration.assets.entries.each do |path, children|
use Rack::Static, urls: children, root: path
end
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/lotus/routing/default.rb
Expand Up @@ -17,7 +17,7 @@ def call(env)
end

def call(env)
action = NullAction.new.tap {|a| a.call(env) }
action = NullAction.new.tap { |a| a.call(env) }
[ DEFAULT_CODE, {CONTENT_TYPE => action.content_type}, DEFAULT_BODY, action ]
end
end
Expand Down
2 changes: 1 addition & 1 deletion test/commands/new_test.rb
Expand Up @@ -132,7 +132,7 @@ def container_options
describe 'lib/chirp.rb' do
it 'generates it' do
content = @root.join('lib/chirp.rb').read
content.must_match 'Dir["#{ __dir__ }/**/*.rb"].each {|file| require_relative file }'
content.must_match 'Dir["#{ __dir__ }/**/*.rb"].each { |file| require_relative file }'
content.must_match %(require 'lotus/model')
content.must_match %(Lotus::Model.configure)
content.must_match %(adapter type: :file_system, uri: ENV['CHIRP_DATABASE_URL'])
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/body_parsers/application.rb
Expand Up @@ -10,7 +10,7 @@ def parse(body)
result = {}

xml = ::REXML::Document.new(body)
xml.elements.each('*') {|el| result[el.name] = el.text }
xml.elements.each('*') { |el| result[el.name] = el.text }

result
end
Expand Down

0 comments on commit c8516e3

Please sign in to comment.