Class: Sinclair::MethodDefinition::StringDefinition Private

Inherits:
Sinclair::MethodDefinition show all
Defined in:
lib/sinclair/method_definition/string_definition.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Define an instance method from string

Author:

  • darthjee

Constant Summary

Constants inherited from Sinclair::MethodDefinition

DEFAULT_OPTIONS

Instance Attribute Summary

Attributes inherited from Sinclair::MethodDefinition

#name

Attributes included from OptionsParser

#options

Instance Method Summary collapse

Methods inherited from Sinclair::MethodDefinition

build_with, default_value, for, from

Methods included from OptionsParser

#options_object

Constructor Details

#initialize(name, code = nil, **options) ⇒ StringDefinition

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of StringDefinition.

Parameters:

  • name (String, Symbol)

    name of the method

  • code (String) (defaults to: nil)

    code to be evaluated as method

  • options (Hash)

    Options of construction

Options Hash (**options):

  • cached (Boolean)

    Flag telling to create a method with cache



17
18
19
20
# File 'lib/sinclair/method_definition/string_definition.rb', line 17

def initialize(name, code = nil, **options)
  @code = code
  super(name, **options)
end

Instance Method Details

#build(klass, type) ⇒ Symbol

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Builds the method defined

The method is built using Sinclair::MethodBuilder::StringMethodBuilder

Parameters:

Returns:

  • (Symbol)

    the name of the method built

See Also:



10
# File 'lib/sinclair/method_definition/string_definition.rb', line 10

build_with MethodBuilder::StringMethodBuilder

#code_definitionString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

string with the code to be defined

Returns:

  • (String)


28
29
30
31
32
33
34
# File 'lib/sinclair/method_definition/string_definition.rb', line 28

def code_definition
  <<-CODE
    def #{name}#{parameters_string}
      #{code_line}
    end
  CODE
end