Sha256: 91d1ed5e4f3e9b90f6f7dcf7a37f2414df452fd5b81e4b974c0beaaa1d140bc5

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

module OpenXml
  module Pptx
    module Properties
      class Control < OpenXml::Properties::ComplexProperty
        include OpenXml::ContainsProperties
        namespace :p
        tag :control

        attribute :control_name, displays_as: :name, expects: :string
        attribute :show_as_icon, displays_as: :showAsIcon, expects: :boolean
        attribute :rid, displays_as: :id, namespace: :r, expects: :string
        attribute :image_width, displays_as: :imgW, expects: :positive_coordinate
        attribute :image_height, displays_as: :imgH, expects: :positive_coordinate

        property :extension_list
        property :picture

      private

        def positive_coordinate(value)
          message = "Invalid: must be a positive integer or include a unit"
          raise ArgumentError, message unless positive_integer?(value) || positive_universal_measure?(value)
        end

        def positive_integer?(value)
          value.is_a?(Integer) && value >= 0
        end

        def positive_universal_measure?(value)
          value.is_a?(String) && value =~ OpenXml::DrawingML::ST_PositiveUniversalMeasure
        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
openxml-pptx-0.2.2 lib/openxml/pptx/properties/control.rb
openxml-pptx-0.2.0 lib/openxml/pptx/properties/control.rb