Sha256: bf55e7b2e59391cded42c66f23ed7acf763585fc21515eda1a973bd9b9c9f3a6
Contents?: true
Size: 1.32 KB
Versions: 4
Compression:
Stored size: 1.32 KB
Contents
module PagarMe class Model < PagarMeObject def create update PagarMe::Request.post(self.class.url, params: to_hash).run self end def save update PagarMe::Request.put(url, params: unsaved_attributes).run self end def url(*params) raise RequestError.new('Invalid ID') unless id.present? self.class.url CGI.escape(id.to_s), *params end class << self def create(*args, &block) self.new(*args, &block).create end def find_by_id(id) raise RequestError.new('Invalid ID') unless id.present? PagarMe::Request.get(url id).call end alias :find :find_by_id def find_by(hash, page = 1, count = 10) raise RequestError.new('Invalid page count') if page < 1 or count < 1 PagarMe::Request.get(url, params: hash.merge( page: page, count: count )).call end alias :find_by_hash :find_by def all(page = 1, count = 10) find_by Hash.new, page, count end def url(*params) ["/#{ CGI.escape underscored_class_name }s", *params].join '/' end def class_name self.name.split('::').last end def underscored_class_name class_name.gsub(/[a-z0-9][A-Z]/){|s| "#{s[0]}_#{s[1]}"}.downcase end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pagarme-2.1.3 | lib/pagarme/model.rb |
pagarme-2.1.2 | lib/pagarme/model.rb |
pagarme-2.1.1 | lib/pagarme/model.rb |
pagarme-2.1.0 | lib/pagarme/model.rb |