isbn

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 24, 2020 License: BSD-3-Clause Imports: 5 Imported by: 0

README

ISBN

ISBN library is the implementation of International Standard Book Number standard ISO 2108:2017. Input to this library can be string containing ISBN of version 10 or version 13.

GoDoc Build Status Go Report Card License

Installation

go get github.com/lukasaron/isbn

Example of usage:

package main

import (
    "fmt"
    isbn "github.com/lukasaron/isbn"
)

func main() {
    // ISBN can be specified, otherwise the automatic detection is initiated
    book := isbn.NewISBN("9780777777770")
    fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

    // ISBN and ISBN-13 are the correct specification of version 13
    // the number separator could be used space or hyphen,
    // however it's not required.
    book = isbn.NewISBN("ISBN 978 0 7777 7777 0")
    fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

    // version 10 should be specified (by the ISO standard)
    book = isbn.NewISBN("ISBN-10 0-393-04002-X")
    fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

    // version 10 should be specified (by the ISO standard),
    // handles also the normalization -> conversion into version 13
    book = isbn.NewISBN("ISBN-10 039304002X")
    book.Normalize()
    fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

}

Documentation

Overview

Package isbn presents the implementation of International Standard Book Number standard ISO 2108:2017. Input to this library can be string containing ISBN of version 10 or version 13.

Example of usage:

package main

import (
	"fmt"
	isbn "github.com/lukasaron/isbn"
)

func main() {
	// ISBN can be specified, otherwise the automatic detection is initiated
	book := isbn.NewISBN("9780777777770")
	fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

	// ISBN and ISBN-13 are the correct specification of version 13
	// the number separator could be used space or hyphen,
	// however it's not required.
	book = isbn.NewISBN("ISBN 978 0 7777 7777 0")
	fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

	// version 10 should be specified (by the ISO standard)
	book = isbn.NewISBN("ISBN-10 0-393-04002-X")
	fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

	// version 10 should be specified (by the ISO standard),
	// handles also the normalization -> conversion into version 13
	book = isbn.NewISBN("ISBN-10 039304002X")
	book.Normalize()
	fmt.Println(book, book.IsValid(), book.Version(), book.Error(), book.BarCode())

}

Index

Constants

View Source
const (
	DefaultPrefix = "978"
)

ISBN default prefix.

Variables

This section is empty.

Functions

This section is empty.

Types

type ISBN

type ISBN struct {
	// contains filtered or unexported fields
}

ISBN struct defines the core ISBN logic.

func NewISBN

func NewISBN(isbnStr string) (isbn ISBN)

NewISBN function creates ISBN instance based on the input string.

func (ISBN) BarCode

func (isbn ISBN) BarCode() string

BarCode method creates an ISBN code without hyphens between each ISBN part.

func (ISBN) Error

func (isbn ISBN) Error() error

Error method returns status error.

func (ISBN) IsValid

func (isbn ISBN) IsValid() (valid bool)

IsValid method checks the ISBN value(s) and returns true if the ISBN is valid, otherwise false.

func (*ISBN) Normalize

func (isbn *ISBN) Normalize()

Normalize method converts ISBN of version 10 into version 13 and/or recalculate the check digital which is located at the end of this ISBN.

func (ISBN) String

func (isbn ISBN) String() string

String method creates a human readable format of ISBN.

func (ISBN) Version

func (isbn ISBN) Version() Version

Version method returns the current version of ISBN instance.

type Version

type Version int

Version specifies the ISBN version for a particular string.

const (
	VersionUnknown Version = 0
	Version10      Version = 10
	Version13      Version = 13
)

ISBN versions.

func (Version) String

func (v Version) String() string

String method gets the string value of Version type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL