class ZohoInvoiceResource::Base

Public Class Methods

cached_resource(options={}) click to toggle source

For CachedResource

Calls superclass method
# File lib/zoho_invoice_resource/base.rb, line 40
def cached_resource(options={})
  if defined?(::CachedResource::Model) && self.include?(::CachedResource::Model)
    super.tap do
      include CachedResourcePatch
    end
  else
    super
  end
end
collection_path(prefix_options = {}, query_options = {}) click to toggle source
Calls superclass method
# File lib/zoho_invoice_resource/base.rb, line 19
def collection_path(prefix_options = {}, query_options = {})
  query_options.merge!(auth_params)
  super(prefix_options, query_options)
end
connection(refresh = false) click to toggle source
# File lib/zoho_invoice_resource/base.rb, line 75
def self.connection(refresh = false)
  @connection = Connection.new(site, format) if refresh || @connection.nil?
  @connection.tap do |c|
    c.proxy = proxy if proxy
    c.user = user if user
    c.password = password if password
    c.auth_type = auth_type if auth_type
    c.timeout = timeout if timeout
    c.ssl_options = ssl_options if ssl_options
  end
end
element_path(id, prefix_options = {}, query_options = {}) click to toggle source
Calls superclass method
# File lib/zoho_invoice_resource/base.rb, line 14
def element_path(id, prefix_options = {}, query_options = {})
  query_options.merge!(auth_params)
  super(id, prefix_options, query_options)
end
find_all_recursively(options = {}) click to toggle source
# File lib/zoho_invoice_resource/base.rb, line 24
def find_all_recursively(options = {})
  collection = find(:all, options.merge(params: {'Per_Page' => 500}))
  while collection.page && (collection.page < collection.total_pages)
    next_collection = find(:all, params: {'Page' => collection.page + 1, 'Per_Page' => 500})
    collection.merge!(next_collection)
  end
  collection
rescue ActiveResource::ResourceNotFound
  nil
end
format() click to toggle source
# File lib/zoho_invoice_resource/base.rb, line 35
def format
  self._format ||= Formats::Base.new(self.to_s.demodulize)
end

Public Instance Methods

create_resource_for(resource_name) click to toggle source
Calls superclass method
# File lib/zoho_invoice_resource/base.rb, line 68
def create_resource_for(resource_name)
  super.tap do |resource|
    resource.send(:include, UnderscoreKeys)
    resource.send(:include, ActiveRecord::AttributeAssignment)
  end
end
encode(options={}) click to toggle source
# File lib/zoho_invoice_resource/base.rb, line 63
def encode(options={})
  xml = self.class.format.encode(self, {:root => self.class.element_name}.merge(options))
  URI.encode_www_form(self.class.auth_params.merge('XMLString' => xml))
end
update() click to toggle source
# File lib/zoho_invoice_resource/base.rb, line 51
def update
  run_callbacks :update do
    connection.post(self.class.custom_method_collection_url(:update, prefix_options), encode, self.class.headers).tap do |response|
      load_attributes_from_response(response)
    end
  end
end
update_element_path(options = nil) click to toggle source
# File lib/zoho_invoice_resource/base.rb, line 59
def update_element_path(options = nil)
  self.class.element_path(to_param, options || prefix_options)
end