Class: AdminCore::ResourceField::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/admin_core/resource_field/base.rb

Overview

This class is abstract.

Subclass and override #field_value to implement a custom resource field class.

Direct Known Subclasses

BelongsTo, Boolean, Date, DateTime, Enum, Number, String, Text

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource, name, options, page) ⇒ Base

Returns a new instance of Base.

Parameters:

  • resource (ActiveRecord::Base)
  • name (Symbol)
  • options (Hash)
  • page (Symbol)

    :index, :new, :show or :edit

Raises:

  • (AdminCore::InvalidFieldDefinition)


27
28
29
30
31
32
33
# File 'lib/admin_core/resource_field/base.rb', line 27

def initialize(resource, name, options, page)
  @resource = resource
  @name = name
  @options = options
  @page = page
  validate
end

Class Method Details

.permitted_field_name_of(name) ⇒ Symbol

Parameters:

  • name (Symbol)

Returns:

  • (Symbol)


14
15
16
# File 'lib/admin_core/resource_field/base.rb', line 14

def self.permitted_field_name_of(name)
  name
end

.registerObject



18
19
20
# File 'lib/admin_core/resource_field/base.rb', line 18

def self.register
  AdminCore::ResourceFieldBuilder.register(type, self)
end

.typeSymbol

Returns:

  • (Symbol)


8
9
10
# File 'lib/admin_core/resource_field/base.rb', line 8

def self.type
  name.demodulize.underscore.to_sym
end

Instance Method Details

#to_hashHash

Representation of ResourceField type.

Returns:

  • (Hash)


38
39
40
41
42
43
44
45
# File 'lib/admin_core/resource_field/base.rb', line 38

def to_hash
  {
    type: self.class.type,
    name: name,
    displayName: human_attribute_name,
    value: field_value,
  }
end