shared-secret-authentication 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -16,7 +16,14 @@ module SharedSecretAuthentication
16
16
  string_keys = hash.keys.inject({}) {|keys, key| keys.merge!(key.to_s => key) }
17
17
  string_keys.keys.sort.each do |key|
18
18
  d.update key
19
- d.update hash[string_keys[key]].to_s
19
+ value = hash[string_keys[key]]
20
+ if value.instance_of? Hash
21
+ value = value.collect {|k,v| k.to_s + v.to_s}
22
+ end
23
+ if value.instance_of? Array
24
+ value = value.sort
25
+ end
26
+ d.update value.to_s
20
27
  end
21
28
  d.update SHARED_SECRET
22
29
  d.to_s
@@ -0,0 +1,63 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{shared-secret-authentication}
8
+ s.version = "0.1.3"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Josh Moore"]
12
+ s.date = %q{2010-11-03}
13
+ s.description = %q{helper methods to make shared secret authentication easier}
14
+ s.email = %q{joshsmoore@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "config/shared_secret.yml",
27
+ "lib/shared-secret-authentication.rb",
28
+ "lib/shared-secret-authentication/hash_signatures.rb",
29
+ "lib/shared-secret-authentication/load_secret.rb",
30
+ "shared-secret-authentication.gemspec",
31
+ "spec/shared-secret-authentication/hash_signatures_spec.rb",
32
+ "spec/shared-secret-authentication/load_secret_spec.rb",
33
+ "spec/shared-secret-authentication_spec.rb",
34
+ "spec/spec.opts",
35
+ "spec/spec_helper.rb",
36
+ "watchr.rb"
37
+ ]
38
+ s.homepage = %q{http://github.com/joshsmoore@gmail.com/shared-secret-authentication}
39
+ s.rdoc_options = ["--charset=UTF-8"]
40
+ s.require_paths = ["lib"]
41
+ s.rubygems_version = %q{1.3.7}
42
+ s.summary = %q{helper methods to make shared secret authentication easier}
43
+ s.test_files = [
44
+ "spec/shared-secret-authentication/hash_signatures_spec.rb",
45
+ "spec/shared-secret-authentication/load_secret_spec.rb",
46
+ "spec/shared-secret-authentication_spec.rb",
47
+ "spec/spec_helper.rb"
48
+ ]
49
+
50
+ if s.respond_to? :specification_version then
51
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
52
+ s.specification_version = 3
53
+
54
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
55
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
56
+ else
57
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
58
+ end
59
+ else
60
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
61
+ end
62
+ end
63
+
@@ -1,5 +1,8 @@
1
1
  require 'spec/spec_helper'
2
2
 
3
+ require 'rubygems'
4
+ require 'activesupport'
5
+
3
6
  describe SharedSecretAuthentication do
4
7
  before(:all) do
5
8
  Object.const_set(:SHARED_SECRET, 'test')
@@ -47,9 +50,18 @@ describe SharedSecretAuthentication do
47
50
  SharedSecretAuthentication.hash_signature({'test' => 'me', 'different' => 'order', '1' => '2'}).should == SharedSecretAuthentication.hash_signature({'1' => '2', 'different' => 'order', 'test' => 'me'})
48
51
  end
49
52
 
53
+
50
54
  it 'should work for hash keys that are symbols' do
51
55
  SharedSecretAuthentication.hash_signature(:test => 'me', :key => 'test').should == 'b1a4b3df933590f973f07e6f0a391e95a8423e7b5250973f24e3174d60e8a1ac'
52
56
  end
53
57
 
58
+ context 'edge cases' do
59
+ it 'should produce the same signature for both hashes' do
60
+ hash1 = {"practices"=>{"name"=>"Body Image Physical Therapy & Fitness P.C.", "mysql_updated_at"=>Time.parse("Thu, 03 Jun 2010 19:15:03 UTC +00:00"), "mysql_id"=>79}}
61
+ hash2 = {"practices"=>{"mysql_updated_at"=>Time.parse("2010-06-03T19:15:03Z"), "name"=>"Body Image Physical Therapy & Fitness P.C.", "mysql_id"=>79}}
62
+
63
+ SharedSecretAuthentication.hash_signature(hash1).should == SharedSecretAuthentication.hash_signature(hash2)
64
+ end
65
+ end
54
66
  end
55
67
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shared-secret-authentication
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Josh Moore
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-29 00:00:00 +08:00
18
+ date: 2010-11-03 00:00:00 +08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -54,7 +54,8 @@ files:
54
54
  - lib/shared-secret-authentication.rb
55
55
  - lib/shared-secret-authentication/hash_signatures.rb
56
56
  - lib/shared-secret-authentication/load_secret.rb
57
- - spec/shared-secret-authentication/hash_signitures_spec.rb
57
+ - shared-secret-authentication.gemspec
58
+ - spec/shared-secret-authentication/hash_signatures_spec.rb
58
59
  - spec/shared-secret-authentication/load_secret_spec.rb
59
60
  - spec/shared-secret-authentication_spec.rb
60
61
  - spec/spec.opts
@@ -95,7 +96,7 @@ signing_key:
95
96
  specification_version: 3
96
97
  summary: helper methods to make shared secret authentication easier
97
98
  test_files:
98
- - spec/shared-secret-authentication/hash_signitures_spec.rb
99
+ - spec/shared-secret-authentication/hash_signatures_spec.rb
99
100
  - spec/shared-secret-authentication/load_secret_spec.rb
100
101
  - spec/shared-secret-authentication_spec.rb
101
102
  - spec/spec_helper.rb