An open API service indexing awesome lists of open source software.

https://github.com/slonopotamus/dyck

Mobi parser/generator library in Ruby
https://github.com/slonopotamus/dyck

ebook mobi ruby

Last synced: 5 months ago
JSON representation

Mobi parser/generator library in Ruby

Awesome Lists containing this project

README

          

= {project-name}
Marat Radchenko
:project-name: Dyck
:project-handle: dyck
:slug: slonopotamus/{project-handle}
:uri-project: https://github.com/{slug}
:uri-ci: {uri-project}/actions?query=branch%3Amaster
:uri-gem: https://rubygems.org/gems/{project-handle}

image:https://img.shields.io/gem/v/{project-handle}.svg[Latest Release,link={uri-gem}]
image:{uri-project}/actions/workflows/ci.yml/badge.svg?branch=master[Build Status,link={uri-ci}]

{project-name} is a Mobi parser/generator library written in Ruby.

== Installation

Add this line to your application's Gemfile:

[source,ruby]
----
gem 'dyck'
----

And then execute:

[source,shell script]
----
$ bundle install
----

Or install it yourself as:

[source,shell script]
----
$ gem install dyck
----

== Usage

Reading existing Mobi file:

[source,ruby]
----
require 'dyck'

f = File.open('book.mobi')
mobi = Dyck::Mobi::read(f)

# Access Mobi data
mobi.title
mobi.publishing_date
mobi.author
mobi.mobi6.parts # Document text in MOBI6 format
mobi.kf8.parts # Document text in KF8 format
mobi.resources # Images, fonts, audio, video

----

Writing new Mobi file:

[source,ruby]
----
require 'dyck'

mobi = Dyck::Mobi.new

# Fill file metadata
mobi.title = 'Moby Dick'
mobi.publishing_date = Time.parse('October 18, 1851')
mobi.author = 'Herman Melville'
mobi.subjects = %w[whale sea]
mobi.description = "The book is the sailor Ishmael's narrative of the obsessive quest of Ahab," \
" captain of the whaling ship Pequod, for revenge on Moby Dick, the giant white sperm whale " \
"that on the ship's previous voyage bit off Ahab's leg at the knee."

# Add MOBI6 data
mobi.mobi6 = Dyck::MobiData.new
mobi.mobi6.parts << 'Book text in MOBI6 format'

# And/or, add KF8 data
mobi.kf8 = Dyck::MobiData.new
mobi.kf8.parts << 'Book text in KF8 format'

# Write to file
File.open('moby-dick.mobi', 'wb') do |f|
mobi.write(f)
end
----

== Development

After checking out the repo, run `bundle install` to install dependencies.
Then, run `bundle exec rake spec` to run the tests.