Class: Sipatra::HeadersWrapper

Inherits:
Object
  • Object
show all
Defined in:
lib/sipatra/helpers.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, plural = false, address = false) ⇒ HeadersWrapper

Returns a new instance of HeadersWrapper.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/sipatra/helpers.rb', line 67

def initialize(app, plural = false, address = false)
@app = app
method_definitions = <<-RUBY
  def [](name)
    @app.message.get#{address ? "Address" : ""}Header#{plural ? "s" : ""}(name.to_s)#{plural ? ".to_a" : ""}
  end
RUBY
if plural
  method_definitions += <<-RUBY
    def []=(name, values)
      name = name.to_s
      @app.message.removeHeader(name)
      if !values.nil?
        values.each do |value|
          @app.message.add#{address ? "Address" : ""}Header(name, value#{address ? ", true" : ".to_s"})
        end
      end
    end
  RUBY
else
  method_definitions += <<-RUBY
    def []=(name, value)
      if !value.nil?
        @app.message.set#{address ? "Address" : ""}Header(name.to_s, value)
      else
        @app.message.removeHeader(name.to_s)
      end
    end
  RUBY
end
class << self; self; end.class_eval method_definitions
end