Sha256: 863d38bde2935535302544fa04d468cd22bc373863fdbb775bccbb85de2ed1a3
Contents?: true
Size: 1.28 KB
Versions: 3
Compression:
Stored size: 1.28 KB
Contents
require 'epub/constants' require 'epub/ocf' require 'nokogiri' module EPUB class Parser class OCF DIRECTORY = 'META-INF' EPUB::OCF::MODULES.each {|m| self.const_set "#{m.upcase}_FILE", "#{m}.xml"} class << self def parse(root_directory) new(root_directory).parse end end def initialize(root_directory) @dir = root_directory @ocf = EPUB::OCF.new end def parse EPUB::OCF::MODULES.each do |m| @ocf.send "#{m}=", send("parse_#{m}") end @ocf end def parse_container container = EPUB::OCF::Container.new doc = Nokogiri.XML open(File.join @dir, DIRECTORY, CONTAINER_FILE) doc.xpath('/container:container/container:rootfiles/container:rootfile', EPUB::NAMESPACES).each do |elem| rootfile = EPUB::OCF::Container::Rootfile.new %w[full-path media-type].each do |attr| rootfile.send(attr.gsub(/-/, '_') + '=', elem[attr]) container.rootfiles << rootfile end end container end def parse_encryption end def parse_manifest end def parse_metadata end def parse_rights end def parse_signatures end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
epub-parser-0.0.4 | lib/epub/parser/ocf.rb |
epub-parser-0.0.3 | lib/epub/parser/ocf.rb |
epub-parser-0.0.2 | lib/epub/parser/ocf.rb |