Class: AuxiliaryRails::AbstractCommand

Inherits:
Object
  • Object
show all
Extended by:
Dry::Initializer
Includes:
ActiveModel::Validations
Defined in:
lib/auxiliary_rails/abstract_command.rb

Direct Known Subclasses

ApplicationCommand

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*args) ⇒ Object



9
10
11
# File 'lib/auxiliary_rails/abstract_command.rb', line 9

def self.call(*args)
  new(*args).call
end

.i18n_scopeObject

Method for ActiveModel::Translation



47
48
49
# File 'lib/auxiliary_rails/abstract_command.rb', line 47

def self.i18n_scope
  :commands
end

Instance Method Details

#callObject

Raises:

  • (NotImplementedError)


13
14
15
# File 'lib/auxiliary_rails/abstract_command.rb', line 13

def call
  raise NotImplementedError
end

#failure?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/auxiliary_rails/abstract_command.rb', line 17

def failure?
  status?(:failure)
end

#read_attribute_for_validation(attr_name) ⇒ Object

Method for ActiveModel::Errors



37
38
39
40
41
42
43
44
# File 'lib/auxiliary_rails/abstract_command.rb', line 37

def read_attribute_for_validation(attr_name)
  attr_name = attr_name.to_sym
  if attr_name == :command
    self
  else
    self.class.dry_initializer.attributes(self)[attr_name]
  end
end

#status?(value) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
25
# File 'lib/auxiliary_rails/abstract_command.rb', line 21

def status?(value)
  ensure_execution!

  status == value&.to_sym
end

#success?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/auxiliary_rails/abstract_command.rb', line 27

def success?
  status?(:success)
end

#transaction(&block) ⇒ Object

Shortcut for ActiveRecord::Base.transaction



32
33
34
# File 'lib/auxiliary_rails/abstract_command.rb', line 32

def transaction(&block)
  ActiveRecord::Base.transaction(&block) if block_given?
end