Sha256: 789beb59692251948c735f9e9771aae93832ee5d8f2530ed79404c4b9e3f5062
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
module Rooftop module Queries def self.included(base) base.extend ClassMethods end module ClassMethods # We need to fix up the `where()` filter. WP-API expects a url format for filters like this: # /?filter[something]=foo. def where(args) args = HashWithIndifferentAccess.new(args) # the fact that 'slug' is referred to in the db as 'name' is irritating. Let's fix that # in queries so we can specify {slug: "foo"} if args.keys.collect(&:to_sym).include?(:slug) args[:name] = args[:slug] args.delete(:slug) end filters = args.inject({}) {|hash,pair| hash["filter[#{pair.first}]"] = pair.last; hash} #Call the Her `where` method with our new filters super().where(filters) end alias_method :find_by, :where def find_by!(args) results = find_by(args) if results.present? results else raise Rooftop::RecordNotFoundError end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rooftop-0.0.5 | lib/rooftop/queries/queries.rb |