Class: Warbler::Traits::War::WebxmlOpenStruct
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- Warbler::Traits::War::WebxmlOpenStruct
- Defined in:
- lib/warbler/traits/war.rb
Overview
Helper class for holding arbitrary config.webxml values for injecting into web.xml
.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #context_params(escape = true) ⇒ Object
-
#initialize(key = 'webxml') ⇒ WebxmlOpenStruct
constructor
A new instance of WebxmlOpenStruct.
- #servlet_context_listener ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(key = 'webxml') ⇒ WebxmlOpenStruct
Returns a new instance of WebxmlOpenStruct.
152 153 154 155 |
# File 'lib/warbler/traits/war.rb', line 152 def initialize(key = 'webxml') @key = key @table = Hash.new { |h, k| h[k] = WebxmlOpenStruct.new(k) } end |
Instance Method Details
#[](key) ⇒ Object
168 169 170 171 |
# File 'lib/warbler/traits/war.rb', line 168 def [](key) new_ostruct_member(key) send(key) end |
#[]=(key, value) ⇒ Object
173 174 175 176 |
# File 'lib/warbler/traits/war.rb', line 173 def []=(key, value) new_ostruct_member(key) send("#{key}=", value) end |
#context_params(escape = true) ⇒ Object
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/warbler/traits/war.rb', line 178 def context_params(escape = true) require 'cgi' params = {} @table.each do |k,v| case v when WebxmlOpenStruct nested_params = v.context_params nested_params.each do |nk,nv| params["#{escape ? CGI::escapeHTML(k.to_s) : k.to_s}.#{nk}"] = nv end else params[escape ? CGI::escapeHTML(k.to_s) : k.to_s] = escape ? CGI::escapeHTML(v.to_s) : v.to_s end end extra_ignored = Array === ignored ? ignored : [] params.delete_if {|k,v| ['ignored', *extra_ignored].include?(k.to_s) } params end |
#servlet_context_listener ⇒ Object
157 158 159 160 161 162 163 164 165 166 |
# File 'lib/warbler/traits/war.rb', line 157 def servlet_context_listener case self.booter when :rack "org.jruby.rack.RackServletContextListener" when :merb "org.jruby.rack.merb.MerbServletContextListener" else # :rails, default "org.jruby.rack.rails.RailsServletContextListener" end end |
#to_s ⇒ Object
197 198 199 |
# File 'lib/warbler/traits/war.rb', line 197 def to_s "No value for '#@key' found" end |