Sha256: ccb38953d968f2cc75735aa2aa93045e00b3677432c8c2c849ae5c3c391e08af

Contents?: true

Size: 849 Bytes

Versions: 1

Compression:

Stored size: 849 Bytes

Contents

module Alf
  module Algebra
    module Shortcut

      module DelegationMethods

        def type_check(options = {})
          expand.type_check(options = {})
        end

        def heading
          expand.heading
        end

        def keys
          expand.keys
        end

        Algebra::Operator.listen do |name, clazz|
          define_method(name) do |*args|
            operands, arguments = args[0...clazz.arity], args[clazz.arity..-1]
            clazz.new(operands, *arguments)
          end
        end

      end # module DelegationMethods

      def self.included(mod)
        super
        mod.instance_eval{
          include(Operator)
          include(Relational)
          include(DelegationMethods)
        }
      end

    end # module Shortcut
  end # module Algebra
end # module Alf
require_relative 'shortcut/allbut'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
alf-core-0.15.0 lib/alf/algebra/shortcut.rb