class CabbageDoc::Params

Constants

ACTION
METHOD
TAG

Public Class Methods

new(params, collection) click to toggle source
# File lib/cabbage_doc/params.rb, line 9
def initialize(params, collection)
  @_params = convert(params, collection)
end

Public Instance Methods

delete(key) click to toggle source
# File lib/cabbage_doc/params.rb, line 19
def delete(key)
  @_params.delete(key)
end
each() { |k, v| ... } click to toggle source
# File lib/cabbage_doc/params.rb, line 13
def each
  @_params.each do |k, v|
    yield(k, v)
  end
end
find(key) click to toggle source
# File lib/cabbage_doc/params.rb, line 23
def find(key)
  @_params[key]
end
to_hash() click to toggle source
# File lib/cabbage_doc/params.rb, line 31
def to_hash
  @_params
end
to_query() click to toggle source
# File lib/cabbage_doc/params.rb, line 35
def to_query
  @_params.map do |k, v|
    if v.is_a?(Array)
      v.map { |vv| "#{k}[]=#{CGI.escape(vv)}" }
    else
      "#{k}=#{CGI.escape(v)}"
    end
  end.flatten.join('&')
end
valid?() click to toggle source
# File lib/cabbage_doc/params.rb, line 27
def valid?
  @_params.any?
end

Private Instance Methods

convert(params, collection) click to toggle source
# File lib/cabbage_doc/params.rb, line 47
def convert(params, collection)
  method = params[METHOD]
  action = params[ACTION]

  return {} unless action && method

  action = collection.find_action(method, action)
  return {} unless action

  {}.tap do |hash|
    params.each do |k, v|
      hash[k] = v if action.param?(k.sub(/\[\]$/, ''))
    end
  end
end