base62 0.1.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +2 -0
- data/{History.txt → CHANGELOG.md} +6 -4
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +37 -0
- data/Rakefile +10 -0
- data/base62.gemspec +25 -0
- data/lib/base62.rb +25 -90
- data/lib/base62/integer.rb +5 -0
- data/lib/base62/string.rb +5 -0
- data/lib/base62/version.rb +1 -5
- data/test/base62_test.rb +52 -0
- data/test/test_helper.rb +2 -2
- metadata +73 -60
- data/README.rdoc +0 -47
- data/README.txt +0 -47
- data/test/test_base62.rb +0 -17
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MTE4N2NmZmQ2ZjAyMzBlZjFjNjg1ZTVlNGRlMDljYTlhMDc4ZTk0OQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
M2MzMzE0N2I5YTUxMmRiMGIyZjJiODlmZmZmOWE2Nzk5MjJhYTJjMg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTYzZmE5ZjdjYjM4NjU5YTc3MWZkNDg4Y2VlZGI4Y2U3ZDQwYzVhZDY0MGNj
|
10
|
+
NWM1NmU1NTQ4MjZmOTRhYWQ1M2Y5MjNjZjk4MWIxNjg5YmM4M2I4Mzk3MmUz
|
11
|
+
MmQxMzVjMDg1ZDhiZDY0NWJkZGU4N2ExNmNmMjE4N2Q5YjBiMDc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzIyZGMzMGE0ZmNiZDE5NTY0ZDkwMmI4ZjdhODRmY2EwOTdiNDU4OWVmNTI4
|
14
|
+
YzAwNjUxYTRjNjU4OTc0YmE2ZmFjOWI4OGI1MGVhNDgxZDQ3ZWM1YTYzMDc5
|
15
|
+
YWYyMDRjNWYxYTRkYmIwYjdhY2IxZmQwMzE4MjdhYTJkYjQ2NTU=
|
data/.gitignore
ADDED
@@ -1,16 +1,18 @@
|
|
1
|
-
|
1
|
+
# Base62 changelog
|
2
|
+
|
3
|
+
## 0.1.3 (2010-11-24)
|
2
4
|
|
3
5
|
* Cleaned out the crap that's not needed like hoe and rake tasks and newgem stuff
|
4
6
|
|
5
|
-
|
7
|
+
## 0.1.2 (2010-11-24)
|
6
8
|
|
7
9
|
* Derrick Camerino added a Gemspec
|
8
10
|
|
9
|
-
|
11
|
+
## 0.1.1 (2009-11-4)
|
10
12
|
|
11
13
|
* Ruby 1.9 compatible thx to Saadiq Rodgers-King
|
12
14
|
|
13
|
-
|
15
|
+
## 0.1.0 (2008-10-04)
|
14
16
|
|
15
17
|
* 1 major enhancement:
|
16
18
|
* Initial release
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2008-2014 JT Zemp
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Base62
|
2
|
+
|
3
|
+
Base62 monkeypatches Integer to add an Integer#base62_encode instance method to encode an integer in the character set of 0-9 + A-Z + a-z. It also monkeypatches String to add String#base62_decode to take the string and turn it back into a valid integer.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
```bash
|
8
|
+
$ gem install base62
|
9
|
+
```
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
require 'base62'
|
15
|
+
|
16
|
+
123.base62_encode
|
17
|
+
# => "1z"
|
18
|
+
|
19
|
+
"funky".base62_decode
|
20
|
+
# => 619367412
|
21
|
+
```
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork the project
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create new pull request
|
30
|
+
|
31
|
+
## Thanks
|
32
|
+
|
33
|
+
* [Lasse Bunk](https://github.com/lassebunk) for totally refactoring everything and bringing it into the modern age.
|
34
|
+
* [Saadiq Rodgers-King](http://github.com/saadiq) for making it work with Ruby 1.9.
|
35
|
+
* [Derrick Camerino](https://github.com/robustdj) for adding a Gemspec and prompting me to clean stuff up.
|
36
|
+
|
37
|
+
Copyright (c) 2008-2014 [JT Zemp](https://github.com/jtzemp), released under the [MIT License](https://github.com/jtzemp/base62/blob/master/LICENSE.txt)
|
data/Rakefile
ADDED
data/base62.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
lib = File.expand_path('../lib', __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require 'base62/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "base62"
|
7
|
+
s.version = Base62::VERSION
|
8
|
+
s.authors = ["JT Zemp", "Lasse Bunk", "Saadiq Rodgers-King", "Derrick Camerino"]
|
9
|
+
s.email = ["jtzemp@gmail.com", "lasse@bunk.io"]
|
10
|
+
s.description = %q{Base62 monkeypatches Integer to add an Integer#base62_encode
|
11
|
+
instance method to encode an integer in the character set of
|
12
|
+
0-9 + A-Z + a-z. It also monkeypatches String to add
|
13
|
+
String#base62_decode to take the string and turn it back
|
14
|
+
into a valid integer.}
|
15
|
+
s.summary = %q{Monkeypatches Integer and String to allow for base62 encoding and decoding.}
|
16
|
+
s.homepage = "https://github.com/jtzemp/base62"
|
17
|
+
s.license = "MIT"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split($/)
|
20
|
+
s.test_files = s.files.grep(%r{^test/})
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
|
23
|
+
s.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
s.add_development_dependency "rake"
|
25
|
+
end
|
data/lib/base62.rb
CHANGED
@@ -1,95 +1,30 @@
|
|
1
|
-
require
|
1
|
+
require "base62/version"
|
2
|
+
require "base62/string"
|
3
|
+
require "base62/integer"
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
"9" => 9,
|
15
|
-
"A" => 10,
|
16
|
-
"B" => 11,
|
17
|
-
"C" => 12,
|
18
|
-
"D" => 13,
|
19
|
-
"E" => 14,
|
20
|
-
"F" => 15,
|
21
|
-
"G" => 16,
|
22
|
-
"H" => 17,
|
23
|
-
"I" => 18,
|
24
|
-
"J" => 19,
|
25
|
-
"K" => 20,
|
26
|
-
"L" => 21,
|
27
|
-
"M" => 22,
|
28
|
-
"N" => 23,
|
29
|
-
"O" => 24,
|
30
|
-
"P" => 25,
|
31
|
-
"Q" => 26,
|
32
|
-
"R" => 27,
|
33
|
-
"S" => 28,
|
34
|
-
"T" => 29,
|
35
|
-
"U" => 30,
|
36
|
-
"V" => 31,
|
37
|
-
"W" => 32,
|
38
|
-
"X" => 33,
|
39
|
-
"Y" => 34,
|
40
|
-
"Z" => 35,
|
41
|
-
"a" => 36,
|
42
|
-
"b" => 37,
|
43
|
-
"c" => 38,
|
44
|
-
"d" => 39,
|
45
|
-
"e" => 40,
|
46
|
-
"f" => 41 ,
|
47
|
-
"g" => 42 ,
|
48
|
-
"h" => 43 ,
|
49
|
-
"i" => 44 ,
|
50
|
-
"j" => 45 ,
|
51
|
-
"k" => 46 ,
|
52
|
-
"l" => 47 ,
|
53
|
-
"m" => 48 ,
|
54
|
-
"n" => 49 ,
|
55
|
-
"o" => 50,
|
56
|
-
"p" => 51,
|
57
|
-
"q" => 52,
|
58
|
-
"r" => 53,
|
59
|
-
"s" => 54,
|
60
|
-
"t" => 55,
|
61
|
-
"u" => 56,
|
62
|
-
"v" => 57,
|
63
|
-
"w" => 58,
|
64
|
-
"x" => 59,
|
65
|
-
"y" => 60,
|
66
|
-
"z" => 61
|
67
|
-
}
|
68
|
-
|
69
|
-
def base62_decode
|
70
|
-
i = 0
|
71
|
-
i_out = 0
|
72
|
-
self.split(//).reverse.each do |c|
|
73
|
-
place = BASE62_PRIMITIVES.size ** i
|
74
|
-
i_out += BASE62_PRIMITIVES[c] * place
|
75
|
-
i += 1
|
5
|
+
module Base62
|
6
|
+
PRIMITIVES = (0..9).collect { |i| i.to_s } + ('A'..'Z').to_a + ('a'..'z').to_a
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def decode(str)
|
10
|
+
out = 0
|
11
|
+
str.split(//).reverse.each_with_index do |char, index|
|
12
|
+
place = PRIMITIVES.size ** index
|
13
|
+
out += PRIMITIVES.index(char) * place
|
14
|
+
end
|
15
|
+
out
|
76
16
|
end
|
77
|
-
i_out
|
78
|
-
end
|
79
|
-
end
|
80
17
|
|
18
|
+
def encode(int)
|
19
|
+
return "0" if int == 0
|
81
20
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
result = BASE62_PRIMITIVES[number % BASE62_PRIMITIVES.size ].to_s + result
|
91
|
-
number /= BASE62_PRIMITIVES.size
|
92
|
-
end
|
93
|
-
result
|
21
|
+
rem = int
|
22
|
+
result = ''
|
23
|
+
while rem != 0
|
24
|
+
result = PRIMITIVES[rem % PRIMITIVES.size].to_s + result
|
25
|
+
rem /= PRIMITIVES.size
|
26
|
+
end
|
27
|
+
result
|
28
|
+
end
|
94
29
|
end
|
95
|
-
end
|
30
|
+
end
|
data/lib/base62/version.rb
CHANGED
data/test/base62_test.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Base62Test < Test::Unit::TestCase
|
4
|
+
def test_encode
|
5
|
+
{ 0 => "0",
|
6
|
+
1 => "1",
|
7
|
+
10 => "A",
|
8
|
+
100 => "1c",
|
9
|
+
1231 => "Jr",
|
10
|
+
3982 => "12E",
|
11
|
+
10927 => "2qF",
|
12
|
+
50923 => "DFL",
|
13
|
+
100292 => "Q5c",
|
14
|
+
202731 => "qjr",
|
15
|
+
519278 => "2B5S",
|
16
|
+
902323 => "3mjb",
|
17
|
+
1003827 => "4D8l",
|
18
|
+
2129387 => "8vwx",
|
19
|
+
52338283 => "3XbZr",
|
20
|
+
298372887 => "KBwPv",
|
21
|
+
8237468237 => "8zTZmv",
|
22
|
+
256352386723872 => "1AnE6bpNA"
|
23
|
+
}.each do |int, base62|
|
24
|
+
assert_equal base62, int.base62_encode
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_decode
|
29
|
+
{ "" => 0,
|
30
|
+
"0" => 0,
|
31
|
+
"1" => 1,
|
32
|
+
"A" => 10,
|
33
|
+
"1c" => 100,
|
34
|
+
"Jr" => 1231,
|
35
|
+
"12E" => 3982,
|
36
|
+
"2qF" => 10927,
|
37
|
+
"DFL" => 50923,
|
38
|
+
"Q5c" => 100292,
|
39
|
+
"qjr" => 202731,
|
40
|
+
"2B5S" => 519278,
|
41
|
+
"3mjb" => 902323,
|
42
|
+
"4D8l" => 1003827,
|
43
|
+
"8vwx" => 2129387,
|
44
|
+
"3XbZr" => 52338283,
|
45
|
+
"KBwPv" => 298372887,
|
46
|
+
"8zTZmv" => 8237468237,
|
47
|
+
"1AnE6bpNA" => 256352386723872
|
48
|
+
}.each do |base62, int|
|
49
|
+
assert_equal int, base62.base62_decode
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "base62"
|
2
|
+
require "test/unit"
|
metadata
CHANGED
@@ -1,81 +1,94 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: base62
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: false
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 4
|
10
|
-
version: 0.1.4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- JT Zemp
|
8
|
+
- Lasse Bunk
|
14
9
|
- Saadiq Rodgers-King
|
15
10
|
- Derrick Camerino
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
14
|
+
date: 2014-01-16 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: bundler
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.3'
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ! '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
type: :development
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
description: ! "Base62 monkeypatches Integer to add an Integer#base62_encode\n instance
|
45
|
+
method to encode an integer in the character set of\n 0-9
|
46
|
+
+ A-Z + a-z. It also monkeypatches String to add\n String#base62_decode
|
47
|
+
to take the string and turn it back\n into a valid integer."
|
48
|
+
email:
|
49
|
+
- jtzemp@gmail.com
|
50
|
+
- lasse@bunk.io
|
31
51
|
executables: []
|
32
|
-
|
33
52
|
extensions: []
|
34
|
-
|
35
53
|
extra_rdoc_files: []
|
36
|
-
|
37
|
-
|
38
|
-
-
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
54
|
+
files:
|
55
|
+
- .gitignore
|
56
|
+
- CHANGELOG.md
|
57
|
+
- Gemfile
|
58
|
+
- LICENSE.txt
|
59
|
+
- README.md
|
60
|
+
- Rakefile
|
61
|
+
- base62.gemspec
|
42
62
|
- lib/base62.rb
|
43
|
-
-
|
63
|
+
- lib/base62/integer.rb
|
64
|
+
- lib/base62/string.rb
|
65
|
+
- lib/base62/version.rb
|
66
|
+
- test/base62_test.rb
|
44
67
|
- test/test_helper.rb
|
45
|
-
|
46
|
-
|
47
|
-
licenses:
|
68
|
+
homepage: https://github.com/jtzemp/base62
|
69
|
+
licenses:
|
48
70
|
- MIT
|
71
|
+
metadata: {}
|
49
72
|
post_install_message:
|
50
73
|
rdoc_options: []
|
51
|
-
|
52
|
-
require_paths:
|
74
|
+
require_paths:
|
53
75
|
- lib
|
54
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
none: false
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
hash: 3
|
69
|
-
segments:
|
70
|
-
- 0
|
71
|
-
version: "0"
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
72
86
|
requirements: []
|
73
|
-
|
74
87
|
rubyforge_project:
|
75
|
-
rubygems_version:
|
88
|
+
rubygems_version: 2.0.7
|
76
89
|
signing_key:
|
77
|
-
specification_version:
|
78
|
-
summary:
|
79
|
-
test_files:
|
80
|
-
- test/
|
90
|
+
specification_version: 4
|
91
|
+
summary: Monkeypatches Integer and String to allow for base62 encoding and decoding.
|
92
|
+
test_files:
|
93
|
+
- test/base62_test.rb
|
81
94
|
- test/test_helper.rb
|
data/README.rdoc
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
== DESCRIPTION:
|
2
|
-
|
3
|
-
Base62 monkeypatches Integer to add an Integer#base62_encode instance method to encode an integer in the character set of 0-9 + A-Z + a-z. It also monkeypatches String to add String#base62_decode to take the string and turn it back into a valid integer.
|
4
|
-
|
5
|
-
== INSTALL:
|
6
|
-
|
7
|
-
* sudo gem install base62
|
8
|
-
|
9
|
-
== USAGE:
|
10
|
-
|
11
|
-
require 'base62'
|
12
|
-
|
13
|
-
123.base62_encode
|
14
|
-
=> "1z"
|
15
|
-
|
16
|
-
"funky".base62_decode
|
17
|
-
=> 619367412
|
18
|
-
|
19
|
-
== THANKS:
|
20
|
-
|
21
|
-
* Saadiq Rodgers-King (http://github.com/saadiq) for making it work with Ruby 1.9.
|
22
|
-
* Derrick Camerino (https://github.com/robustdj) for adding a Gemspec and prompting me to clean stuff up.
|
23
|
-
|
24
|
-
== LICENSE:
|
25
|
-
|
26
|
-
(The MIT License)
|
27
|
-
|
28
|
-
Copyright (c) 2008 JT Zemp & Thrive Information Solutions
|
29
|
-
|
30
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
31
|
-
a copy of this software and associated documentation files (the
|
32
|
-
'Software'), to deal in the Software without restriction, including
|
33
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
34
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
35
|
-
permit persons to whom the Software is furnished to do so, subject to
|
36
|
-
the following conditions:
|
37
|
-
|
38
|
-
The above copyright notice and this permission notice shall be
|
39
|
-
included in all copies or substantial portions of the Software.
|
40
|
-
|
41
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
42
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
43
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
44
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
45
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
46
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
47
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.txt
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
== DESCRIPTION:
|
2
|
-
|
3
|
-
Base62 monkeypatches Integer to add an Integer#base62_encode instance method to encode an integer in the character set of 0-9 + A-Z + a-z. It also monkeypatches String to add String#base62_decode to take the string and turn it back into a valid integer.
|
4
|
-
|
5
|
-
== INSTALL:
|
6
|
-
|
7
|
-
* sudo gem install base62
|
8
|
-
|
9
|
-
== USAGE:
|
10
|
-
|
11
|
-
require 'base62'
|
12
|
-
|
13
|
-
123.base62_encode
|
14
|
-
=> "1z"
|
15
|
-
|
16
|
-
"funky".base62_decode
|
17
|
-
=> 619367412
|
18
|
-
|
19
|
-
== THANKS:
|
20
|
-
|
21
|
-
* Saadiq Rodgers-King (http://github.com/saadiq) for making it work with Ruby 1.9.
|
22
|
-
* Derrick Camerino (https://github.com/robustdj) for adding a Gemspec and prompting me to clean stuff up.
|
23
|
-
|
24
|
-
== LICENSE:
|
25
|
-
|
26
|
-
(The MIT License)
|
27
|
-
|
28
|
-
Copyright (c) 2008 JT Zemp & Thrive Information Solutions
|
29
|
-
|
30
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
31
|
-
a copy of this software and associated documentation files (the
|
32
|
-
'Software'), to deal in the Software without restriction, including
|
33
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
34
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
35
|
-
permit persons to whom the Software is furnished to do so, subject to
|
36
|
-
the following conditions:
|
37
|
-
|
38
|
-
The above copyright notice and this permission notice shall be
|
39
|
-
included in all copies or substantial portions of the Software.
|
40
|
-
|
41
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
42
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
43
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
44
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
45
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
46
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
47
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/test/test_base62.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
-
|
3
|
-
class TestBase62 < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def test_1_to_100000
|
6
|
-
(0..100000).each do |i|
|
7
|
-
assert_equal(i.to_s, i.base62_encode.base62_decode.to_s, i.to_s + "\t" + i.base62_encode.to_s + "\t" + i.base62_encode.base62_decode.to_s)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_0
|
12
|
-
assert_equal(0, "0".base62_decode)
|
13
|
-
assert_equal("0", 0.base62_encode)
|
14
|
-
assert_equal(0, "".base62_decode)
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|