Sha256: 54a101087e8f2c7070f9a069598e1e866f04b6aaace8c9c1ee7fcb500a2bdf68

Contents?: true

Size: 707 Bytes

Versions: 4

Compression:

Stored size: 707 Bytes

Contents

module Vedeu
  class InvalidDirective < StandardError; end

  class Directive
    class << self
      def enact(directive)
        new(directive).enact
      end
    end

    def initialize(directive)
      @directive = directive
    end

    def enact
      raise InvalidDirective unless valid_directive?

      return Style.set(directive) if directive.is_a?(Symbol)

      if directive.is_a?(Array)
        return Position.set(*directive) if directive.first.is_a?(Numeric)
        return Colour.set(directive)    if directive.first.is_a?(Symbol)
      end
    end

    private

    attr_reader :directive

    def valid_directive?
      directive.is_a?(Array) || directive.is_a?(Symbol)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.0.7 lib/vedeu/output/directive.rb
vedeu-0.0.6 lib/vedeu/output/directive.rb
vedeu-0.0.5 lib/vedeu/output/directive.rb
vedeu-0.0.4 lib/vedeu/output/directive.rb