epubmeta

Extracts metadata information from EPUB files. Supports EPUB2 and EPUB3 formats.

This lib is a fork of epubinfo, which had not been updated since 2014.

Usage

require 'epubmeta'
EPUBMeta.get('path/to/epub/file.epub')

Which returns a EPUBMeta::Models::Book instance, please refer to the API documentation from here on

Changelog

0.6.4 August 19, 2023

  • Update nokogiri dependency to >= 1.13.9 to mitigate several security issues (CVE-2022-29824, CVE-2022-29181, CVE-2022-2309, CVE-2022-40304, and CVE-2022-40303) that have occurred since the last release of epubmeta.

0.6.3 September 27, 2022

  • Update nokogiri dependency to >= 1.13.4 to mitigate several security issues (CVE-2022-24836, CVE-2018-25032, CVE-2022-23437, CVE-2022-24839) that have occurred since the last release of epubmeta.
  • Minimum ruby version is now 2.6; this is due to Nokogiri only supporting >= ruby v2.6.

0.6.2 June 2, 2021

  • Extract the container parser logic to make it easier to test.
  • Bump nokogiri to v1.11.4 to incorporate several security issues.

0.6.1 May 11, 2021

  • Update nokogiri dependency to >= 1.11.0 to mitigate CVE-2020-26247

0.6.0 May 06, 2020

  • Support reading rendition property. Accessible via Book.fixed_layout?
  • Update nokogiri dependency to >= 1.10.8 to mitigate CVE-2020-7595

0.5.4 Februry 04, 2020

  • Update rubyzip dependency to ~> 1.3.0 to mitigate CVE-2019-16892

0.5.3 November 26, 2019

  • Update nokogiri dependency to >= 1.10.4 to mitigate CVE-2019-5477
  • Update yard dependency to >= 0.9.20 to mitigate CVE-2019-1020001

0.5.2 October 09, 2018

  • Remove redcarpet dependency
  • Update gemspec to use correct runtime and development dependency syntax

0.5.1 October 09, 2018

  • Update rubyzip dependency due to security vulnerability
  • Fix gemspec dependencies to use up-to-date versions (as found in the Gemfile)

0.5.0 August 10, 2018

  • Convert module name EPUBMeta
  • Fix cover metadata parsing bug (credit: @Gizmokid2005)

** < 0.5.0 **

Contributing to epubmeta

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
  • Fork the project.
  • Start a feature/bugfix branch.
  • Commit and push until you are happy with your contribution.
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

Copyright (c) 2018--2020 Andrew Roberts. Copyright (c) 2012--2014 Christof Dorner. See LICENSE.txt for further details.