secretkey 1.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0d3827cfd26d2c9b021cd4a6df475d3edc1ec12b
4
+ data.tar.gz: c3227b323e0f9ae0f23d79c99e3a1a169c7c9878
5
+ SHA512:
6
+ metadata.gz: d10f399ab351e2ad9430304c8913846a84806abe914cf9ff74930ca9d210111c8f4d6823d0f7538ed5af1dd0a4b3c66c24b88f800a91c8fa72b2f1d3793f3429
7
+ data.tar.gz: 4524454f3564872d422e1f0c6106f755ac975eba2bb6d405cdf94b7b28838220f326b84933909f44dffe8432cc4a9d652c523bcaaf50c09b001ccb3e5a27e6d8
@@ -0,0 +1,2 @@
1
+ coverage/
2
+ *.gem
@@ -0,0 +1 @@
1
+ 2.1.2
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.2
4
+ cache:
5
+ - bundler
6
+ - apt
7
+ bundler_args: -j4 --quiet
8
+ branches:
9
+ only:
10
+ - master
11
+ - develop
12
+ script:
13
+ - bundle exec rspec
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in activebi.gemspec
4
+ gemspec
@@ -0,0 +1,46 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ secretkey (1.0.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ byebug (3.1.2)
10
+ columnize (~> 0.8)
11
+ debugger-linecache (~> 1.2)
12
+ columnize (0.8.9)
13
+ debugger-linecache (1.2.0)
14
+ diff-lcs (1.2.5)
15
+ docile (1.1.5)
16
+ faker (1.4.2)
17
+ i18n (~> 0.5)
18
+ i18n (0.6.11)
19
+ multi_json (1.10.1)
20
+ rspec (3.0.0)
21
+ rspec-core (~> 3.0.0)
22
+ rspec-expectations (~> 3.0.0)
23
+ rspec-mocks (~> 3.0.0)
24
+ rspec-core (3.0.3)
25
+ rspec-support (~> 3.0.0)
26
+ rspec-expectations (3.0.3)
27
+ diff-lcs (>= 1.2.0, < 2.0)
28
+ rspec-support (~> 3.0.0)
29
+ rspec-mocks (3.0.3)
30
+ rspec-support (~> 3.0.0)
31
+ rspec-support (3.0.3)
32
+ simplecov (0.9.0)
33
+ docile (~> 1.1.0)
34
+ multi_json
35
+ simplecov-html (~> 0.8.0)
36
+ simplecov-html (0.8.0)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ byebug
43
+ faker
44
+ rspec
45
+ secretkey!
46
+ simplecov
@@ -0,0 +1,50 @@
1
+ # SecretKey
2
+
3
+ Ruby Gem for generating a unique access token when provided with an application id, application secret and timestamp
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'secretkey'
10
+
11
+ And then execute:
12
+
13
+ $ bundle install
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install secretkey
18
+
19
+ ## Usage
20
+
21
+ To generate a token, simply run this method:
22
+
23
+ SecretKey::SecretKey.generate_token(key, secret, timestamp)
24
+
25
+ Where:
26
+
27
+ * `key` - application key
28
+ * `secret` - application secret
29
+ * `timestamp` - an epoch timestamp in seconds i.e. 2014-07-24 14:03:30 +1000 would be 1406174610 in epoch format
30
+
31
+
32
+ ## Development Guidelines
33
+
34
+ * https://jobready.atlassian.net/wiki/display/DEV/Development+Guidelines
35
+
36
+ ## Style guidelines
37
+
38
+ We try to adhere to the following coding style guidelines
39
+
40
+ * https://github.com/styleguide/ruby
41
+ * https://github.com/bbatsov/rails-style-guide
42
+ * https://github.com/bbatsov/ruby-style-guide
43
+
44
+ ## Contributing
45
+
46
+ 1. Fork it ( http://github.com/jobready/secretkey/fork )
47
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
48
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
49
+ 4. Push to the branch (`git push origin my-new-feature`)
50
+ 5. Create new Pull Request
@@ -0,0 +1,10 @@
1
+ require 'digest'
2
+
3
+ module SecretKey
4
+ class SecretKey
5
+ def self.generate_token(key, secret, timestamp)
6
+ raise ArgumentError, 'Time Stamp is not a valid integer.' unless timestamp.is_a? Integer
7
+ Digest::SHA1.hexdigest("#{key}:#{secret}:#{timestamp}")
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module SecretKey
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $:.unshift(lib) unless $:.include?(lib)
4
+
5
+ require 'version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'secretkey'
9
+ spec.version = SecretKey::VERSION
10
+ spec.authors = ['Dinusha Bodhinayake']
11
+ spec.email = ['dinushab@jobready.com.au']
12
+ spec.description = 'Generates a unique token based on application key, application secret and timestamp'
13
+ spec.summary = 'Generates a unique token based on application key, application secret and timestamp'
14
+ spec.homepage = 'https://github.com/jobready/secretkey'
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files`.split("\n")
18
+
19
+ spec.add_development_dependency 'rspec'
20
+ spec.add_development_dependency 'faker'
21
+ spec.add_development_dependency 'simplecov'
22
+ spec.add_development_dependency 'byebug'
23
+ end
@@ -0,0 +1,18 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ require 'secretkey'
5
+ require 'faker'
6
+ require 'byebug'
7
+
8
+ RSpec.configure do |config|
9
+
10
+ config.expect_with :rspec do |c|
11
+ c.syntax = :expect
12
+ end
13
+
14
+ config.color = true
15
+
16
+ config.order = :random
17
+
18
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe SecretKey::SecretKey do
4
+
5
+ let!(:key) { Faker::Number.number(15) }
6
+ let!(:secret) { Faker::Bitcoin.address }
7
+ let!(:test_timestamp) { Time.new(2014, 07, 24, 12, 53).to_i }
8
+ let!(:generated_token) { Digest::SHA1.hexdigest("#{key}:#{secret}:#{test_timestamp}") }
9
+
10
+ describe '.generate_token' do
11
+ context 'when timestamp is valid' do
12
+ let!(:timestamp) { Time.new(2014, 07, 24, 12, 53).to_i }
13
+ it 'produces a token' do
14
+ expect(described_class.generate_token(key, secret, timestamp)).to eq(generated_token)
15
+ end
16
+ end
17
+
18
+ context 'when timestamp is invalid' do
19
+ let!(:timestamp) { 'sometext' }
20
+ it 'raises an invalid timestamp error' do
21
+ expect(lambda { described_class.generate_token(key, secret, timestamp) }).to raise_error(ArgumentError, 'Time Stamp is not a valid integer.')
22
+ end
23
+ end
24
+ end
25
+
26
+ end
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: secretkey
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dinusha Bodhinayake
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faker
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: simplecov
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Generates a unique token based on application key, application secret
70
+ and timestamp
71
+ email:
72
+ - dinushab@jobready.com.au
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".ruby-version"
79
+ - ".travis.yml"
80
+ - Gemfile
81
+ - Gemfile.lock
82
+ - Readme.md
83
+ - lib/secretkey.rb
84
+ - lib/version.rb
85
+ - secretkey.gemspec
86
+ - spec/spec_helper.rb
87
+ - spec/unit/secretkey_spec.rb
88
+ homepage: https://github.com/jobready/secretkey
89
+ licenses:
90
+ - MIT
91
+ metadata: {}
92
+ post_install_message:
93
+ rdoc_options: []
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ requirements: []
107
+ rubyforge_project:
108
+ rubygems_version: 2.2.2
109
+ signing_key:
110
+ specification_version: 4
111
+ summary: Generates a unique token based on application key, application secret and
112
+ timestamp
113
+ test_files: []
114
+ has_rdoc: