lib/restful_resource/base.rb in restful_resource-0.9.7 vs lib/restful_resource/base.rb in restful_resource-0.10.0

- old
+ new

@@ -1,20 +1,20 @@ module RestfulResource class Base < OpenObject extend RestfulResource::Associations - def self.configure(base_url: nil, - username: nil, - password: nil, - logger: nil, + def self.configure(base_url: nil, + username: nil, + password: nil, + logger: nil, cache_store: nil) @base_url = URI.parse(base_url) - @http = RestfulResource::HttpClient.new(username: username, - password: password, - logger: logger, + @http = RestfulResource::HttpClient.new(username: username, + password: password, + logger: logger, cache_store: cache_store) end def self.resource_path(url) @resource_path = url @@ -49,10 +49,11 @@ def self.post(data: {}, **params) url = collection_url(params) response = http.post(url, data: data) + self.new(parse_json(response.body)) end def self.all self.where @@ -71,11 +72,11 @@ def self.fetch_all!(conditions={}) Enumerator.new do |y| next_page = 1 begin resources = self.where(conditions.merge(page: next_page)) - resources.each do |resource| + resources.each do |resource| y << resource end next_page = resources.next_page end while(!next_page.nil?) end @@ -93,22 +94,22 @@ end raise "Base url missing" if result.nil? result end + def self.collection_url(params) + url = merge_url_paths(base_url, @resource_path, @action_prefix) + replace_parameters(url, params) + end + private def self.merge_url_paths(uri, *paths) uri.merge(paths.compact.join('/')).to_s end def self.member_url(id, params) raise ResourceIdMissingError if id.blank? url = merge_url_paths(base_url, @resource_path, CGI.escape(id.to_s), @action_prefix) - replace_parameters(url, params) - end - - def self.collection_url(params) - url = merge_url_paths(base_url, @resource_path, @action_prefix) replace_parameters(url, params) end def self.new_collection(json) json.map do |element|