Sha256: 6c7152c05e2f73b1a0657511c42b26bba60a21e5f18825ae56acfe100715724e

Contents?: true

Size: 621 Bytes

Versions: 2

Compression:

Stored size: 621 Bytes

Contents

require 'hamster'

module Middleman
  module CoreExtensions
    module Collections
      class StepContext
        def self.add_to_context(name, &func)
          send(:define_method, :"_internal_#{name}", &func)
        end

        attr_reader :descriptors

        def initialize
          @descriptors = ::Hamster.set
        end

        def method_missing(name, *args, &block)
          internal = :"_internal_#{name}"
          if respond_to?(internal)
            @descriptors = @descriptors.add(send(internal, *args, &block))
          else
            super
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
middleman-core-4.0.0.rc.1 lib/middleman-core/core_extensions/collections/step_context.rb
middleman-core-4.0.0.beta.2 lib/middleman-core/core_extensions/collections/step_context.rb