isbn-converter 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/doc/created.rid +1 -0
- data/doc/files/lib/isbn-converter_rb.html +180 -0
- data/doc/files/lib/isbn-converter_rb.src/M000001.html +34 -0
- data/doc/files/lib/isbn-converter_rb.src/M000002.html +25 -0
- data/doc/files/lib/isbn-converter_rb.src/M000003.html +18 -0
- data/doc/fr_class_index.html +26 -0
- data/doc/fr_file_index.html +27 -0
- data/doc/fr_method_index.html +29 -0
- data/doc/index.html +24 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/isbn-converter.rb +42 -0
- metadata +51 -0
data/doc/created.rid
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Tue Mar 14 08:21:12 Eastern Standard Time 2006
|
@@ -0,0 +1,180 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>File: isbn-converter.rb</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="fileHeader">
|
50
|
+
<h1>isbn-converter.rb</h1>
|
51
|
+
<table class="header-table">
|
52
|
+
<tr class="top-aligned-row">
|
53
|
+
<td><strong>Path:</strong></td>
|
54
|
+
<td>lib/isbn-converter.rb
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
<tr class="top-aligned-row">
|
58
|
+
<td><strong>Last Update:</strong></td>
|
59
|
+
<td>Tue Mar 14 08:20:30 Eastern Standard Time 2006</td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
</div>
|
63
|
+
<!-- banner header -->
|
64
|
+
|
65
|
+
<div id="bodyContent">
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
<div id="contextContent">
|
70
|
+
|
71
|
+
<div id="description">
|
72
|
+
<p>
|
73
|
+
Convert ISBN as 10-digit string to 13-digit string Can handle dashes,
|
74
|
+
returns nil if the ISBN is not 10 digits Also returns the ISBN if ISBN is
|
75
|
+
13 digits and begins with 978 or 979 Por ejemplo:
|
76
|
+
to13("0940016737")
|
77
|
+
</p>
|
78
|
+
|
79
|
+
</div>
|
80
|
+
|
81
|
+
|
82
|
+
</div>
|
83
|
+
|
84
|
+
<div id="method-list">
|
85
|
+
<h3 class="section-bar">Methods</h3>
|
86
|
+
|
87
|
+
<div class="name-list">
|
88
|
+
<a href="#M000003">clean</a>
|
89
|
+
<a href="#M000002">to10</a>
|
90
|
+
<a href="#M000001">to13</a>
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
|
94
|
+
</div>
|
95
|
+
|
96
|
+
|
97
|
+
<!-- if includes -->
|
98
|
+
|
99
|
+
<div id="section">
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
<!-- if method_list -->
|
109
|
+
<div id="methods">
|
110
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
111
|
+
|
112
|
+
<div id="method-M000003" class="method-detail">
|
113
|
+
<a name="M000003"></a>
|
114
|
+
|
115
|
+
<div class="method-heading">
|
116
|
+
<a href="isbn-converter_rb.src/M000003.html" target="Code" class="method-signature"
|
117
|
+
onclick="popupCode('isbn-converter_rb.src/M000003.html');return false;">
|
118
|
+
<span class="method-name">clean</span><span class="method-args">(isbn)</span>
|
119
|
+
</a>
|
120
|
+
</div>
|
121
|
+
|
122
|
+
<div class="method-description">
|
123
|
+
<p>
|
124
|
+
This helper method just cleans up ISBNs
|
125
|
+
</p>
|
126
|
+
</div>
|
127
|
+
</div>
|
128
|
+
|
129
|
+
<div id="method-M000002" class="method-detail">
|
130
|
+
<a name="M000002"></a>
|
131
|
+
|
132
|
+
<div class="method-heading">
|
133
|
+
<a href="isbn-converter_rb.src/M000002.html" target="Code" class="method-signature"
|
134
|
+
onclick="popupCode('isbn-converter_rb.src/M000002.html');return false;">
|
135
|
+
<span class="method-name">to10</span><span class="method-args">(isbn)</span>
|
136
|
+
</a>
|
137
|
+
</div>
|
138
|
+
|
139
|
+
<div class="method-description">
|
140
|
+
<p>
|
141
|
+
Convert ISBN as 13-digit string to 10-digit string Can handle dashes,
|
142
|
+
returns nil if the ISBN is not 13 digits Por ejemplo:
|
143
|
+
to10("978-0-940016-73-6")
|
144
|
+
</p>
|
145
|
+
</div>
|
146
|
+
</div>
|
147
|
+
|
148
|
+
<div id="method-M000001" class="method-detail">
|
149
|
+
<a name="M000001"></a>
|
150
|
+
|
151
|
+
<div class="method-heading">
|
152
|
+
<a href="isbn-converter_rb.src/M000001.html" target="Code" class="method-signature"
|
153
|
+
onclick="popupCode('isbn-converter_rb.src/M000001.html');return false;">
|
154
|
+
<span class="method-name">to13</span><span class="method-args">(isbn)</span>
|
155
|
+
</a>
|
156
|
+
</div>
|
157
|
+
|
158
|
+
<div class="method-description">
|
159
|
+
<p>
|
160
|
+
Convert ISBN as 10-digit string to 13-digit string Can handle dashes,
|
161
|
+
returns nil if the ISBN is not 10 digits Also returns the ISBN if ISBN is
|
162
|
+
13 digits and begins with 978 or 979 Por ejemplo:
|
163
|
+
to13("0940016737")
|
164
|
+
</p>
|
165
|
+
</div>
|
166
|
+
</div>
|
167
|
+
|
168
|
+
|
169
|
+
</div>
|
170
|
+
|
171
|
+
|
172
|
+
</div>
|
173
|
+
|
174
|
+
|
175
|
+
<div id="validator-badges">
|
176
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
177
|
+
</div>
|
178
|
+
|
179
|
+
</body>
|
180
|
+
</html>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>to13 (lib/isbn-converter.rb)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/isbn-converter.rb, line 5</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to13</span>(<span class="ruby-identifier">isbn</span>)
|
15
|
+
<span class="ruby-identifier">isbn</span> = <span class="ruby-identifier">clean</span>(<span class="ruby-identifier">isbn</span>)
|
16
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">13</span> <span class="ruby-operator">&&</span> [<span class="ruby-value str">"978"</span>,<span class="ruby-value str">"979"</span>].<span class="ruby-identifier">member?</span>(<span class="ruby-identifier">isbn</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>])
|
17
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">isbn</span>
|
18
|
+
<span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">10</span>
|
19
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
20
|
+
<span class="ruby-keyword kw">end</span>
|
21
|
+
<span class="ruby-identifier">new_isbn</span> = <span class="ruby-value str">"978"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">chop</span>
|
22
|
+
<span class="ruby-identifier">check</span> = <span class="ruby-value">0</span>
|
23
|
+
<span class="ruby-identifier">new_isbn</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">//</span>).<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">digit</span>, <span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
|
24
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">index</span> <span class="ruby-operator">%</span> <span class="ruby-value">2</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
25
|
+
<span class="ruby-identifier">check</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">digit</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">*</span> <span class="ruby-value">1</span>
|
26
|
+
<span class="ruby-keyword kw">else</span>
|
27
|
+
<span class="ruby-identifier">check</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">digit</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">*</span> <span class="ruby-value">3</span>
|
28
|
+
<span class="ruby-keyword kw">end</span>
|
29
|
+
<span class="ruby-keyword kw">end</span>
|
30
|
+
<span class="ruby-identifier">check</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">then</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">else</span> <span class="ruby-value">10</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">check</span> <span class="ruby-operator">%</span> <span class="ruby-value">10</span>) <span class="ruby-keyword kw">end</span>
|
31
|
+
<span class="ruby-identifier">new_isbn</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">check</span>.<span class="ruby-identifier">to_s</span>
|
32
|
+
<span class="ruby-keyword kw">end</span></pre>
|
33
|
+
</body>
|
34
|
+
</html>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>to10 (lib/isbn-converter.rb)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/isbn-converter.rb, line 28</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to10</span>(<span class="ruby-identifier">isbn</span>)
|
15
|
+
<span class="ruby-identifier">isbn</span> = <span class="ruby-identifier">clean</span>(<span class="ruby-identifier">isbn</span>)
|
16
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">13</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">isbn</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">"979"</span>
|
17
|
+
<span class="ruby-identifier">new_isbn</span> = <span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">chop</span>[<span class="ruby-value">3</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
|
18
|
+
<span class="ruby-identifier">check</span> = <span class="ruby-value">0</span>
|
19
|
+
<span class="ruby-value">10</span>.<span class="ruby-identifier">downto</span>(<span class="ruby-value">2</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">new_isbn</span>[(<span class="ruby-value">10</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">n</span>)<span class="ruby-operator">..</span>(<span class="ruby-value">10</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">n</span>)].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">n</span> }
|
20
|
+
<span class="ruby-identifier">check</span> = <span class="ruby-value">11</span> <span class="ruby-operator">-</span> (<span class="ruby-identifier">check</span> <span class="ruby-operator">%</span> <span class="ruby-value">11</span>)
|
21
|
+
<span class="ruby-identifier">check</span> = <span class="ruby-value str">"X"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">check</span> <span class="ruby-operator">==</span> <span class="ruby-value">10</span>
|
22
|
+
<span class="ruby-identifier">new_isbn</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">check</span>.<span class="ruby-identifier">to_s</span>
|
23
|
+
<span class="ruby-keyword kw">end</span></pre>
|
24
|
+
</body>
|
25
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>clean (lib/isbn-converter.rb)</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
11
|
+
</head>
|
12
|
+
<body class="standalone-code">
|
13
|
+
<pre><span class="ruby-comment cmt"># File lib/isbn-converter.rb, line 40</span>
|
14
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clean</span>(<span class="ruby-identifier">isbn</span>)
|
15
|
+
<span class="ruby-identifier">isbn</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/[^0-9X]/</span>,<span class="ruby-value str">''</span>)
|
16
|
+
<span class="ruby-keyword kw">end</span></pre>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Classes
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Classes</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Classes</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Files
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Files</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Files</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="files/lib/isbn-converter_rb.html">lib/isbn-converter.rb</a><br />
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</body>
|
27
|
+
</html>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
3
|
+
<!DOCTYPE html
|
4
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
5
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
6
|
+
|
7
|
+
<!--
|
8
|
+
|
9
|
+
Methods
|
10
|
+
|
11
|
+
-->
|
12
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
13
|
+
<head>
|
14
|
+
<title>Methods</title>
|
15
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
16
|
+
<link rel="stylesheet" href="rdoc-style.css" type="text/css" />
|
17
|
+
<base target="docwin" />
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div id="index">
|
21
|
+
<h1 class="section-bar">Methods</h1>
|
22
|
+
<div id="index-entries">
|
23
|
+
<a href="files/lib/isbn-converter_rb.html#M000003">clean (lib/isbn-converter.rb)</a><br />
|
24
|
+
<a href="files/lib/isbn-converter_rb.html#M000002">to10 (lib/isbn-converter.rb)</a><br />
|
25
|
+
<a href="files/lib/isbn-converter_rb.html#M000001">to13 (lib/isbn-converter.rb)</a><br />
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
</body>
|
29
|
+
</html>
|
data/doc/index.html
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
5
|
+
|
6
|
+
<!--
|
7
|
+
|
8
|
+
RDoc Documentation
|
9
|
+
|
10
|
+
-->
|
11
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
12
|
+
<head>
|
13
|
+
<title>RDoc Documentation</title>
|
14
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
15
|
+
</head>
|
16
|
+
<frameset rows="20%, 80%">
|
17
|
+
<frameset cols="25%,35%,45%">
|
18
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
19
|
+
<frame src="fr_class_index.html" name="Classes" />
|
20
|
+
<frame src="fr_method_index.html" name="Methods" />
|
21
|
+
</frameset>
|
22
|
+
<frame src="files/lib/isbn-converter_rb.html" name="docwin" />
|
23
|
+
</frameset>
|
24
|
+
</html>
|
data/doc/rdoc-style.css
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
|
2
|
+
body {
|
3
|
+
font-family: Verdana,Arial,Helvetica,sans-serif;
|
4
|
+
font-size: 90%;
|
5
|
+
margin: 0;
|
6
|
+
margin-left: 40px;
|
7
|
+
padding: 0;
|
8
|
+
background: white;
|
9
|
+
}
|
10
|
+
|
11
|
+
h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; }
|
12
|
+
h1 { font-size: 150%; }
|
13
|
+
h2,h3,h4 { margin-top: 1em; }
|
14
|
+
|
15
|
+
a { background: #eef; color: #039; text-decoration: none; }
|
16
|
+
a:hover { background: #039; color: #eef; }
|
17
|
+
|
18
|
+
/* Override the base stylesheet's Anchor inside a table cell */
|
19
|
+
td > a {
|
20
|
+
background: transparent;
|
21
|
+
color: #039;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
/* and inside a section title */
|
26
|
+
.section-title > a {
|
27
|
+
background: transparent;
|
28
|
+
color: #eee;
|
29
|
+
text-decoration: none;
|
30
|
+
}
|
31
|
+
|
32
|
+
/* === Structural elements =================================== */
|
33
|
+
|
34
|
+
div#index {
|
35
|
+
margin: 0;
|
36
|
+
margin-left: -40px;
|
37
|
+
padding: 0;
|
38
|
+
font-size: 90%;
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
div#index a {
|
43
|
+
margin-left: 0.7em;
|
44
|
+
}
|
45
|
+
|
46
|
+
div#index .section-bar {
|
47
|
+
margin-left: 0px;
|
48
|
+
padding-left: 0.7em;
|
49
|
+
background: #ccc;
|
50
|
+
font-size: small;
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
div#classHeader, div#fileHeader {
|
55
|
+
width: auto;
|
56
|
+
color: white;
|
57
|
+
padding: 0.5em 1.5em 0.5em 1.5em;
|
58
|
+
margin: 0;
|
59
|
+
margin-left: -40px;
|
60
|
+
border-bottom: 3px solid #006;
|
61
|
+
}
|
62
|
+
|
63
|
+
div#classHeader a, div#fileHeader a {
|
64
|
+
background: inherit;
|
65
|
+
color: white;
|
66
|
+
}
|
67
|
+
|
68
|
+
div#classHeader td, div#fileHeader td {
|
69
|
+
background: inherit;
|
70
|
+
color: white;
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
div#fileHeader {
|
75
|
+
background: #057;
|
76
|
+
}
|
77
|
+
|
78
|
+
div#classHeader {
|
79
|
+
background: #048;
|
80
|
+
}
|
81
|
+
|
82
|
+
|
83
|
+
.class-name-in-header {
|
84
|
+
font-size: 180%;
|
85
|
+
font-weight: bold;
|
86
|
+
}
|
87
|
+
|
88
|
+
|
89
|
+
div#bodyContent {
|
90
|
+
padding: 0 1.5em 0 1.5em;
|
91
|
+
}
|
92
|
+
|
93
|
+
div#description {
|
94
|
+
padding: 0.5em 1.5em;
|
95
|
+
background: #efefef;
|
96
|
+
border: 1px dotted #999;
|
97
|
+
}
|
98
|
+
|
99
|
+
div#description h1,h2,h3,h4,h5,h6 {
|
100
|
+
color: #125;;
|
101
|
+
background: transparent;
|
102
|
+
}
|
103
|
+
|
104
|
+
div#validator-badges {
|
105
|
+
text-align: center;
|
106
|
+
}
|
107
|
+
div#validator-badges img { border: 0; }
|
108
|
+
|
109
|
+
div#copyright {
|
110
|
+
color: #333;
|
111
|
+
background: #efefef;
|
112
|
+
font: 0.75em sans-serif;
|
113
|
+
margin-top: 5em;
|
114
|
+
margin-bottom: 0;
|
115
|
+
padding: 0.5em 2em;
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
/* === Classes =================================== */
|
120
|
+
|
121
|
+
table.header-table {
|
122
|
+
color: white;
|
123
|
+
font-size: small;
|
124
|
+
}
|
125
|
+
|
126
|
+
.type-note {
|
127
|
+
font-size: small;
|
128
|
+
color: #DEDEDE;
|
129
|
+
}
|
130
|
+
|
131
|
+
.xxsection-bar {
|
132
|
+
background: #eee;
|
133
|
+
color: #333;
|
134
|
+
padding: 3px;
|
135
|
+
}
|
136
|
+
|
137
|
+
.section-bar {
|
138
|
+
color: #333;
|
139
|
+
border-bottom: 1px solid #999;
|
140
|
+
margin-left: -20px;
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
.section-title {
|
145
|
+
background: #79a;
|
146
|
+
color: #eee;
|
147
|
+
padding: 3px;
|
148
|
+
margin-top: 2em;
|
149
|
+
margin-left: -30px;
|
150
|
+
border: 1px solid #999;
|
151
|
+
}
|
152
|
+
|
153
|
+
.top-aligned-row { vertical-align: top }
|
154
|
+
.bottom-aligned-row { vertical-align: bottom }
|
155
|
+
|
156
|
+
/* --- Context section classes ----------------------- */
|
157
|
+
|
158
|
+
.context-row { }
|
159
|
+
.context-item-name { font-family: monospace; font-weight: bold; color: black; }
|
160
|
+
.context-item-value { font-size: small; color: #448; }
|
161
|
+
.context-item-desc { color: #333; padding-left: 2em; }
|
162
|
+
|
163
|
+
/* --- Method classes -------------------------- */
|
164
|
+
.method-detail {
|
165
|
+
background: #efefef;
|
166
|
+
padding: 0;
|
167
|
+
margin-top: 0.5em;
|
168
|
+
margin-bottom: 1em;
|
169
|
+
border: 1px dotted #ccc;
|
170
|
+
}
|
171
|
+
.method-heading {
|
172
|
+
color: black;
|
173
|
+
background: #ccc;
|
174
|
+
border-bottom: 1px solid #666;
|
175
|
+
padding: 0.2em 0.5em 0 0.5em;
|
176
|
+
}
|
177
|
+
.method-signature { color: black; background: inherit; }
|
178
|
+
.method-name { font-weight: bold; }
|
179
|
+
.method-args { font-style: italic; }
|
180
|
+
.method-description { padding: 0 0.5em 0 0.5em; }
|
181
|
+
|
182
|
+
/* --- Source code sections -------------------- */
|
183
|
+
|
184
|
+
a.source-toggle { font-size: 90%; }
|
185
|
+
div.method-source-code {
|
186
|
+
background: #262626;
|
187
|
+
color: #ffdead;
|
188
|
+
margin: 1em;
|
189
|
+
padding: 0.5em;
|
190
|
+
border: 1px dashed #999;
|
191
|
+
overflow: hidden;
|
192
|
+
}
|
193
|
+
|
194
|
+
div.method-source-code pre { color: #ffdead; overflow: hidden; }
|
195
|
+
|
196
|
+
/* --- Ruby keyword styles --------------------- */
|
197
|
+
|
198
|
+
.standalone-code { background: #221111; color: #ffdead; overflow: hidden; }
|
199
|
+
|
200
|
+
.ruby-constant { color: #7fffd4; background: transparent; }
|
201
|
+
.ruby-keyword { color: #00ffff; background: transparent; }
|
202
|
+
.ruby-ivar { color: #eedd82; background: transparent; }
|
203
|
+
.ruby-operator { color: #00ffee; background: transparent; }
|
204
|
+
.ruby-identifier { color: #ffdead; background: transparent; }
|
205
|
+
.ruby-node { color: #ffa07a; background: transparent; }
|
206
|
+
.ruby-comment { color: #b22222; font-weight: bold; background: transparent; }
|
207
|
+
.ruby-regexp { color: #ffa07a; background: transparent; }
|
208
|
+
.ruby-value { color: #7fffd4; background: transparent; }
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Convert ISBN as 10-digit string to 13-digit string
|
2
|
+
# Can handle dashes, returns nil if the ISBN is not 10 digits
|
3
|
+
# Also returns the ISBN if ISBN is 13 digits and begins with 978 or 979
|
4
|
+
# Por ejemplo: to13("0940016737")
|
5
|
+
def to13(isbn)
|
6
|
+
isbn = clean(isbn)
|
7
|
+
if isbn.length == 13 && ["978","979"].member?(isbn[0..2])
|
8
|
+
return isbn
|
9
|
+
elsif isbn.length != 10
|
10
|
+
return nil
|
11
|
+
end
|
12
|
+
new_isbn = "978" + isbn.chop
|
13
|
+
check = 0
|
14
|
+
new_isbn.split(//).each_with_index do |digit, index|
|
15
|
+
if index % 2 == 0
|
16
|
+
check += digit.to_i * 1
|
17
|
+
else
|
18
|
+
check += digit.to_i * 3
|
19
|
+
end
|
20
|
+
end
|
21
|
+
check = if check % 10 == 0 then 0 else 10 - (check % 10) end
|
22
|
+
new_isbn + check.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
# Convert ISBN as 13-digit string to 10-digit string
|
26
|
+
# Can handle dashes, returns nil if the ISBN is not 13 digits
|
27
|
+
# Por ejemplo: to10("978-0-940016-73-6")
|
28
|
+
def to10(isbn)
|
29
|
+
isbn = clean(isbn)
|
30
|
+
return nil unless isbn.length == 13 && isbn[0..2] != "979"
|
31
|
+
new_isbn = isbn.chop[3..(isbn.length - 1)]
|
32
|
+
check = 0
|
33
|
+
10.downto(2) { |n| check += new_isbn[(10 - n)..(10 - n)].to_i * n }
|
34
|
+
check = 11 - (check % 11)
|
35
|
+
check = "X" if check == 10
|
36
|
+
new_isbn + check.to_s
|
37
|
+
end
|
38
|
+
|
39
|
+
# This helper method just cleans up ISBNs
|
40
|
+
def clean(isbn)
|
41
|
+
isbn.gsub(/[^0-9X]/,'')
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.10
|
3
|
+
specification_version: 1
|
4
|
+
name: isbn-converter
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.0
|
7
|
+
date: 2006-03-14
|
8
|
+
summary: Provides methods to convert ISBNs to and from 13-digit format.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: justindz@gmail.com
|
12
|
+
homepage: http://rubyforge.org/projects/librarysolution
|
13
|
+
rubyforge_project:
|
14
|
+
description:
|
15
|
+
autorequire: isbn-converter
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: "true"
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
-
|
22
|
+
- ">"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.0
|
25
|
+
version:
|
26
|
+
platform: ruby
|
27
|
+
authors:
|
28
|
+
- Justin Duewel-Zahniser
|
29
|
+
files:
|
30
|
+
- lib/isbn-converter.rb
|
31
|
+
- doc/classes
|
32
|
+
- doc/created.rid
|
33
|
+
- doc/files
|
34
|
+
- doc/fr_class_index.html
|
35
|
+
- doc/fr_file_index.html
|
36
|
+
- doc/fr_method_index.html
|
37
|
+
- doc/index.html
|
38
|
+
- doc/rdoc-style.css
|
39
|
+
- doc/files/lib
|
40
|
+
- doc/files/lib/isbn-converter_rb.html
|
41
|
+
- doc/files/lib/isbn-converter_rb.src
|
42
|
+
- doc/files/lib/isbn-converter_rb.src/M000001.html
|
43
|
+
- doc/files/lib/isbn-converter_rb.src/M000002.html
|
44
|
+
- doc/files/lib/isbn-converter_rb.src/M000003.html
|
45
|
+
test_files: []
|
46
|
+
rdoc_options: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
requirements: []
|
51
|
+
dependencies: []
|