Sha256: fcb0720d634516ced48bc41f513ca365e376b0435dda62ddef0088b9bea63461
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
require 'active_support/concern' class Frenetic module MemberRestMethods extend ActiveSupport::Concern module ClassMethods def find(params) fail ResourceNotFound.new(self, params) if params.blank? params = { id:params } unless params.is_a?(Hash) return as_mock(params) if test_mode? fetch_resource(params) end def find_by!(params) find(params) end def find_by(params) find_by!(params) rescue ClientError nil end def all(*params) return [] if test_mode? response = api.get(collection_url(*params)) Frenetic::ResourceCollection.new(self, response.body) if response.success? end private def fetch_resource(params) begin response = api.get(member_url(params)) rescue ClientParsingError, ClientError => ex raise if ex.status != 404 raise ResourceNotFound.new(self, params) end new(response.body) if response.success? end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
frenetic-3.0.1 | lib/frenetic/concerns/member_rest_methods.rb |
frenetic-3.0.0 | lib/frenetic/concerns/member_rest_methods.rb |
frenetic-2.0.0 | lib/frenetic/concerns/member_rest_methods.rb |