Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
ISBN manipulation helpers
branch: master
Failed to load latest commit information.
data Cache ranges to YAML
lib Cache ranges to YAML
spec Lisbn#isbn10 should fail if the GS1 prefix isn't "978"
tasks Cache ranges to YAML
.rspec Methods for validating, converting and splitting ISBNs
Gemfile Methods for validating, converting and splitting ISBNs
LICENSE Methods for validating, converting and splitting ISBNs Cache ranges to YAML
Rakefile Cache ranges to YAML
lisbn.gemspec Release 0.2.1


Lisbn (pronounced "Lisbon") is a wrapper around String that adds methods for manipulating ISBNs.


Add this line to your application's Gemfile:

gem 'lisbn'

And then execute:

$ bundle

Or install it yourself as:

$ gem install lisbn


Instantiate a new Lisbn object:

> isbn ="9780000000002")

You can check its validity:

> isbn.valid?
 => true

You can convert it to ISBN-10 or ISBN-13:

> isbn.isbn10
 => "0000000000"

> isbn.isbn13
 => "9780000000002"

And you can break it up into its GS1 prefix, group identifier, prefix/publisher code, item number and check digit:

 => ["978", "0", "00", "000000", "2"]


You can update the ISBN ranges by replacing the RangeMessage.xml file with an updated copy from:

Then run:

> rake save_ranges_to_yaml


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
Something went wrong with that request. Please try again.