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
- Host: GitHub
- URL: https://github.com/slonopotamus/dyck
- Owner: slonopotamus
- License: mit
- Created: 2020-09-01T18:07:13.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T07:12:12.000Z (over 1 year ago)
- Last Synced: 2025-04-09T23:05:10.789Z (7 months ago)
- Topics: ebook, mobi, ruby
- Language: Ruby
- Homepage:
- Size: 495 KB
- Stars: 17
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.adoc
- License: LICENSE.txt
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.