Module: Traits::Utilities

Included in:
Traits
Defined in:
lib/traits/utilities.rb

Instance Method Summary collapse

Instance Method Details

#active_record_descendant?(obj) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/traits/utilities.rb', line 23

def active_record_descendant?(obj)
  obj.kind_of?(Class) && obj < ActiveRecord::Base
end

#active_record_instance?(obj) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/traits/utilities.rb', line 27

def active_record_instance?(obj)
  obj.kind_of?(ActiveRecord::Base)
end

#retrieve_model_class(obj) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/traits/utilities.rb', line 6

def retrieve_model_class(obj)
  if active_record_descendant?(obj)
    obj

  elsif active_record_instance?(obj)
    obj.class

  else
    case obj
      when Symbol then obj.to_s.camelize.constantize
      when String then obj.camelize.constantize
      when Model  then obj.model_class
      else raise UnidentifiedModelReference, obj
    end
  end
end

#valid_active_record_identifier?(id) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/traits/utilities.rb', line 31

def valid_active_record_identifier?(id)
  id.kind_of?(String) || id.kind_of?(Numeric)
end