lib/wp/api/endpoints.rb in wp-api-0.1.1 vs lib/wp/api/endpoints.rb in wp-api-0.1.2

- old
+ new

@@ -1,20 +1,50 @@ module WP::API module Endpoints def posts(query = {}) - posts, headers = get("posts", query) - posts.collect do |hash| - WP::API::Post.new(hash, headers) - end + resources('posts', query) end def post(id, query = {}) - WP::API::Post.new *get("posts/#{id}", query) + resource('posts', id, query) end def post_named(slug) - posts(name: slug).first + resource_named('posts', slug) + end + + def pages(query = {}) + resources('pages', query) + end + + def page(id, query = {}) + resource('pages', id, query) + end + + def page_named(slug) + resource_named('pages', slug) + end + + private + + def resources(res, query = {}) + resources, headers = get(res, query) + resources.collect do |hash| + resource_class(res).new(hash, headers) + end + end + + def resource(res, id, query = {}) + resource_class(res).new *get("#{res}/#{id}", query) + end + + def resource_named(res, slug) + resources(res, name: slug).first + end + + def resource_class(res) + WP::API::const_get(res.classify) end end end