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
context_params(escape = true)

@deprecated

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