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.
177
178
179
180
181
182
183
184
185
|
# File 'lib/warbler/traits/war.rb', line 177
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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
# File 'lib/warbler/traits/war.rb', line 238
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
187
|
# File 'lib/warbler/traits/war.rb', line 187
def servlet_filter; @servlet_filter ||= 'org.jruby.rack.RackFilter' end
|
#servlet_filter_async ⇒ Object
Returns the value of attribute servlet_filter_async.
196
197
198
|
# File 'lib/warbler/traits/war.rb', line 196
def servlet_filter_async
@servlet_filter_async
end
|
#servlet_filter_name ⇒ Object
190
|
# File 'lib/warbler/traits/war.rb', line 190
def servlet_filter_name; @servlet_filter_name ||= 'RackFilter' end
|
#servlet_filter_url_pattern ⇒ Object
193
|
# File 'lib/warbler/traits/war.rb', line 193
def servlet_filter_url_pattern; @servlet_filter_url_pattern ||= '/*' end
|
Instance Method Details
#servlet_context_listener ⇒ Object
198
199
200
201
202
203
204
205
206
207
|
# File 'lib/warbler/traits/war.rb', line 198
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
209
210
211
|
# File 'lib/warbler/traits/war.rb', line 209
def servlet_context_listeners
@servlet_context_listeners ||= [ servlet_context_listener ]
end
|
#servlet_context_params(escape = true) ⇒ Object
Also known as:
context_params
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
|
# File 'lib/warbler/traits/war.rb', line 213
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
232
233
234
|
# File 'lib/warbler/traits/war.rb', line 232
def to_s
"No value for '#@key' found"
end
|