Class: JsonapiCompliable::Scoping::Base

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

Direct Known Subclasses

DefaultFilter, ExtraFields, Filter, Paginate, Sort

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource, query_hash, scope, opts = {}) ⇒ Base

Returns a new instance of Base.



6
7
8
9
10
11
# File 'lib/jsonapi_compliable/scoping/base.rb', line 6

def initialize(resource, query_hash, scope, opts = {})
  @query_hash = query_hash
  @resource   = resource
  @scope      = scope
  @opts       = opts
end

Instance Attribute Details

#query_hashObject (readonly)

Returns the value of attribute query_hash.



4
5
6
# File 'lib/jsonapi_compliable/scoping/base.rb', line 4

def query_hash
  @query_hash
end

#resourceObject (readonly)

Returns the value of attribute resource.



4
5
6
# File 'lib/jsonapi_compliable/scoping/base.rb', line 4

def resource
  @resource
end

Instance Method Details

#applyObject



13
14
15
16
17
18
19
# File 'lib/jsonapi_compliable/scoping/base.rb', line 13

def apply
  if apply?
    apply_standard_or_override
  else
    @scope
  end
end

#apply?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/jsonapi_compliable/scoping/base.rb', line 21

def apply?
  true
end

#apply_custom_scopeObject



43
44
45
# File 'lib/jsonapi_compliable/scoping/base.rb', line 43

def apply_custom_scope
  raise 'override in subclass'
end

#apply_standard_or_overrideObject



25
26
27
28
29
30
31
32
33
# File 'lib/jsonapi_compliable/scoping/base.rb', line 25

def apply_standard_or_override
  if apply_standard_scope?
    @scope = apply_standard_scope
  else
    @scope = apply_custom_scope
  end

  @scope
end

#apply_standard_scopeObject



39
40
41
# File 'lib/jsonapi_compliable/scoping/base.rb', line 39

def apply_standard_scope
  raise 'override in subclass'
end

#apply_standard_scope?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/jsonapi_compliable/scoping/base.rb', line 35

def apply_standard_scope?
  custom_scope.nil?
end