Module: ZohoCrmUtils::ClassMethods
- Defined in:
- lib/zoho_crm_utils.rb
Instance Method Summary collapse
- #create_accessor(klass, names) ⇒ Object
- #create_getter(klass, *names) ⇒ Object
- #create_setter(klass, *names) ⇒ Object
- #method_is_module?(str_or_sym) ⇒ Boolean
- #method_name?(n) ⇒ Boolean
Instance Method Details
#create_accessor(klass, names) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/zoho_crm_utils.rb', line 9 def create_accessor(klass, names) names.each do |name| n = name.class == Symbol ? name.to_s : name n.gsub!(/[()]*/, '') raise(RuntimeError, "Bad field name: #{name}") unless method_name?(n) create_getter(klass, n) create_setter(klass, n) end names end |
#create_getter(klass, *names) ⇒ Object
20 21 22 23 24 |
# File 'lib/zoho_crm_utils.rb', line 20 def create_getter(klass, *names) names.each do |name| klass.send(:define_method, "#{name}") { instance_variable_get("@#{name}") } end end |
#create_setter(klass, *names) ⇒ Object
26 27 28 29 30 |
# File 'lib/zoho_crm_utils.rb', line 26 def create_setter(klass, *names) names.each do |name| klass.send(:define_method, "#{name}=") { |val| instance_variable_set("@#{name}", val) } end end |
#method_is_module?(str_or_sym) ⇒ Boolean
37 38 39 40 41 42 43 44 |
# File 'lib/zoho_crm_utils.rb', line 37 def method_is_module?(str_or_sym) return nil if str_or_sym.nil? s = str_or_sym.class == String ? str_or_sym : ApiUtils.symbol_to_string(str_or_sym) possible_module = s[s.length - 1].downcase == 's' ? s : s + 's' i = RubyZoho.configuration.crm_modules.index(possible_module.capitalize) return str_or_sym unless i.nil? nil end |
#method_name?(n) ⇒ Boolean
32 33 34 35 |
# File 'lib/zoho_crm_utils.rb', line 32 def method_name?(n) name = n.class == String ? ApiUtils.string_to_symbol(n) : n return /[@$"]/ !~ name.inspect end |