num_coder 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/num_coder.rb +60 -0
  2. metadata +61 -0
data/lib/num_coder.rb ADDED
@@ -0,0 +1,60 @@
1
+ class NumCoder
2
+ class << self
3
+
4
+ def encode(cs, i)
5
+ s = ""
6
+ t = i
7
+ while t > 0
8
+ s = cs[t % cs.size] + s
9
+ t = t / cs.size
10
+ end
11
+ return s
12
+ end
13
+
14
+ def decode(cs, s)
15
+ i = 0
16
+ s.each_char { |c| i = cs.size * i + cs.index(c) }
17
+ return i
18
+ end
19
+
20
+ def cs95
21
+ cs = ""
22
+ 32.upto(126) { |c| cs << c }
23
+ return cs
24
+ # " !\"#\$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
25
+ end
26
+
27
+ def encode95(i)
28
+ encode(cs95, i)
29
+ end
30
+
31
+ def decode95(s)
32
+ decode(cs95, s)
33
+ end
34
+
35
+ def cs64
36
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
37
+ end
38
+
39
+ def encode64(i)
40
+ encode(cs64, i)
41
+ end
42
+
43
+ def decode64(s)
44
+ decode(cs64, s)
45
+ end
46
+
47
+ def cs16
48
+ "0123456789abcdef"
49
+ end
50
+
51
+ def encode16(i)
52
+ encode(cs16, i)
53
+ end
54
+
55
+ def decode16(s)
56
+ decode(cs16, s)
57
+ end
58
+
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: num_coder
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Danilo Moret
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: A simple number to string coder/encoder gem, Base64 style
31
+ email: ruby@moret.pro.br
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - lib/num_coder.rb
37
+ homepage: https://github.com/moret/num_coder
38
+ licenses: []
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ requirements: []
56
+ rubyforge_project:
57
+ rubygems_version: 1.8.24
58
+ signing_key:
59
+ specification_version: 3
60
+ summary: Number encoder
61
+ test_files: []