Sha256: 1e2de6f29a9615854b4b1d81e640c1066bda3ff90d697f82c2d7e7157ba1b7dd

Contents?: true

Size: 1.27 KB

Versions: 11

Compression:

Stored size: 1.27 KB

Contents

module EPUB
  module Publication
    class Package
      class Spine
        attr_accessor :package,
                      :id, :toc, :page_progression_direction
        attr_reader :itemrefs

        def <<(itemref)
          @itemrefs ||= []
          itemref.spine = self
          @itemrefs << itemref
        end

        # @yield [itemref]
        # @yieldparam [Itemref] itemref
        # @yieldreturn [Object] returns the last value of block
        # @return [Object, Enumerator]
        #   returns the last value of block when block given, Enumerator when not
        def each_itemref
          if block_given?
            itemrefs.each {|itemref| yield itemref}
          else
            enum_for :each_itemref
          end
        end

        # @return [Enumerator] Enumerator which yeilds {Manifest::Item}
        #   referred by each of {#itemrefs}
        def items
          itemrefs.collector {|itemref| itemref.item}
        end

        class Itemref
          attr_accessor :spine,
                        :idref, :linear, :id, :properties
          alias linear? linear

          # @return [Package::Manifest::Item] item referred by this object
          def item
            @item ||= @spine.package.manifest[idref]
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
epub-parser-0.1.0 lib/epub/publication/package/spine.rb
epub-parser-0.0.9.4 lib/epub/publication/package/spine.rb
epub-parser-0.0.9.3 lib/epub/publication/package/spine.rb
epub-parser-0.0.9.2 lib/epub/publication/package/spine.rb
epub-parser-0.0.9.1 lib/epub/publication/package/spine.rb
epub-parser-0.0.9 lib/epub/publication/package/spine.rb
epub-parser-0.0.8 lib/epub/publication/package/spine.rb
epub-parser-0.0.7 lib/epub/publication/package/spine.rb
epub-parser-0.0.6.1 lib/epub/publication/package/spine.rb
epub-parser-0.0.6 lib/epub/publication/package/spine.rb
epub-parser-0.0.5 lib/epub/publication/package/spine.rb