Class: Interactor::Initializer::Initialize

Inherits:
Object
  • Object
show all
Defined in:
lib/interactor/initializer/initialize.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(target_class, attributes, keyword_params: false) ⇒ Initialize

Returns a new instance of Initialize.



8
9
10
11
12
# File 'lib/interactor/initializer/initialize.rb', line 8

def initialize(target_class, attributes, keyword_params: false)
  @target_class = target_class
  @attributes = attributes
  @keyword_params = keyword_params
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



6
7
8
# File 'lib/interactor/initializer/initialize.rb', line 6

def attributes
  @attributes
end

#keyword_paramsObject (readonly)

Returns the value of attribute keyword_params.



6
7
8
# File 'lib/interactor/initializer/initialize.rb', line 6

def keyword_params
  @keyword_params
end

#target_classObject (readonly)

Returns the value of attribute target_class.



6
7
8
# File 'lib/interactor/initializer/initialize.rb', line 6

def target_class
  @target_class
end

Class Method Details

.for(*args) ⇒ Object



2
3
4
# File 'lib/interactor/initializer/initialize.rb', line 2

def self.for(*args)
  new(*args).run
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
# File 'lib/interactor/initializer/initialize.rb', line 14

def run
  target_class.class_eval <<-RUBY
    def initialize(#{initializer_signature(attributes)})
      #{attr_assignments(attributes)}
    end
  RUBY
end