Class: ModelBase::ColumnAttribute

Inherits:
Rails::Generators::GeneratedAttribute
  • Object
show all
Defined in:
lib/model_base/column_attribute.rb

Defined Under Namespace

Classes: AbstractSelectRenderer, EnumerizedSelectRenderer, ReferenceSelectRenderer

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model, name, type, column: nil, reference: nil, index_type: false, attr_options: {}) ⇒ ColumnAttribute

Returns a new instance of ColumnAttribute.



13
14
15
16
17
18
# File 'lib/model_base/column_attribute.rb', line 13

def initialize(model, name, type, column: nil, reference: nil, index_type: false, attr_options: {})
  super(name, type, index_type, attr_options)
  @model = model
  @reference = reference
  @column = column
end

Instance Attribute Details

#columnObject (readonly)

Returns the value of attribute column.



11
12
13
# File 'lib/model_base/column_attribute.rb', line 11

def column
  @column
end

#linkableObject Also known as: linkable?

Returns the value of attribute linkable.



7
8
9
# File 'lib/model_base/column_attribute.rb', line 7

def linkable
  @linkable
end

#modelObject (readonly)

Returns the value of attribute model.



11
12
13
# File 'lib/model_base/column_attribute.rb', line 11

def model
  @model
end

#referenceObject (readonly)

Returns the value of attribute reference.



10
11
12
# File 'lib/model_base/column_attribute.rb', line 10

def reference
  @reference
end

Instance Method Details

#enumerized?Boolean

Returns:

  • (Boolean)


31
32
33
34
# File 'lib/model_base/column_attribute.rb', line 31

def enumerized?
  model.model_class.respond_to?(name) &&
    defined?(Enumerize) && model.model_class.send(name).is_a?(Enumerize::Attribute)
end

#ref_modelObject



20
21
22
23
24
25
# File 'lib/model_base/column_attribute.rb', line 20

def ref_model
  unless defined?(@ref_model)
    @ref_model = reference.nil? ? nil : ModelBase::MetaModel.new(reference.class_name)
  end
  @ref_model
end

#required?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/model_base/column_attribute.rb', line 27

def required?
  !column.try(:null)
end

#select_rendererObject



36
37
38
39
# File 'lib/model_base/column_attribute.rb', line 36

def select_renderer
  ref_model ? ReferenceSelectRenderer.new(self) :
    enumerized? ? EnumerizedSelectRenderer.new(self) : nil
end