openxml/openxml-drawingml

View on GitHub
lib/openxml/drawingml/elements/outline.rb

Summary

Maintainability
A
0 mins
Test Coverage
module OpenXml
  module DrawingML
    module Elements
      class Outline < OpenXml::Element
        include HasChildren
        namespace :a
        tag :ln

        attribute :alignment, expects: :valid_stroke_alignment, displays_as: :algn
        attribute :cap, expects: :valid_cap_type
        attribute :compound_type, expects: :valid_compound_type, displays_as: :cmpd
        attribute :width, expects: :positive_integer, displays_as: :w

      private

        def valid_stroke_alignment(value)
          ok_values = %i(ctr in)
          message = "Invalid stroke alignment (#{value}). Valid values are: #{ok_values.join(", ")}."
          raise ArgumentError, message unless ok_values.include? value
        end

        def valid_cap_type(value)
          ok_values = %i(flat rnd sq)
          message = "Invalid line cap type (#{value}). Valid values are: #{ok_values.join(", ")}."
          raise ArgumentError, message unless ok_values.include? value
        end

        def valid_compound_type(value)
          ok_values = %i(dbl sng thickThin thinThick tri)
          message = "Invalid compound line type (#{value}). Valid values are: #{ok_values.join(", ")}."
          raise ArgumentError, message unless ok_values.include? value
        end

      end
    end
  end
end