Sha256: 97798a1651de9199a361001f2426472521b9653699c99c09a122a6b22bc2814a

Contents?: true

Size: 1.01 KB

Versions: 14

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

class Sinclair
  # @api private
  # @author darthjee
  #
  # Enumerator holding all method definitions
  class MethodDefinitions
    delegate :each, to: :definitions

    # Builds and adds new definition
    #
    # @param name [String,Symbol] method name
    # @param options [Hash] Options of construction
    # @option options cached [Boolean] Flag telling to create
    #   a method with cache
    #
    # @overload add(definition_class, name, code = nil, **options)
    #   @param code [String] code to be evaluated when the method is ran
    #
    # @overload add(definition_class, name, **options, &block)
    #   @param block [Proc]  block to be ran as method
    #
    # @return MethodDefinitions
    def add(name, code = nil, **options, &block)
      definitions << MethodDefinition.from(name, code, **options, &block)
    end

    private

    # @private
    #
    # All definitions
    #
    # @return [Array<MethodDefinition>]
    def definitions
      @definitions ||= []
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
sinclair-1.9.0 lib/sinclair/method_definitions.rb
sinclair-1.8.0 lib/sinclair/method_definitions.rb
sinclair-1.7.0 lib/sinclair/method_definitions.rb
sinclair-1.6.7 lib/sinclair/method_definitions.rb
sinclair-1.6.6 lib/sinclair/method_definitions.rb
sinclair-1.6.5 lib/sinclair/method_definitions.rb
sinclair-1.6.4 lib/sinclair/method_definitions.rb
sinclair-1.6.3 lib/sinclair/method_definitions.rb
sinclair-1.6.2 lib/sinclair/method_definitions.rb
sinclair-1.6.1 lib/sinclair/method_definitions.rb
sinclair-1.6.0 lib/sinclair/method_definitions.rb
sinclair-1.5.2 lib/sinclair/method_definitions.rb
sinclair-1.5.1 lib/sinclair/method_definitions.rb
sinclair-1.5.0 lib/sinclair/method_definitions.rb