Sha256: a52012de0b383dcfe4aa77cc2ab8fdf4783bb0f64be515aa382b24d3c2aa3cae

Contents?: true

Size: 946 Bytes

Versions: 1

Compression:

Stored size: 946 Bytes

Contents

module Rocx
  module Properties
    class ParagraphBorders < ComplexProperty
      attr_reader :left, :right, :top, :bottom, :between, :bar

      def initialize
        @left = new_border :left
        @right = new_border :right
        @top = new_border :top
        @bottom = new_border :bottom
        @between = new_border :between
        @bar = new_border :bar
      end

      tag :pBdr
      name "borders"

      def render?
        renderable_borders.any?
      end

      def to_xml(xml)
        return unless render?
        xml["w"].public_send(tag) { render_borders_xml(xml) }
      end

    private

      def render_borders_xml(xml)
        renderable_borders.each { |border| border.to_xml(xml) }
      end

      def renderable_borders
        [@left, @right, @top, @bottom, @between, @bar].select(&:render?)
      end

      def new_border(direction)
        Rocx::Properties::Border.new direction
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rocx-0.7.0 lib/rocx/properties/paragraph_borders.rb