Class: Marameters::Sourcers::Function

Inherits:
Object
  • Object
show all
Defined in:
lib/marameters/sourcers/function.rb

Overview

Obtains the literal source of a function’s body.

Constant Summary collapse

PATTERN =
/
  (?:(?<function>proc|->))?  # Statement.
  \s*                        # Optional space.
  \{                         # Block open.
  (?<body>.*?)               # Source code body.
  \}                         # Block close.
/x

Instance Method Summary collapse

Constructor Details

#initialize(pattern: PATTERN, reader: Readers::Any.new) ⇒ Function

Returns a new instance of Function.



15
16
17
18
19
# File 'lib/marameters/sourcers/function.rb', line 15

def initialize pattern: PATTERN, reader: Readers::Any.new
  @pattern = pattern
  @reader = reader
  freeze
end

Instance Method Details

#call(function) ⇒ Object



21
# File 'lib/marameters/sourcers/function.rb', line 21

def call(function) = reader.call(function).then { |line| line.match(pattern)[:body].strip }