# File lib/crm.rb, line 60 def primary_key RubyZoho.configuration.api.primary_key(self.class.module_name) end
class RubyZoho::Crm
Attributes
module_name[RW]
Public Class Methods
all()
click to toggle source
# File lib/crm.rb, line 93 def self.all result = RubyZoho.configuration.api.users('AllUsers') result.collect { |r| new(r) } end
delete(id)
click to toggle source
# File lib/crm.rb, line 85 def self.delete(id) raise 'Cannot delete users through API' end
find_by_email(email)
click to toggle source
# File lib/crm.rb, line 98 def self.find_by_email(email) r = [] self.all.index { |u| r << u if u.email == email } r end
method_missing(meth, *args, &block)
click to toggle source
Calls superclass method
Object::method_missing
# File lib/crm.rb, line 25 def self.method_missing(meth, *args, &block) if meth.to_s =~ /^find_by_(.+)$/ run_find_by_method($1, *args, &block) else super end end
new(object_attribute_hash = {})
click to toggle source
# File lib/crm.rb, line 15 def initialize(object_attribute_hash = {}) @fields = object_attribute_hash == {} ? RubyZoho.configuration.api.fields(self.class.module_name) : object_attribute_hash.keys create_accessor(self.class, @fields) create_accessor(self.class, [:module_name]) public_send(:module_name=, self.class.module_name) update_or_create_attrs(object_attribute_hash) self end
run_find_by_method(attrs, *args, &block)
click to toggle source
# File lib/crm.rb, line 42 def self.run_find_by_method(attrs, *args, &block) attrs = attrs.split('_and_') conditions = Array.new(args.size, '=') h = RubyZoho.configuration.api.find_records( self.module_name, ApiUtils.string_to_symbol(attrs[0]), conditions[0], args[0] ) return h.collect { |r| new(r) } unless h.nil? nil end
setup_classes()
click to toggle source
# File lib/crm.rb, line 64 def self.setup_classes RubyZoho.configuration.crm_modules.each do |module_name| klass_name = module_name.chop c = Class.new(self) do include RubyZoho include ActiveModel extend ActiveModel::Naming attr_reader :fields @module_name = module_name end const_set(klass_name, c) end end
Public Instance Methods
<<(object)
click to toggle source
# File lib/crm.rb, line 52 def << object object.semodule = self.module_name object.seid = self.id object.fields << :seid object.fields << :semodule save_object(object) end
method_missing(meth, *args, &block)
click to toggle source
Calls superclass method
Object::method_missing
# File lib/crm.rb, line 33 def method_missing(meth, *args, &block) if [:seid=, :semodule=].index(meth) run_create_accessor(self.class, meth) self.send(meth, args[0]) else super end end
primary_key()
click to toggle source
save()
click to toggle source
# File lib/crm.rb, line 89 def save raise 'Cannot delete users through API' end