Class: Datasource::CollectionContext

Inherits:
Object
  • Object
show all
Defined in:
lib/datasource/collection_context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scope, collection, datasource, params) ⇒ CollectionContext

Returns a new instance of CollectionContext.



5
6
7
8
9
10
11
12
# File 'lib/datasource/collection_context.rb', line 5

def initialize(scope, collection, datasource, params)
  @scope = scope
  @all_models = collection
  @datasource = datasource
  @datasource_class = datasource.class
  @params = params
  @loaded_values = {}
end

Instance Attribute Details

#all_modelsObject (readonly)

Returns the value of attribute all_models.



3
4
5
# File 'lib/datasource/collection_context.rb', line 3

def all_models
  @all_models
end

#datasourceObject (readonly)

Returns the value of attribute datasource.



3
4
5
# File 'lib/datasource/collection_context.rb', line 3

def datasource
  @datasource
end

#datasource_classObject (readonly)

Returns the value of attribute datasource_class.



3
4
5
# File 'lib/datasource/collection_context.rb', line 3

def datasource_class
  @datasource_class
end

#loaded_valuesObject (readonly)

Returns the value of attribute loaded_values.



3
4
5
# File 'lib/datasource/collection_context.rb', line 3

def loaded_values
  @loaded_values
end

#paramsObject (readonly)

Returns the value of attribute params.



3
4
5
# File 'lib/datasource/collection_context.rb', line 3

def params
  @params
end

#scopeObject (readonly)

Returns the value of attribute scope.



3
4
5
# File 'lib/datasource/collection_context.rb', line 3

def scope
  @scope
end

Instance Method Details

#model_idsObject Also known as: ids



25
26
27
28
29
# File 'lib/datasource/collection_context.rb', line 25

def model_ids
  return @model_ids if @model_ids
  models
  @model_ids
end

#modelsObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/datasource/collection_context.rb', line 14

def models
  return @models if @models

  @model_ids = []
  @models = all_models.select do |model|
    id = model.send(@datasource_class.primary_key)
    @model_ids << id
    id
  end
end