Class | Camping::Server |
In: |
lib/camping/server.rb
|
Parent: | Rack::Server |
# File lib/camping/server.rb, line 98 98: def initialize(*) 99: super 100: @reloader = Camping::Reloader.new(options[:script]) do |app| 101: if !app.options.has_key?(:dynamic_templates) 102: app.options[:dynamic_templates] = true 103: end 104: 105: if !Camping::Models.autoload?(:Base) && options[:database] 106: Camping::Models::Base.establish_connection( 107: :adapter => 'sqlite3', 108: :database => options[:database] 109: ) 110: end 111: end 112: end
# File lib/camping/server.rb, line 151 151: def app 152: Rack::Cascade.new([Rack::File.new(public_dir), self], [404, 403]) 153: end
# File lib/camping/server.rb, line 164 164: def call(env) 165: app = current_app || raise("Could not find an app called `#{@reloader.name}`") 166: app.call(env) 167: end
# File lib/camping/server.rb, line 155 155: def current_app 156: @reloader.reload 157: apps = @reloader.apps 158: return apps.values.first if apps.size == 1 159: if key = apps.keys.grep(/^#{@reloader.name}$/i)[0] 160: apps[key] 161: end 162: end
# File lib/camping/server.rb, line 118 118: def default_options 119: super.merge({ 120: :Port => 3301, 121: :database => Options::DB 122: }) 123: end
# File lib/camping/server.rb, line 125 125: def middleware 126: h = super 127: h["development"] << [XSendfile] 128: h 129: end
# File lib/camping/server.rb, line 147 147: def public_dir 148: File.expand_path('../public', @reloader.file) 149: end
# File lib/camping/server.rb, line 131 131: def start 132: if options[:server] == "console" 133: puts "** Starting console" 134: @reloader.reload! 135: r = @reloader 136: eval("self", TOPLEVEL_BINDING).meta_def(:reload!) { r.reload!; nil } 137: ARGV.clear 138: IRB.start 139: exit 140: else 141: name = server.name[/\w+$/] 142: puts "** Starting #{name} on #{options[:Host]}:#{options[:Port]}" 143: super 144: end 145: end