Class: AdminScript::Base

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Callbacks
Includes:
ActiveModel::Model, ActiveModel::Validations::Callbacks, TypeAttributes
Defined in:
lib/admin_script/base.rb

Constant Summary collapse

RESERVED_CLASSE_NAMES =
%w(
  AdminScript::Base
  AdminScript::Configuration
  AdminScript::Engine
  AdminScript::TypeAttributes
  AdminScript::VERSION
).freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TypeAttributes

cast_value

Constructor Details

#initializeBase

Returns a new instance of Base.



60
61
62
63
64
# File 'lib/admin_script/base.rb', line 60

def initialize(*)
  run_callbacks :initialize do
    super
  end
end

Instance Attribute Details

#failure_messageObject

Returns the value of attribute failure_message.



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

def failure_message
  @failure_message
end

#location_urlObject

Returns the value of attribute location_url.



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

def location_url
  @location_url
end

#success_messageObject

Returns the value of attribute success_message.



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

def success_message
  @success_message
end

Class Method Details

.find_class(element) ⇒ Object



51
52
53
# File 'lib/admin_script/base.rb', line 51

def find_class(element)
  subclasses.find { |klass| klass.to_param == element }
end

.inherited(subclass) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/admin_script/base.rb', line 25

def inherited(subclass)
  if RESERVED_CLASSE_NAMES.include?(subclass.to_s)
    raise ArgumentError, "Reserved class name given. #{subclass}"
  end

  super

  subclass.class_exec do
    cattr_accessor :description
    cattr_accessor :type_attributes
    self.type_attributes = {}
  end
end

.scriptObject



55
56
57
# File 'lib/admin_script/base.rb', line 55

def script
  instance_method(:perform).source
end

.to_paramObject



47
48
49
# File 'lib/admin_script/base.rb', line 47

def to_param
  model_name.element
end

.type_attribute(name, type) ⇒ Object



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

def type_attribute(name, type)
  name = name.to_sym
  type = type.to_sym

  define_type_attribute_accessor(name, type)
  type_attributes.merge!(name => type)
end

Instance Method Details

#performObject

Raises:

  • (NotImplementedError)


74
75
76
# File 'lib/admin_script/base.rb', line 74

def perform
  raise NotImplementedError, 'not implemented yet.'
end

#persisted?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/admin_script/base.rb', line 66

def persisted?
  true
end

#to_paramObject



70
71
72
# File 'lib/admin_script/base.rb', line 70

def to_param
  self.class.to_param
end