Class: ConvenientService::Service::Plugins::CanHaveSteps::Entities::Method::Commands::DefineMethodInContainer

Inherits:
ConvenientService::Support::Command show all
Includes:
ConvenientService::Support::Delegate
Defined in:
lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ConvenientService::Support::Delegate::ClassMethodsForForwardable

#delegate

Methods inherited from ConvenientService::Support::Command

[], call

Constructor Details

#initialize(method:, container:, index:) ⇒ void



42
43
44
45
46
# File 'lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb', line 42

def initialize(method:, container:, index:)
  @method = method
  @container = container
  @index = index
end

Instance Attribute Details

#containerObject (readonly)

Returns the value of attribute container.



28
29
30
# File 'lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb', line 28

def container
  @container
end

#indexObject (readonly)

Returns the value of attribute index.



34
35
36
# File 'lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb', line 34

def index
  @index
end

#methodObject (readonly)

Returns the value of attribute method.



22
23
24
# File 'lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb', line 22

def method
  @method
end

Instance Method Details

#callBoolean

Returns true if method is just defined, false if already defined.

Returns:

  • (Boolean)

    true if method is just defined, false if already defined.



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/convenient_service/service/plugins/can_have_steps/entities/method/commands/define_method_in_container.rb', line 51

def call
  container.lock.synchronize do
    return false if has_defined_method?

    define_alias_method

    define_method

    true
  end
end