Class: JsonapiCompliable::Util::Scoping

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonapi_compliable/util/scoping.rb

Class Method Summary collapse

Class Method Details

.apply?(controller, object, force) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/jsonapi_compliable/util/scoping.rb', line 4

def self.apply?(controller, object, force)
  return false if force == false
  return true if !controller._jsonapi_scoped && object.is_a?(ActiveRecord::Relation)

  already_scoped = !!controller._jsonapi_scoped
  is_activerecord = object.is_a?(ActiveRecord::Base)
  is_activerecord_array = object.is_a?(Array) && object[0].is_a?(ActiveRecord::Base)

  if [already_scoped, is_activerecord, is_activerecord_array].any?
    false
  else
    true
  end
end