Sha256: 337fd767d9b4167b69ae7ca0d27f96c1db03c1bf171caf18f919c9ac96deb57b

Contents?: true

Size: 1 KB

Versions: 3

Compression:

Stored size: 1 KB

Contents

require_relative "../processors.rb"

module Docks
  module Tags

    # Public: The base tag from which bundled and custom tags can inherit.

    class Base
      include Singleton
      include Processors

      attr_reader :name

      def multiline?
        @multiline = true if @multiline.nil?
        @multiline
      end

      def multiple_allowed?
        @multiple_allowed = false if @multiple_allowed.nil?
        @multiple_allowed
      end

      def type
        @type ||= Docks::Types::Tags::ONE_PER_BLOCK
      end

      def parseable?
        @parseable = true if @parseable.nil?
        @parseable
      end

      def synonyms
        @synonyms ||= []
      end

      def process(symbol); symbol end

      def setup_post_processors; end

      protected

      def after_each_pattern(hook = nil, &block)
        Process.register_pattern_processor(hook, &block)
      end

      def after_all(hook = nil, &block)
        Process.register_pattern_library_processor(hook, &block)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
docks_app-0.0.3 lib/docks/tags/base_tag.rb
docks_app-0.0.2 lib/docks/tags/base_tag.rb
docks_app-0.0.1 lib/docks/tags/base_tag.rb