Class: Rack::Obscenity

Inherits:
Object
  • Object
show all
Defined in:
lib/obscenity/rack.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}) ⇒ Obscenity

Returns a new instance of Obscenity.



4
5
6
# File 'lib/obscenity/rack.rb', line 4

def initialize(app, options = {})  
  @app, @options = app, options
end

Instance Method Details

#call(env) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/obscenity/rack.rb', line 8

def call(env)
  rejectable  = false
  post_params = Rack::Utils.parse_query(env['rack.input'].read, "&")
  get_params  = Rack::Utils.parse_query(env['QUERY_STRING'],    "&")
  
  if @options.has_key?(:reject)
    rejactable = validate_rejectability_of( select_params(:reject, get_params.update(post_params)) )
  
  elsif @options.has_key?(:sanitize)
    get_params  = sanitize_contents_of(get_params)
    post_params = sanitize_contents_of(post_params)
    
    env['QUERY_STRING'] = Rack::Utils.build_query(get_params)
    env['rack.input']   = StringIO.new(Rack::Utils.build_query(post_params))
  end
  
  rejactable ? reject : continue(env)
end