Class: Meddler::Builder
- Inherits:
-
Object
show all
- Defined in:
- lib/meddler/builder.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(endpoint, &block) ⇒ Builder
Returns a new instance of Builder.
6
7
8
9
10
11
12
13
14
|
# File 'lib/meddler/builder.rb', line 6
def initialize(endpoint, &block)
@target = Rack::Builder.new{}
instance_eval(&block)
@app = if @run_endpoint
Meddler.new(@run_endpoint, @on_request, @on_response, @before, @after, @target, endpoint)
else
Meddler.new(endpoint, @on_request, @on_response, @before, @after, @target)
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/meddler/builder.rb', line 16
def method_missing(method, *args, &block)
if method == :run
@run_endpoint = args.first
else
target.send(method, *args, &block)
end
end
|
Instance Attribute Details
#app ⇒ Object
Returns the value of attribute app.
4
5
6
|
# File 'lib/meddler/builder.rb', line 4
def app
@app
end
|
#target ⇒ Object
Returns the value of attribute target.
4
5
6
|
# File 'lib/meddler/builder.rb', line 4
def target
@target
end
|
Instance Method Details
#add_to_on_request ⇒ Object
24
25
26
|
# File 'lib/meddler/builder.rb', line 24
def add_to_on_request
(@on_request ||= []) << yield
end
|
#add_to_on_response ⇒ Object
28
29
30
|
# File 'lib/meddler/builder.rb', line 28
def add_to_on_response
(@on_response ||= []) << yield
end
|
#after(&block) ⇒ Object
57
58
59
60
|
# File 'lib/meddler/builder.rb', line 57
def after(&block)
@after ||= []
@after << block
end
|
#before(&block) ⇒ Object
52
53
54
55
|
# File 'lib/meddler/builder.rb', line 52
def before(&block)
@before ||= []
@before << block
end
|
#call(env) ⇒ Object
62
63
64
|
# File 'lib/meddler/builder.rb', line 62
def call(env)
app.call(env)
end
|
#on_path_info(path_info) ⇒ Object
44
45
46
|
# File 'lib/meddler/builder.rb', line 44
def on_path_info(path_info)
add_to_on_request { proc{|request| path_info === request.path_info } }
end
|
#on_request(&block) ⇒ Object
32
33
34
|
# File 'lib/meddler/builder.rb', line 32
def on_request(&block)
add_to_on_request { block }
end
|
#on_response(&block) ⇒ Object
36
37
38
|
# File 'lib/meddler/builder.rb', line 36
def on_response(&block)
add_to_on_response { block }
end
|
#on_status(status) ⇒ Object
40
41
42
|
# File 'lib/meddler/builder.rb', line 40
def on_status(status)
add_to_on_response { proc{|response| status === response.status } }
end
|
#on_xhr?(invert = false) ⇒ Boolean
48
49
50
|
# File 'lib/meddler/builder.rb', line 48
def on_xhr?(invert = false)
add_to_on_request { proc{|request| invert ^ request.xhr? } }
end
|