Class: Warbler::Traits::War::WebxmlOpenStruct
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- Warbler::Traits::War::WebxmlOpenStruct
show all
- Defined in:
- lib/warbler/traits/war.rb
Overview
Helper class for holding arbitrary config.webxml values for injecting into web.xml.
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of WebxmlOpenStruct.
181
182
183
184
185
186
187
188
189
|
# File 'lib/warbler/traits/war.rb', line 181
def initialize(key = 'webxml')
@key = key
@table = Hash.new { |h, k|
new_ostruct_member!(k)
h[k] = WebxmlOpenStruct.new(k)
}
@servlet_filter_async = nil end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(mid, *args) ⇒ Object
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
# File 'lib/warbler/traits/war.rb', line 242
def method_missing(mid, *args)
len = args.length
if mname = mid[/.*(?==\z)/m]
if len != 1
raise ArgumentError, "wrong number of arguments (#{len} for 1)", caller(1)
end
self[mname] = args[0]
elsif len == 0
@table[mid]
else
err = NoMethodError.new "undefined method `#{mid}' for #{self}", mid, args
err.set_backtrace caller(1)
raise err
end
end
|
Instance Attribute Details
#servlet_filter ⇒ Object
191
|
# File 'lib/warbler/traits/war.rb', line 191
def servlet_filter; @servlet_filter ||= 'org.jruby.rack.RackFilter' end
|
#servlet_filter_async ⇒ Object
Returns the value of attribute servlet_filter_async.
200
201
202
|
# File 'lib/warbler/traits/war.rb', line 200
def servlet_filter_async
@servlet_filter_async
end
|
#servlet_filter_name ⇒ Object
194
|
# File 'lib/warbler/traits/war.rb', line 194
def servlet_filter_name; @servlet_filter_name ||= 'RackFilter' end
|
#servlet_filter_url_pattern ⇒ Object
197
|
# File 'lib/warbler/traits/war.rb', line 197
def servlet_filter_url_pattern; @servlet_filter_url_pattern ||= '/*' end
|
Instance Method Details
#servlet_context_listener ⇒ Object
202
203
204
205
206
207
208
209
210
211
|
# File 'lib/warbler/traits/war.rb', line 202
def servlet_context_listener
case booter
when :rack
'org.jruby.rack.RackServletContextListener'
when :rails
'org.jruby.rack.rails.RailsServletContextListener'
else 'org.jruby.rack.rails.RailsServletContextListener'
end
end
|
#servlet_context_listeners ⇒ Object
213
214
215
|
# File 'lib/warbler/traits/war.rb', line 213
def servlet_context_listeners
@servlet_context_listeners ||= [ servlet_context_listener ]
end
|
#servlet_context_params(escape = true) ⇒ Object
Also known as:
context_params
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
# File 'lib/warbler/traits/war.rb', line 217
def servlet_context_params(escape = true)
require 'cgi'; params = {}
@table.each do |k,v|
case v
when WebxmlOpenStruct
v.context_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
= Array === ignored ? ignored : []
params.delete_if { |k,_| ['ignored', *].include?(k.to_s) }
params
end
|
#to_s ⇒ Object
236
237
238
|
# File 'lib/warbler/traits/war.rb', line 236
def to_s
"No value for '#@key' found"
end
|