bookland 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,3 @@
1
- .DS_Store
2
- pkg
3
- .bundle
1
+ .DS_Store
2
+ pkg
3
+ .bundle
data/README.md CHANGED
@@ -1,25 +1,46 @@
1
- ![ISBN](http://upload.wikimedia.org/wikipedia/commons/thumb/2/28/EAN-13-ISBN-13.svg/540px-EAN-13-ISBN-13.svg.png)
1
+ Bookland
2
+ ========
2
3
 
3
4
  Bookland provides a simple ISBN class in Ruby.
4
5
 
5
- >> book = Bookland::ISBN.new("0262011530")
6
- >> book.to_isbn13
6
+ ![ISBN](http://upload.wikimedia.org/wikipedia/commons/thumb/2/28/EAN-13-ISBN-13.svg/540px-EAN-13-ISBN-13.svg.png)
7
+
8
+ Examples
9
+ --------
10
+
11
+ include Bookland
12
+
13
+ book = ISBN.new("0262011530")
14
+ book.to_isbn13
7
15
  => "9780262011532"
8
- >> book.to_s(1, 3, 5)
16
+
17
+ book.to_s(1, 3, 5)
9
18
  => "0-262-01153-0"
10
- >> ISBN.new("9780262011532") == book
19
+
20
+ book == ISBN.new("9780262011532")
11
21
  => true
12
- >> invalid_book = ISBN.new("0262011531") # This is an invalid ISBN
13
- >> invalid_book.valid?
22
+
23
+ # An invalid ISBN
24
+ book = ISBN.new("0262011531")
25
+ book.valid?
14
26
  => false
15
- >> invalid_book.to_isbn13
27
+
28
+ book.to_isbn13
16
29
  => Bookland::ISBNError: ISBN not valid
17
30
 
18
- Conversely, use the class methods:
31
+ Or use some class methods:
19
32
 
20
- >> Bookland::ISBN.to_13("0262011530")
33
+ include Bookland
34
+ ISBN.to_13("0262011530")
21
35
  => "9780262011532"
22
- >> Bookland::ISBN.to_10("9780262011532")
36
+
37
+ ISBN.to_10("9780262011532")
23
38
  => "0262011530"
24
39
 
25
- Specs pass against Ruby 1.8.7, REE, and Ruby 1.9.1.
40
+ ISBN.valid?("9780262011532")
41
+ => true
42
+
43
+ Compatibility
44
+ -------------
45
+
46
+ Specs pass against all usual suspects, including Ruby 1.8.7, 1.9.1, and 1.9.2.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bookland}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Hakan Ensari", "Piotr Laszewski"]
12
- s.date = %q{2010-08-09}
12
+ s.date = %q{2010-09-09}
13
13
  s.description = %q{A simple ISBN class in Ruby}
14
14
  s.email = %q{code@papercavalier.com}
15
15
  s.extra_rdoc_files = [
@@ -29,7 +29,6 @@ Gem::Specification.new do |s|
29
29
  "VERSION",
30
30
  "bookland.gemspec",
31
31
  "lib/bookland.rb",
32
- "rake_rubies.sh",
33
32
  "spec/bookland_spec.rb",
34
33
  "spec/fixtures/isbn",
35
34
  "spec/spec_helper.rb"
@@ -10,6 +10,10 @@ module Bookland
10
10
  def to_13(isbn)
11
11
  new(isbn).to_isbn13.to_s
12
12
  end
13
+
14
+ def valid?(isbn)
15
+ new(isbn).valid?
16
+ end
13
17
  end
14
18
 
15
19
  def initialize(seed=nil)
@@ -17,7 +21,7 @@ module Bookland
17
21
  end
18
22
 
19
23
  def ==(other)
20
- self.to_isbn13.to_s == other.to_isbn13.to_s
24
+ to_isbn13.to_s == other.to_isbn13.to_s
21
25
  end
22
26
 
23
27
  def inspect
@@ -35,7 +39,7 @@ module Bookland
35
39
  raw = @raw[3..11]
36
40
  ISBN.new((raw << check_digit_10(raw)).to_s)
37
41
  else
38
- self.dup
42
+ dup
39
43
  end
40
44
  end
41
45
 
@@ -46,7 +50,7 @@ module Bookland
46
50
  raw = @raw[0..8].unshift('9', '7', '8')
47
51
  ISBN.new((raw << check_digit_13(raw)).to_s)
48
52
  else
49
- self.dup
53
+ dup
50
54
  end
51
55
  end
52
56
 
@@ -23,6 +23,11 @@ module Bookland
23
23
  lambda { Bookland::ISBN.to_13(isbn)}.should raise_error Bookland::ISBNError
24
24
  end
25
25
  end
26
+
27
+ it "validates an ISBN" do
28
+ Bookland::ISBN.valid?("9780485113358").should be_true
29
+ Bookland::ISBN.valid?("9780485113359").should be_false
30
+ end
26
31
  end
27
32
 
28
33
  it "converts an ISBN-10 to ISBN-13" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookland
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 0
10
- version: 0.3.0
9
+ - 1
10
+ version: 0.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Hakan Ensari
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-08-09 00:00:00 +01:00
19
+ date: 2010-09-09 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
@@ -42,7 +42,6 @@ files:
42
42
  - VERSION
43
43
  - bookland.gemspec
44
44
  - lib/bookland.rb
45
- - rake_rubies.sh
46
45
  - spec/bookland_spec.rb
47
46
  - spec/fixtures/isbn
48
47
  - spec/spec_helper.rb
@@ -1,26 +0,0 @@
1
- #!/bin/bash
2
-
3
- # http://github.com/papercavalier/rake_rubies
4
-
5
- if which rvm > /dev/null; then
6
- RUBIES=$(echo `rvm list strings` | tr " " "\n")
7
- if [ -e ".rvmrc" ]; then
8
- GEMSET=`grep -m 1 -o -e "\@[^ ]*" .rvmrc`
9
- fi
10
- for RUBY in $RUBIES; do
11
- if [ $RUBY != "default" ]; then
12
- if [ -e "Gemfile" ]; then
13
- if !(which bundle > /dev/null); then
14
- rvm "$RUBY@global" gem install bundler --pre
15
- fi
16
- rvm "$RUBY$GEMSET" ruby -S bundle install > /dev/null
17
- fi
18
- rvm "$RUBY$GEMSET" rake $1
19
- fi
20
- done
21
- if [ -e ".rvmrc" ]; then
22
- sh .rvmrc > /dev/null
23
- fi
24
- else
25
- rake $1
26
- fi