After we see a key, we must look ahead to determine our next action. Cases:
[] follows the key. Then the value must be an array. = follows the key. (A value comes next) & or the end of string follows the key. Then the key is a flag. otherwise, a hash follows the key.
Source Code
# File action_controller/request.rb, line 643 def post_key_check(key) if scan(/\[\]/) # a[b][] indicates that b is an array container(key, Array) nil elsif check(/\[[^\]]/) # a[b] indicates that a is a hash container(key, Hash) nil else # End of key? We do nothing. key end end
<code/>and<pre/>for code samples.