class Zoop::Model

Public Class Methods

class_name() click to toggle source
# File lib/zoop/model.rb, line 45
def class_name
  self.name.split('::').last
end
create(*args, &block) click to toggle source
# File lib/zoop/model.rb, line 31
def create(*args, &block)
  self.new(*args, &block).create
end
find(id)
Alias for: find_by_id
find_by_id(id) click to toggle source
# File lib/zoop/model.rb, line 35
def find_by_id(id)
  raise RequestError.new('Invalid ID') unless id.present?
  Zoop::Request.get(url id).call
end
Also aliased as: find
underscored_class_name() click to toggle source
# File lib/zoop/model.rb, line 49
def underscored_class_name
  class_name.gsub(/[a-z0-9][A-Z]/){|s| "#{s[0]}_#{s[1]}"}.downcase
end
url(*params) click to toggle source
# File lib/zoop/model.rb, line 41
def url(*params)
  ["/#{ CGI.escape underscored_class_name }s", *params].join '/'
end

Public Instance Methods

create() click to toggle source
# File lib/zoop/model.rb, line 4
def create
  update_model Zoop::Request.post(@custom_url || self.class.url, params: to_hash).run
  self
end
destroy() click to toggle source
# File lib/zoop/model.rb, line 19
def destroy
  update_model Zoop::Request.delete(url).run
  self
end
save() click to toggle source
# File lib/zoop/model.rb, line 14
def save
  update_model Zoop::Request.put(@custom_url || url, params: unsaved_attributes).run
  self
end
update(params={}) click to toggle source
# File lib/zoop/model.rb, line 9
def update(params={})
  update_model Zoop::Request.put(@custom_url || url, params: params).run
  self
end
url(*params) click to toggle source
# File lib/zoop/model.rb, line 24
def url(*params)
  raise RequestError.new('Invalid ID') unless id.present?
  self.class.url CGI.escape(id.to_s), *params
end