Class CGIMethods::FormEncodedPairParser
In: vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb
Parent: StringScanner

Methods

new   parse  

Constants

KEY_REGEXP = %r{([^\[\]=&]+)}
BRACKETED_KEY_REGEXP = %r{\[([^\[\]=&]+)\]}

Attributes

parent  [R] 
result  [R] 
top  [R] 

Public Class methods

[Source]

     # File vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb, line 109
109:     def initialize(pairs = [])
110:       super('')
111:       @result = {}
112:       pairs.each { |key, value| parse(key, value) }
113:     end

Public Instance methods

Parse the query string

[Source]

     # File vendor/rails/actionpack/lib/action_controller/cgi_ext/cgi_methods.rb, line 119
119:     def parse(key, value)
120:       self.string = key
121:       @top, @parent = result, nil
122:       
123:       # First scan the bare key
124:       key = scan(KEY_REGEXP) or return
125:       key = post_key_check(key)
126:             
127:       # Then scan as many nestings as present
128:       until eos? 
129:         r = scan(BRACKETED_KEY_REGEXP) or return
130:         key = self[1]
131:         key = post_key_check(key)
132:       end
133:  
134:       bind(key, value)
135:     end

[Validate]