Sha256: 5a9998e26650c842b80bb680a7a983edf55780a276aba9dd2126a5ff999f9b42
Contents?: true
Size: 1.15 KB
Versions: 10
Compression:
Stored size: 1.15 KB
Contents
require 'enumerabler' module EPUB module Publication class Package class Guide attr_accessor :package def references @references ||= [] end def <<(reference) reference.guide = self references << reference end %w[cover title-page toc index glossary acknowledgements bibliography colophon copyright-page dedication epigraph foreword loi lot notes preface text].each do |type| define_method type do var = instance_variable_get "@#{type}" return var if var var = references.selector {|ref| ref.type == type.to_s}.first instance_variable_set "@#{type}", var end end class Reference attr_accessor :guide, :type, :title, :href, :iri def item return @item if @item len = iri.fragment.nil? ? 1 : iri.fragment.length + 2 @item = @guide.package.manifest.items.selector do |item| item.href == href[0 .. -len] end.first end end end end end end
Version data entries
10 entries across 10 versions & 1 rubygems