Class: Eco::API::Common::Loaders::CaseBase

Inherits:
Base
  • Object
show all
Defined in:
lib/eco/api/common/loaders/case_base.rb

Direct Known Subclasses

ErrorHandler, Parser, Policy, UseCase

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

<=>, created_at, #initialize, set_created_at!

Methods included from ClassHelpers

#class_resolver, #descendants, #descendants?, #inheritable_attrs, #inheritable_class_vars, #inherited, #instance_variable_name, #new_class, #resolve_class, #to_constant

Constructor Details

This class inherits a constructor from Eco::API::Common::Loaders::Base

Class Attribute Details

.name(value = nil) ⇒ Object

The name that this case, policy or error handler will have.



11
12
13
14
15
16
# File 'lib/eco/api/common/loaders/case_base.rb', line 11

def name(value = nil)
  name_only_once! if value
  set_created_at!
  return @name ||= self.to_s unless value
  @name = value
end

.type=(value) ⇒ Object (writeonly)

Sets the attribute type

Parameters:

  • value

    the value to set the attribute type to.



8
9
10
# File 'lib/eco/api/common/loaders/case_base.rb', line 8

def type=(value)
  @type = value
end

Class Method Details

.name_only_once!Object

Prevent the same class to be re-opened/re-named



19
20
21
# File 'lib/eco/api/common/loaders/case_base.rb', line 19

def name_only_once!
  raise "You have already declared #{self} or you are trying to give it a name twice" if @name
end

Instance Method Details

#nameObject



25
26
27
# File 'lib/eco/api/common/loaders/case_base.rb', line 25

def name
  self.class.name
end