Module: Rack::Robustness::DSL
- Included in:
- Rack::Robustness
- Defined in:
- lib/rack/robustness.rb
Overview
Configuration
Constant Summary collapse
- NIL_HANDLER =
lambda{|ex| nil }
Instance Attribute Summary collapse
-
#body_clause ⇒ Object
readonly
Returns the value of attribute body_clause.
-
#catch_all ⇒ Object
readonly
Returns the value of attribute catch_all.
-
#ensure_clauses ⇒ Object
readonly
Returns the value of attribute ensure_clauses.
-
#headers_clause ⇒ Object
readonly
Returns the value of attribute headers_clause.
-
#rescue_clauses ⇒ Object
readonly
Returns the value of attribute rescue_clauses.
-
#response_builder ⇒ Object
readonly
Returns the value of attribute response_builder.
-
#status_clause ⇒ Object
readonly
Returns the value of attribute status_clause.
Instance Method Summary collapse
- #body(b = nil, &bl) ⇒ Object
- #content_type(ct = nil, &bl) ⇒ Object
- #ensure(bypass_on_success = false, &bl) ⇒ Object
- #headers(h = nil, &bl) ⇒ Object
- #inherited(x) ⇒ Object
- #install {|_self| ... } ⇒ Object
- #no_catch_all ⇒ Object
- #rescue(ex_class, handler = nil, &bl) ⇒ Object (also: #on)
- #reset ⇒ Object
- #response(&bl) ⇒ Object
- #status(s = nil, &bl) ⇒ Object
Instance Attribute Details
#body_clause ⇒ Object (readonly)
Returns the value of attribute body_clause.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def body_clause @body_clause end |
#catch_all ⇒ Object (readonly)
Returns the value of attribute catch_all.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def catch_all @catch_all end |
#ensure_clauses ⇒ Object (readonly)
Returns the value of attribute ensure_clauses.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def ensure_clauses @ensure_clauses end |
#headers_clause ⇒ Object (readonly)
Returns the value of attribute headers_clause.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def headers_clause @headers_clause end |
#rescue_clauses ⇒ Object (readonly)
Returns the value of attribute rescue_clauses.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def rescue_clauses @rescue_clauses end |
#response_builder ⇒ Object (readonly)
Returns the value of attribute response_builder.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def response_builder @response_builder end |
#status_clause ⇒ Object (readonly)
Returns the value of attribute status_clause.
30 31 32 |
# File 'lib/rack/robustness.rb', line 30 def status_clause @status_clause end |
Instance Method Details
#body(b = nil, &bl) ⇒ Object
78 79 80 |
# File 'lib/rack/robustness.rb', line 78 def body(b=nil, &bl) @body_clause = b.nil? ? bl : (String===b ? [ b ] : b) end |
#content_type(ct = nil, &bl) ⇒ Object
74 75 76 |
# File 'lib/rack/robustness.rb', line 74 def content_type(ct=nil, &bl) headers('Content-Type' => ct || bl) end |
#ensure(bypass_on_success = false, &bl) ⇒ Object
58 59 60 |
# File 'lib/rack/robustness.rb', line 58 def ensure(bypass_on_success = false, &bl) @ensure_clauses << [bypass_on_success, bl] end |
#headers(h = nil, &bl) ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/rack/robustness.rb', line 66 def headers(h=nil, &bl) if h.nil? @headers_clause = bl else @headers_clause.merge!(h) end end |
#inherited(x) ⇒ Object
17 18 19 |
# File 'lib/rack/robustness.rb', line 17 def inherited(x) x.reset end |
#install {|_self| ... } ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rack/robustness.rb', line 33 def install yield self if block_given? on(Object){|ex| [status_clause, {}, body_clause] } if @catch_all @headers_clause.freeze @body_clause.freeze @rescue_clauses.freeze @ensure_clauses.freeze self end |
#no_catch_all ⇒ Object
45 46 47 |
# File 'lib/rack/robustness.rb', line 45 def no_catch_all @catch_all = false end |
#rescue(ex_class, handler = nil, &bl) ⇒ Object Also known as: on
53 54 55 |
# File 'lib/rack/robustness.rb', line 53 def rescue(ex_class, handler = nil, &bl) @rescue_clauses[ex_class] = handler || bl || NIL_HANDLER end |
#reset ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/rack/robustness.rb', line 21 def reset @rescue_clauses = {} @ensure_clauses = [] @status_clause = 500 @headers_clause = {'Content-Type' => "text/plain"} @body_clause = ["Sorry, a fatal error occured."] @response_builder = lambda{|ex| ::Rack::Response.new } @catch_all = true end |
#response(&bl) ⇒ Object
49 50 51 |
# File 'lib/rack/robustness.rb', line 49 def response(&bl) @response_builder = bl end |
#status(s = nil, &bl) ⇒ Object
62 63 64 |
# File 'lib/rack/robustness.rb', line 62 def status(s=nil, &bl) @status_clause = s || bl end |