Class: Democritus::ClassBuilder::Command

Inherits:
Object
  • Object
show all
Defined in:
lib/democritus/class_builder/command.rb

Overview

An abstract class useful in composing additional Democritus::Commands

The expected interface for a Democritus::Command is as follows:

  • Its #initialize method must accept a :builder keyword (i.e. ‘#initialize`)

  • It responds to #call and #call does not accept any parameters

Instance Method Summary collapse

Constructor Details

#initialize(builder:) ⇒ Command

Returns a new instance of Command.

Parameters:



15
16
17
# File 'lib/democritus/class_builder/command.rb', line 15

def initialize(*, builder:)
  self.builder = builder
end

Instance Method Details

#callObject

This method is abstract.

Subclass and override #call to implement



22
23
24
# File 'lib/democritus/class_builder/command.rb', line 22

def call
  fail(NotImplementedError, 'Method #call should be overriden in child classes')
end

#defer(options = {}, &block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



27
28
29
# File 'lib/democritus/class_builder/command.rb', line 27

def defer(options = {}, &block)
  builder.defer(options, &block)
end