Class: MocaRlibs::Service

Inherits:
Object
  • Object
show all
Defined in:
lib/moca_rlibs/service.rb

Overview

Rails用サービス層の導入

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*_args, **_kwargs, &_block) ⇒ Service

Returns a new instance of Service.

Raises:

  • (NotImplementedError)


8
9
10
# File 'lib/moca_rlibs/service.rb', line 8

def initialize(*_args, **_kwargs, &_block)
  raise NotImplementedError, "#{self.class}##{__method__} was not implemented"
end

Instance Attribute Details

#resultObject (readonly)

Returns the value of attribute result.



6
7
8
# File 'lib/moca_rlibs/service.rb', line 6

def result
  @result
end

Class Method Details

.call!(*args, **kwargs, &block) ⇒ Service

サービスをインスタンス化して処理を実行する与えられたパラメータを使い、クラスをインスタンス化して、処理を実行する。処理結果は @result に格納される。

Returns:

  • (Service)

    サービスのインスタンス



16
17
18
19
20
# File 'lib/moca_rlibs/service.rb', line 16

def self.call!(*args, **kwargs, &block)
  instance = new(*args, **kwargs, &block)
  instance.instance_variable_set(:@result, instance.call!)
  instance
end

Instance Method Details

#call!Object

This method is abstract.

継承してサービスの処理を実装する

サービスの処理を実行し結果を返す

Returns:

  • (Object)

    処理結果

Raises:

  • (NotImplementedError)


25
26
27
# File 'lib/moca_rlibs/service.rb', line 25

def call!
  raise NotImplementedError, "#{self.class}##{__method__} was not implemented"
end