Sha256: d054accebc243ee97defa73a9446fb2d471d08bc7c83df8576dab3e2635c7fc3

Contents?: true

Size: 1.13 KB

Versions: 10

Compression:

Stored size: 1.13 KB

Contents

require 'berkeley_library/util/ods/xml/element_node'
require 'berkeley_library/util/ods/xml/style/family'

module BerkeleyLibrary
  module Util
    module ODS
      module XML
        module Style
          class Style < XML::ElementNode
            include Comparable

            attr_reader :style_name, :family

            def initialize(style_name, family, doc:)
              super(:style, 'style', doc: doc)

              @style_name = style_name
              @family = Family.ensure_family(family)

              set_default_attributes!
            end

            def <=>(other)
              return 0 if other.equal?(self)
              return nil unless other.instance_of?(self.class)

              s_index, o_index = [style_name, other.style_name].map { |n| family.index_part(n) }
              return style_name <=> other.style_name unless s_index && o_index

              s_index <=> o_index
            end

            private

            def set_default_attributes!
              set_attribute('name', style_name)
              set_attribute('family', family)
            end
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
berkeley_library-tind-0.7.2 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.7.1 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.7.0 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.6.0 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.5.1 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.5.0 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.4.3 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.4.2 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.4.1 lib/berkeley_library/util/ods/xml/style/style.rb
berkeley_library-tind-0.4.0 lib/berkeley_library/util/ods/xml/style/style.rb