cipher 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
17
  gem.name = "cipher"
18
- gem.homepage = "http://github.com/evanwalsh/cipher"
18
+ gem.homepage = "http://github.com/massivedanger/cipher"
19
19
  gem.license = "MIT"
20
20
  gem.summary = %Q{Generate and validate license keys}
21
21
  gem.description = %Q{Generate and validate license keys}
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cipher"
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Evan Walsh"]
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
33
33
  "test/helper.rb",
34
34
  "test/test_cipher.rb"
35
35
  ]
36
- s.homepage = "http://github.com/evanwalsh/cipher"
36
+ s.homepage = "http://github.com/massivedanger/cipher"
37
37
  s.licenses = ["MIT"]
38
38
  s.require_paths = ["lib"]
39
39
  s.rubygems_version = "1.8.10"
@@ -1,11 +1,18 @@
1
- class Cipher
2
-
3
- module Generator
4
-
5
- def generate(unique)
1
+ class Cipher
2
+ module Generator
3
+ def generate(args = {})
4
+ @key_length ||= args[:key_length]
5
+ @section_length ||= args[:section_length]
6
+ @seperator ||= args[:seperator]
7
+ unique = args[:unique]
8
+
6
9
  output = ''
7
10
  i = 0
8
11
 
12
+ if unique.nil?
13
+ raise ArgumentError, 'You need to pass a hash with a unique to generate a key'
14
+ end
15
+
9
16
  while i < (@key_length/@section_length).ceil do
10
17
  output << hash(unique + i.to_s)[0..@section_length-1] + @seperator
11
18
  i += 1
@@ -15,6 +22,8 @@ class Cipher
15
22
  end
16
23
 
17
24
  def hash(string)
25
+ @hasher ||= 'sha1'
26
+
18
27
  case @hasher
19
28
  when 'sha1'
20
29
  require 'digest/sha1'
@@ -27,8 +36,6 @@ class Cipher
27
36
  Digest::SHA1.hexdigest(string)
28
37
  end
29
38
  end
30
- private :hash
31
-
32
- end
33
-
39
+ private :hash
40
+ end
34
41
  end
@@ -1,7 +1,14 @@
1
1
  class Cipher
2
2
  module Validator
3
3
  def validate(args = {})
4
- generate(args[:unique]) == args[:key]
4
+ unique = args[:unique]
5
+ key = args[:key]
6
+
7
+ if unique.nil? || key.nil?
8
+ raise ArgumentError, 'You need to pass a hash with a unique string and a key to validate'
9
+ end
10
+
11
+ generate({ unique: unique }) == key
5
12
  end
6
13
  end
7
14
  end
@@ -11,10 +11,28 @@ class TestCipher < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  should 'generate a key' do
14
- assert_instance_of String, @cipher.generate
14
+ assert_instance_of String, @cipher.generate({ unique: 'Evan Walsh' })
15
15
  end
16
16
 
17
17
  should 'validate a key' do
18
- assert @cipher.validate(@cipher.generate)
18
+ assert @cipher.validate({ unique: 'Evan Walsh', key: @cipher.generate({ unique: 'Evan Walsh' }) })
19
+ end
20
+
21
+ should 'raise ArgumentError if non-unique generation is done' do
22
+ assert_raises ArgumentError do
23
+ @cipher.generate
24
+ end
25
+ end
26
+
27
+ should 'raise ArgumentError if non-unique validation is done' do
28
+ assert_raises ArgumentError do
29
+ @cipher.validate
30
+ end
31
+ end
32
+
33
+ should 'get rid of the end seperator' do
34
+ key = @cipher.generate({ unique: 'Evan Walsh' })
35
+
36
+ assert key[-1] != @cipher.seperator[-1]
19
37
  end
20
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cipher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-10-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &70301263059640 !ruby/object:Gem::Requirement
16
+ requirement: &70123088850340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70301263059640
24
+ version_requirements: *70123088850340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70301263059020 !ruby/object:Gem::Requirement
27
+ requirement: &70123088849640 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.1.rc
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70301263059020
35
+ version_requirements: *70123088849640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &70301263036520 !ruby/object:Gem::Requirement
38
+ requirement: &70123088848800 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70301263036520
46
+ version_requirements: *70123088848800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &70301263036040 !ruby/object:Gem::Requirement
49
+ requirement: &70123088848260 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70301263036040
57
+ version_requirements: *70123088848260
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: turn
60
- requirement: &70301263035460 !ruby/object:Gem::Requirement
60
+ requirement: &70123088847780 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.8.3
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70301263035460
68
+ version_requirements: *70123088847780
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: minitest
71
- requirement: &70301263034860 !ruby/object:Gem::Requirement
71
+ requirement: &70123088847200 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 2.6.0
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70301263034860
79
+ version_requirements: *70123088847200
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: guard-minitest
82
- requirement: &70301263034360 !ruby/object:Gem::Requirement
82
+ requirement: &70123088846640 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.4.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70301263034360
90
+ version_requirements: *70123088846640
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rb-fsevent
93
- requirement: &70301263033780 !ruby/object:Gem::Requirement
93
+ requirement: &70123088846160 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.4.1
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70301263033780
101
+ version_requirements: *70123088846160
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: growl
104
- requirement: &70301263033180 !ruby/object:Gem::Requirement
104
+ requirement: &70123088845480 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: 1.0.3
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70301263033180
112
+ version_requirements: *70123088845480
113
113
  description: Generate and validate license keys
114
114
  email: evan@massivedanger.com
115
115
  executables:
@@ -133,7 +133,7 @@ files:
133
133
  - lib/cipher/version.rb
134
134
  - test/helper.rb
135
135
  - test/test_cipher.rb
136
- homepage: http://github.com/evanwalsh/cipher
136
+ homepage: http://github.com/massivedanger/cipher
137
137
  licenses:
138
138
  - MIT
139
139
  post_install_message:
@@ -148,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
148
  version: '0'
149
149
  segments:
150
150
  - 0
151
- hash: 2626577843440635959
151
+ hash: 2444294562060335112
152
152
  required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  none: false
154
154
  requirements: