def array!(args)
      __array
      args.each do |arg|
        @level += 1
        yield arg
        @level -= 1
                
        value = @stack.pop
      
        # If the object created was an array with a single value
        # assume that just the value should be added
        if (JsonArray === value && value.values.length <= 1)
          value = value.values.first
        end
      
        @stack[@level].add value
      end
    end
def array!(args)
      __array
      args.each do |arg|
        @level += 1
        yield arg
        @level -= 1
                
        value = @stack.pop
      
        # If the object created was an array with a single value
        # assume that just the value should be added
        if (JsonArray === value && value.values.length <= 1)
          value = value.values.first
        end
      
        @stack[@level].add value
      end
    end
Creates array of json objects in current element from array passed to this method.
 Accepts block which yields each array element.

 @example Create array in root JSON element
     json.array!(@links) do |link|
       json.rel link.first
       json.href link.last
     end

 @example compiles to something like ...
     [
        {
          "rel": "self",
          "href": "http://example.com/people/123"
        },
        {
          "rel": "school",
          "href": "http://gatech.edu"
        }
     ]