class Warbler::Traits::War::WebxmlOpenStruct
Helper class for holding arbitrary config.webxml values for injecting into web.xml
.
Attributes
servlet_filter[W]
servlet_filter_async[RW]
servlet_filter_name[W]
servlet_filter_url_pattern[W]
Public Class Methods
new(key = 'webxml')
click to toggle source
# File lib/warbler/traits/war.rb, line 177 def initialize(key = 'webxml') @key = key @table = Hash.new { |h, k| h[k] = WebxmlOpenStruct.new(k) } @servlet_filter_async = nil # true/false end
Public Instance Methods
[](key)
click to toggle source
# File lib/warbler/traits/war.rb, line 184 def [](key) new_ostruct_member(key) send(key) end
[]=(key, value)
click to toggle source
# File lib/warbler/traits/war.rb, line 189 def []=(key, value) new_ostruct_member(key) send("#{key}=", value) end
method_missing(mid, *args)
click to toggle source
# File lib/warbler/traits/war.rb, line 194 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 modifiable[new_ostruct_member(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
respond_to_missing?(mid, include_private = false)
click to toggle source
Calls superclass method
# File lib/warbler/traits/war.rb, line 210 def respond_to_missing?(mid, include_private = false) @table.key?(mid.to_s.chomp('=').to_sym) || super end
servlet_context_listener()
click to toggle source
# File lib/warbler/traits/war.rb, line 225 def servlet_context_listener case booter when :rack 'org.jruby.rack.RackServletContextListener' when :rails 'org.jruby.rack.rails.RailsServletContextListener' else # default (due compatibility) 'org.jruby.rack.rails.RailsServletContextListener' end end
servlet_context_listeners()
click to toggle source
# File lib/warbler/traits/war.rb, line 236 def servlet_context_listeners @servlet_context_listeners ||= [ servlet_context_listener ] end
servlet_context_params(escape = true)
click to toggle source
# File lib/warbler/traits/war.rb, line 240 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 extra_ignored = Array === ignored ? ignored : [] params.delete_if { |k,_| ['ignored', *extra_ignored].include?(k.to_s) } params end
Also aliased as: context_params
servlet_filter()
click to toggle source
# File lib/warbler/traits/war.rb, line 214 def servlet_filter; @servlet_filter ||= 'org.jruby.rack.RackFilter' end
servlet_filter_name()
click to toggle source
# File lib/warbler/traits/war.rb, line 217 def servlet_filter_name; @servlet_filter_name ||= 'RackFilter' end
servlet_filter_url_pattern()
click to toggle source
# File lib/warbler/traits/war.rb, line 220 def servlet_filter_url_pattern; @servlet_filter_url_pattern ||= '/*' end
to_s()
click to toggle source
# File lib/warbler/traits/war.rb, line 259 def to_s "No value for '#@key' found" end