Class: Plutonium::Definition::Base Abstract

Inherits:
Object
  • Object
show all
Includes:
Actions, ConfigAttr, DefineableProps, InheritableConfigAttr, NestedInputs, Scoping, Search, Sorting
Defined in:
lib/plutonium/definition/base.rb

Overview

This class is abstract.

Subclass and override #customize_fields, #customize_inputs, #customize_filters, #customize_scopes, and #customize_sorters to implement custom behavior.

Note:

This class is not thread-safe. Ensure proper synchronization if used in a multi-threaded environment.

Base class for Plutonium definitions

Examples:

class MyDefinition < Plutonium::Definition::Base
  field :name, as: :string
  input :email, as: :email
  filter :status, type: :select, collection: %w[active inactive]
  scope :active
  default_scope :active
  sorter :created_at

  def customize_fields
    field :custom_field, as: :integer
  end
end

Direct Known Subclasses

Resource::Definition

Defined Under Namespace

Classes: Display, EditPage, Form, IndexPage, InteractiveActionPage, NewPage, QueryForm, ShowPage, Table, TextFilter

Instance Method Summary collapse

Methods included from Search

#search_definition

Methods included from Scoping

#default_scope

Methods included from Sorting

#default_sort

Constructor Details

#initializeBase

Returns a new instance of Base.



85
86
87
# File 'lib/plutonium/definition/base.rb', line 85

def initialize
  super
end

Instance Method Details

#collection_classObject



113
114
115
# File 'lib/plutonium/definition/base.rb', line 113

def collection_class
  self.class::Table
end

#detail_classObject



117
118
119
# File 'lib/plutonium/definition/base.rb', line 117

def detail_class
  self.class::Display
end

#edit_page_classObject



101
102
103
# File 'lib/plutonium/definition/base.rb', line 101

def edit_page_class
  self.class::EditPage
end

#form_classObject



109
110
111
# File 'lib/plutonium/definition/base.rb', line 109

def form_class
  self.class::Form
end

#index_page_classObject



89
90
91
# File 'lib/plutonium/definition/base.rb', line 89

def index_page_class
  self.class::IndexPage
end

#interactive_action_page_classObject



105
106
107
# File 'lib/plutonium/definition/base.rb', line 105

def interactive_action_page_class
  self.class::InteractiveActionPage
end

#new_page_classObject



93
94
95
# File 'lib/plutonium/definition/base.rb', line 93

def new_page_class
  self.class::NewPage
end

#query_formObject



121
122
123
# File 'lib/plutonium/definition/base.rb', line 121

def query_form
  self.class::QueryForm
end

#show_page_classObject



97
98
99
# File 'lib/plutonium/definition/base.rb', line 97

def show_page_class
  self.class::ShowPage
end