Class: Orange::Middleware::Database
- Inherits:
-
Base
show all
- Defined in:
- lib/orange-core/middleware/database.rb
Instance Method Summary
collapse
Methods inherited from Base
#call, #initialize, #inspect, #orange, #pass, #recapture
Instance Method Details
#init(opts = {}) ⇒ Object
7
8
9
10
11
|
# File 'lib/orange-core/middleware/database.rb', line 7
def init(opts = {})
opts = opts.with_defaults(:migration_url => (orange.options[:development_mode] ? '/__ORANGE_DB__/migrate' : false), :no_auto_upgrade => false)
orange.mixin Orange::Mixins::DBLoader
@options = opts
end
|
#packet_call(packet) ⇒ Object
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/orange-core/middleware/database.rb', line 22
def packet_call(packet)
packet["database.url"] = orange.options["database"]
path = packet['route.path'] || packet.request.path_info
if @options[:migration_url] && @options[:migration_url] == path
orange.migrate_db!
after = packet.flash('redirect_to') || '/'
packet.reroute(after)
end
pass packet
end
|
#stack_init ⇒ Object
13
14
15
16
17
18
19
20
|
# File 'lib/orange-core/middleware/database.rb', line 13
def stack_init
unless orange.options.has_key?('database') && orange.options['database'] == false
db = ENV["DATABASE_URL"] || orange.options['database'] || "sqlite3://#{orange.app_dir('dev_db.sqlite')}"
orange.options['database'] = db
orange.load_db!(db)
orange.upgrade_db! unless @options[:no_auto_upgrade] || orange.options['db_no_auto_upgrade']
end
end
|