Sha256: b60466f893d4774673af4c564517ab90d86a75a2503c0380a30f09fdaea6293e

Contents?: true

Size: 748 Bytes

Versions: 1

Compression:

Stored size: 748 Bytes

Contents

module Vedeu
  class InvalidDirective < StandardError; end

  class Directive
    class << self
      def enact(directives = {})
        new(directives).enact
      end
    end

    def initialize(directives = {})
      @directives = directives
    end

    def enact
      [set_position, set_colour, set_style].join
    end

    private

    attr_reader :directives

    def set_position
      Position.set(*position)
    end

    def set_colour
      Colour.set(colour)
    end

    def set_style
      Array(style).map { |s| Style.set(s) }.join
    end

    def position
      directives.fetch(:position, [])
    end

    def colour
      directives.fetch(:colour, [])
    end

    def style
      directives.fetch(:style, [])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.8 lib/vedeu/output/directive.rb