class Pretzel::Core
Attributes
parameters[R]
request[R]
response[R]
Public Class Methods
builder()
click to toggle source
# File lib/pretzel/core.rb, line 46 def builder @builder ||= Rack::Builder.new end
filters()
click to toggle source
# File lib/pretzel/core.rb, line 36 def filters @filters ||= Hash.new end
new(*args, &block)
click to toggle source
# File lib/pretzel/core.rb, line 41 def new(*args, &block) builder.run new!(*args, &block) builder end
Also aliased as: new!
new()
click to toggle source
# File lib/pretzel/core.rb, line 51 def initialize self.class.use Rack::Session::Cookie, secret: self.class.token self.class.use Rack::Static, :urls => ["/assets"] end
routes()
click to toggle source
# File lib/pretzel/core.rb, line 32 def routes @routes ||= Hash.new { |hash, key| hash[key] = [] } end
token()
click to toggle source
# File lib/pretzel/core.rb, line 28 def token @token ||= SecureRandom.hex(32) end
Public Instance Methods
call(env)
click to toggle source
# File lib/pretzel/core.rb, line 56 def call(env) dup.call!(env) end
call!(env)
click to toggle source
# File lib/pretzel/core.rb, line 60 def call!(env) @request = Rack::Request.new(env) @response = Rack::Response.new @parameters = request.params @response["Server"] = "Ruby/#{RUBY_VERSION}" @response["X-Generated-By"] = "Pretzel/#{Pretzel::VERSION}" evaluate_route @response.finish end
halt(*res)
click to toggle source
# File lib/pretzel/core.rb, line 73 def halt(*res) response.status = res.detect{|x| x.is_a?(Fixnum) } || 200 response.header.merge!(res.detect{|x| x.is_a?(Hash) } || {}) if self.class.routes[response.status].empty? response.body = [res.detect{|x| x.is_a?(String) } || ""] else self.class.routes[response.status].each do |route, block| response.write instance_eval(&block) end end throw :halt, response end