Class: SinatraSimpleRouter::Controller
- Inherits:
-
Object
- Object
- SinatraSimpleRouter::Controller
show all
- Defined in:
- lib/sinatra_simple_router/controller.rb
Instance Method Summary
collapse
Constructor Details
3
4
5
|
# File 'lib/sinatra_simple_router/controller.rb', line 3
def initialize(app)
@app = app
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/sinatra_simple_router/controller.rb', line 22
def method_missing(method, *args, &block)
if @app.respond_to?(method)
(self.instance_variables - [:"@app"]).each do |v|
@app.instance_variable_set(v, self.instance_variable_get(v))
end
@app.send(method, *args, &block)
else
super
end
end
|
Instance Method Details
#render(attrs = {}) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/sinatra_simple_router/controller.rb', line 7
def render(attrs = {})
code = attrs[:status].to_i
status(code) if code > 0
if attrs[:html]
content_type "text/html"
body attrs[:html].to_s
elsif attrs[:json]
content_type "application/json"
body attrs[:json].to_json
else
raise ArgumentError.new("Unknown format in #{attrs.inspect}")
end
end
|