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, **kwargs) ⇒ Object



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

def self.for(*args, **kwargs)
  new(*args, **kwargs).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 "    def initialize(\#{initializer_signature(attributes)})\n      \#{attr_assignments(attributes)}\n    end\n  RUBY\nend\n"