Class: Terrazzo::Field::Deferred

Inherits:
Object
  • Object
show all
Defined in:
lib/terrazzo/field/deferred.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(deferred_class, **options) ⇒ Deferred

Returns a new instance of Deferred.



6
7
8
9
# File 'lib/terrazzo/field/deferred.rb', line 6

def initialize(deferred_class, **options)
  @deferred_class = deferred_class
  @options = options
end

Instance Attribute Details

#deferred_classObject (readonly)

Returns the value of attribute deferred_class.



4
5
6
# File 'lib/terrazzo/field/deferred.rb', line 4

def deferred_class
  @deferred_class
end

#optionsObject (readonly)

Returns the value of attribute options.



4
5
6
# File 'lib/terrazzo/field/deferred.rb', line 4

def options
  @options
end

Instance Method Details

#associative?Boolean

Returns:



33
34
35
# File 'lib/terrazzo/field/deferred.rb', line 33

def associative?
  deferred_class.associative?
end

#eager_load?Boolean

Returns:



29
30
31
# File 'lib/terrazzo/field/deferred.rb', line 29

def eager_load?
  deferred_class.eager_load?
end

#field_typeObject



37
38
39
# File 'lib/terrazzo/field/deferred.rb', line 37

def field_type
  deferred_class.field_type
end

#new(attribute, data = nil, page = nil, resource: nil, options: {}) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/terrazzo/field/deferred.rb', line 11

def new(attribute, data = nil, page = nil, resource: nil, options: {})
  deferred_class.new(
    attribute,
    data,
    page,
    resource: resource,
    options: self.options.merge(options)
  )
end

#permitted_attribute(attr, extra_options = {}) ⇒ Object



41
42
43
# File 'lib/terrazzo/field/deferred.rb', line 41

def permitted_attribute(attr, extra_options = {})
  deferred_class.permitted_attribute(attr, self.options.merge(extra_options))
end

#searchable?Boolean

Returns:



21
22
23
# File 'lib/terrazzo/field/deferred.rb', line 21

def searchable?
  options.key?(:searchable) ? options[:searchable] : deferred_class.searchable?
end

#sortable?Boolean

Returns:



25
26
27
# File 'lib/terrazzo/field/deferred.rb', line 25

def sortable?
  options.key?(:sortable) ? options[:sortable] : deferred_class.sortable?
end

#with_options(**opts) ⇒ Object



45
46
47
# File 'lib/terrazzo/field/deferred.rb', line 45

def with_options(**opts)
  self.class.new(deferred_class, **options.merge(opts))
end