Class: Datasource::Attributes::ComputedAttribute

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

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

._dependsObject

Returns the value of attribute _depends.



5
6
7
# File 'lib/datasource/attributes/computed_attribute.rb', line 5

def _depends
  @_depends
end

._loader_dependsObject

Returns the value of attribute _loader_depends.



5
6
7
# File 'lib/datasource/attributes/computed_attribute.rb', line 5

def _loader_depends
  @_loader_depends
end

Class Method Details

.depends(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/datasource/attributes/computed_attribute.rb', line 12

def depends(*args)
  args.each do |dep|
    _depends.deep_merge!(dep)
  end
  _depends.delete_if do |key, value|
    if [:loaders, :loader].include?(key.to_sym)
      self._loader_depends += Array(value).map(&:to_sym)
      true
    end
  end
end

.inherited(base) ⇒ Object



7
8
9
10
# File 'lib/datasource/attributes/computed_attribute.rb', line 7

def inherited(base)
  base._depends = (_depends || {}).dup # TODO: deep dup?
  base._loader_depends = (_loader_depends || []).dup # TODO: deep dup?
end