Skip to content

Commit

Permalink
fix to_param for nestled params
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-stripe committed Apr 5, 2013
1 parent 161eed5 commit c4fecdf
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 17 deletions.
26 changes: 12 additions & 14 deletions lib/nestful/helpers.rb
Expand Up @@ -2,26 +2,24 @@

module Nestful
module Helpers extend self
def to_param(object, namespace = nil)
case object
when Hash
object.map do |key, value|
key = "#{namespace}[#{key}]" if namespace
"#{CGI.escape(to_param(key))}=#{CGI.escape(to_param(value, key))}"
end.join('&')

when Array
object.each do |value|
to_param(value)
end.join('/')

def to_param(value, key = nil)
case value
when Hash then value.map { |k,v| to_param(v, append_key(key,k)) }.join('&')
when Array then value.map { |v| to_param(v, "#{key}[]") }.join('&')
when nil then ''
else
object.to_s
"#{key}=#{CGI.escape(value.to_s)}"
end
end

def camelize(value)
value.to_s.split('_').map {|w| w.capitalize }.join
end

protected

def append_key(root_key, key)
root_key.nil? ? key : "#{root_key}[#{key.to_s}]"
end
end
end
6 changes: 3 additions & 3 deletions lib/nestful/resource.rb
Expand Up @@ -15,7 +15,7 @@ def self.path(value = nil)
end

def self.options(value = nil)
(@options ||= {}).merge!(value) if value
@options = value if value
return @options if @options
superclass.respond_to?(:options) ? superclass.options : nil
end
Expand Down Expand Up @@ -50,8 +50,8 @@ def self.request(url, options = {})
Request.new(url, self.options.merge(options)).execute
end

def self.all
self.new(get)
def self.all(*args)
self.new(get('', *args))
end

def self.find(id)
Expand Down

0 comments on commit c4fecdf

Please sign in to comment.