Sha256: 132c9cdf0a8daffb1b814c5ecc6b44a774f5cf529494dff8a590756e0a9ab912

Contents?: true

Size: 813 Bytes

Versions: 2

Compression:

Stored size: 813 Bytes

Contents

require 'set'
require 'backports'

module ActionTree

  require 'action_tree/eval_scope'
  require 'action_tree/capture_hash'
  require 'action_tree/dialect_helper'

  module Plugins
    require 'action_tree/plugins/tilt'
  end


  module Dialect
    def new(*prms, &blk)
      self::Node.new(*prms, &blk)
    end
    def apply(mod)
      self::Node.send(:include, mod::NodeMixin)
      self::Match.send(:include, mod::MatchMixin)
      self::Match::DEFAULT_HELPERS << mod::Helpers
    end
  end

  # load basic dialect
  module Basic
    extend Dialect
    require "action_tree/basic/node"
    require "action_tree/basic/match"
  end

  # shorthand
  def self.new(&blk)
    Basic.new(&blk)
  end

  # layer proc wrapper
  class Layer < Proc; end
  def layer(*prms, &blk)
    Layer.new(*prms, &blk)
  end

end


Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
action_tree-0.1.1 lib/action_tree.rb
action_tree-0.1.0 lib/action_tree.rb