Module: Crm::Helpers::Finders

Defined in:
lib/crm/helpers/finders.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



6
7
8
# File 'lib/crm/helpers/finders.rb', line 6

def self.included(base)
  base.extend self
end

Instance Method Details

#find(*args) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/crm/helpers/finders.rb', line 10

def find(*args)
  wants_array = args.first.is_a?(Array)
  ids = args.flatten

  case ids.size
  when 0 then raise ArgumentError, 'Requires one or more IDs as argument.'
  when 1
    crm_object = find_one(ids.first)
    wants_array ? [crm_object].compact : crm_object
  else find_many(ids)
  end
end

#find_by_query(query, options = {}) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/crm/helpers/finders.rb', line 23

def find_by_query(query, options = {})
  limit = options[:limit] || 50
  sort_order = options[:sort_order] || 'desc'

  result = crm_class.query(query).limit(limit).sort_order(sort_order).to_a
  result.map do |crm_object|
    new(crm_object.attributes)
  end
end