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

Instance Method Summary collapse

Instance Attribute Details

#body_clauseObject (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_allObject (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_clausesObject (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_clauseObject (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_clausesObject (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_builderObject (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_clauseObject (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

Yields:

  • (_self)

Yield Parameters:



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_allObject



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

#resetObject



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