Class: Ivar::ExplicitKeywordDeclaration

Inherits:
ExplicitDeclaration show all
Defined in:
lib/ivar/explicit_keyword_declaration.rb

Overview

Represents an explicit declaration that initializes from keyword arguments

Instance Attribute Summary

Attributes inherited from Declaration

#manifest, #name

Instance Method Summary collapse

Methods inherited from ExplicitDeclaration

#initialize, #on_declare

Methods inherited from Declaration

#initialize, #on_declare

Constructor Details

This class inherits a constructor from Ivar::ExplicitDeclaration

Instance Method Details

#before_init(instance, args, kwargs) ⇒ Object

Called before object initialization

Parameters:

  • instance (Object)

    The object being initialized

  • args (Array)

    Positional arguments

  • kwargs (Hash)

    Keyword arguments



16
17
18
19
20
21
22
# File 'lib/ivar/explicit_keyword_declaration.rb', line 16

def before_init(instance, args, kwargs)
  super
  kwarg_name = @name.to_s.delete_prefix("@").to_sym
  if kwargs.key?(kwarg_name)
    instance.instance_variable_set(@name, kwargs.delete(kwarg_name))
  end
end

#kwarg_init?Boolean

Check if this declaration uses keyword argument initialization

Returns:

  • (Boolean)

    Whether this declaration uses keyword argument initialization



10
# File 'lib/ivar/explicit_keyword_declaration.rb', line 10

def kwarg_init? = true