Class: Kamaze::Project::Tools::BaseTool Abstract

Inherits:
Observable show all
Defined in:
lib/kamaze/project/tools/base_tool.rb

Overview

This class is abstract.

Provides base for tools

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBaseTool

Returns a new instance of BaseTool.



15
16
17
18
19
20
21
22
23
# File 'lib/kamaze/project/tools/base_tool.rb', line 15

def initialize
  super()

  dispatch_event(:before_setup)
  setup
  dispatch_event(:after_setup)

  attrs_mute!
end

Instance Attribute Details

#observer_peersHash|nil (readonly, protected) Originally defined in module Concern::Observable

Returns:

  • (Hash|nil)

Instance Method Details

#attrs_mute!self (protected)

Mut(at)e attributes

After initialization, attributes given has mutable become ro (protected setter)

Returns:

  • (self)


50
51
52
53
54
55
56
57
58
# File 'lib/kamaze/project/tools/base_tool.rb', line 50

def attrs_mute!
  mutable_attributes.each do |m|
    # rubocop:disable Style/AccessModifierDeclarations
    self.singleton_class.class_eval { protected "#{m}=" }
    # rubocop:enable Style/AccessModifierDeclarations
  end

  self
end

#mutable_attributesArray

This method is abstract.

Mutable attributes

Mutable attributes become ro after initialization

Returns:

  • (Array)


31
32
33
# File 'lib/kamaze/project/tools/base_tool.rb', line 31

def mutable_attributes
  []
end

#setupObject (protected)

This method is abstract.

Execute additionnal setup



40
41
42
# File 'lib/kamaze/project/tools/base_tool.rb', line 40

def setup
  nil
end