Class: Granite::Form::Model::Associations::PersistenceAdapters::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/granite/form/model/associations/persistence_adapters/base.rb

Direct Known Subclasses

ActiveRecord

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data_source, primary_key, scope_proc = nil) ⇒ Base

Returns a new instance of Base.



9
10
11
12
13
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 9

def initialize(data_source, primary_key, scope_proc = nil)
  @data_source = data_source
  @primary_key = primary_key
  @scope_proc = scope_proc
end

Instance Attribute Details

#data_sourceObject (readonly)

Returns the value of attribute data_source.



7
8
9
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 7

def data_source
  @data_source
end

#primary_keyObject (readonly)

Returns the value of attribute primary_key.



7
8
9
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 7

def primary_key
  @primary_key
end

#scope_procObject (readonly)

Returns the value of attribute scope_proc.



7
8
9
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 7

def scope_proc
  @scope_proc
end

Instance Method Details

#build(_attributes) ⇒ Object

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 15

def build(_attributes)
  raise NotImplementedError, 'Should be implemented in inhereted adapter. Build new instance of data object by attributes'
end

#data_typeObject

Raises:

  • (NotImplementedError)


35
36
37
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 35

def data_type
  raise NotImplementedError, 'Should be implemented in inhereted adapter. Type of data object for type_check'
end

#find_all(owner, identificators) ⇒ Object



27
28
29
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 27

def find_all(owner, identificators)
  scope(owner, identificators).to_a
end

#find_one(owner, identificator) ⇒ Object



23
24
25
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 23

def find_one(owner, identificator)
  scope(owner, identificator).first
end

#identify(_object) ⇒ Object

Raises:

  • (NotImplementedError)


31
32
33
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 31

def identify(_object)
  raise NotImplementedError, 'Should be implemented in inhereted adapter. Field to be used as primary_key for object'
end

#primary_key_typeObject

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 39

def primary_key_type
  raise NotImplementedError, 'Should be implemented in inhereted adapter. Ruby data type'
end

#referenced_proxyObject

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 43

def referenced_proxy
  raise NotImplementedError, 'Should be implemented in inhereted adapter. Object to manage proxying of methods to scope.'
end

#scope(_owner, _source) ⇒ Object

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/granite/form/model/associations/persistence_adapters/base.rb', line 19

def scope(_owner, _source)
  raise NotImplementedError, 'Should be implemented in inhereted adapter. Better to be Enumerable'
end