authy 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -2
- data/Gemfile.lock +34 -32
- data/{README.rdoc → README.md} +26 -7
- data/VERSION +1 -1
- data/authy.gemspec +7 -10
- data/lib/authy/api.rb +9 -5
- data/spec/authy/api_spec.rb +62 -31
- metadata +33 -49
data/Gemfile
CHANGED
@@ -3,11 +3,10 @@ source "http://rubygems.org"
|
|
3
3
|
gem 'dcu-typhoeus', :require => 'typhoeus'
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
gem "rspec"
|
6
|
+
gem "rspec"
|
7
7
|
gem 'pry'
|
8
8
|
gem "yard", "~> 0.7"
|
9
9
|
gem "rdoc", "~> 3.12"
|
10
|
-
gem "bundler", "~> 1.1.0"
|
11
10
|
gem "jeweler", "~> 1.8.3"
|
12
11
|
gem "simplecov", ">= 0"
|
13
12
|
gem "reek", "~> 1.2.8"
|
data/Gemfile.lock
CHANGED
@@ -1,69 +1,71 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activesupport (3.2.
|
4
|
+
activesupport (3.2.11)
|
5
5
|
i18n (~> 0.6)
|
6
6
|
multi_json (~> 1.0)
|
7
|
-
coderay (1.0.
|
8
|
-
dcu-typhoeus (0.4.
|
7
|
+
coderay (1.0.8)
|
8
|
+
dcu-typhoeus (0.4.3)
|
9
9
|
activesupport (~> 3.2)
|
10
10
|
ffi (~> 1.0)
|
11
11
|
mime-types (~> 1.18)
|
12
12
|
diff-lcs (1.1.3)
|
13
|
-
ffi (1.
|
13
|
+
ffi (1.3.1)
|
14
14
|
git (1.2.5)
|
15
|
-
i18n (0.6.
|
16
|
-
jeweler (1.8.
|
15
|
+
i18n (0.6.1)
|
16
|
+
jeweler (1.8.4)
|
17
17
|
bundler (~> 1.0)
|
18
18
|
git (>= 1.2.5)
|
19
19
|
rake
|
20
20
|
rdoc
|
21
|
-
json (1.7.
|
22
|
-
method_source (0.
|
23
|
-
mime-types (1.
|
24
|
-
multi_json (1.
|
25
|
-
pry (0.9.
|
21
|
+
json (1.7.6)
|
22
|
+
method_source (0.8.1)
|
23
|
+
mime-types (1.19)
|
24
|
+
multi_json (1.5.0)
|
25
|
+
pry (0.9.10)
|
26
26
|
coderay (~> 1.0.5)
|
27
|
-
method_source (~> 0.
|
28
|
-
slop (
|
29
|
-
rake (0.
|
27
|
+
method_source (~> 0.8)
|
28
|
+
slop (~> 3.3.1)
|
29
|
+
rake (10.0.3)
|
30
30
|
rdoc (3.12)
|
31
31
|
json (~> 1.4)
|
32
|
-
reek (1.2.
|
33
|
-
|
32
|
+
reek (1.2.13)
|
33
|
+
ripper_ruby_parser (~> 0.0.7)
|
34
|
+
ruby2ruby (~> 1.2.5)
|
34
35
|
ruby_parser (~> 2.0)
|
35
36
|
sexp_processor (~> 3.0)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
rspec-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
rspec-
|
44
|
-
|
37
|
+
ripper_ruby_parser (0.0.8)
|
38
|
+
sexp_processor (~> 3.0)
|
39
|
+
rspec (2.12.0)
|
40
|
+
rspec-core (~> 2.12.0)
|
41
|
+
rspec-expectations (~> 2.12.0)
|
42
|
+
rspec-mocks (~> 2.12.0)
|
43
|
+
rspec-core (2.12.2)
|
44
|
+
rspec-expectations (2.12.1)
|
45
|
+
diff-lcs (~> 1.1.3)
|
46
|
+
rspec-mocks (2.12.1)
|
47
|
+
ruby2ruby (1.2.5)
|
45
48
|
ruby_parser (~> 2.0)
|
46
49
|
sexp_processor (~> 3.0)
|
47
50
|
ruby_parser (2.3.1)
|
48
51
|
sexp_processor (~> 3.0)
|
49
52
|
sexp_processor (3.2.0)
|
50
|
-
simplecov (0.
|
53
|
+
simplecov (0.7.1)
|
51
54
|
multi_json (~> 1.0)
|
52
|
-
simplecov-html (~> 0.
|
53
|
-
simplecov-html (0.
|
54
|
-
slop (
|
55
|
-
yard (0.8.
|
55
|
+
simplecov-html (~> 0.7.1)
|
56
|
+
simplecov-html (0.7.1)
|
57
|
+
slop (3.3.3)
|
58
|
+
yard (0.8.3)
|
56
59
|
|
57
60
|
PLATFORMS
|
58
61
|
ruby
|
59
62
|
|
60
63
|
DEPENDENCIES
|
61
|
-
bundler (~> 1.1.0)
|
62
64
|
dcu-typhoeus
|
63
65
|
jeweler (~> 1.8.3)
|
64
66
|
pry
|
65
67
|
rdoc (~> 3.12)
|
66
68
|
reek (~> 1.2.8)
|
67
|
-
rspec
|
69
|
+
rspec
|
68
70
|
simplecov
|
69
71
|
yard (~> 0.7)
|
data/{README.rdoc → README.md}
RENAMED
@@ -10,7 +10,11 @@ Ruby library to access the Authy API
|
|
10
10
|
Authy.api_uri = 'https://api.authy.com/'
|
11
11
|
|
12
12
|
|
13
|
-
|
13
|
+
## Registering a user
|
14
|
+
|
15
|
+
__NOTE: User is matched based on cellphone and country code not e-mail.
|
16
|
+
A cellphone is uniquely associated with an authy_id.__
|
17
|
+
|
14
18
|
|
15
19
|
`Authy::API.register_user` requires the user e-mail address and cellphone. Optionally you can pass in the country_code or we will asume
|
16
20
|
USA. The call will return you the authy id for the user that you need to store in your database.
|
@@ -26,7 +30,12 @@ Assuming you have a `users` database with a `authy_id` field in the `users` data
|
|
26
30
|
end
|
27
31
|
|
28
32
|
|
29
|
-
|
33
|
+
## Verifying a user
|
34
|
+
|
35
|
+
|
36
|
+
__NOTE: Token verification is only enforced if the user has completed registration. To change this behaviour see Forcing Verification section below.__
|
37
|
+
|
38
|
+
>*Registration is completed once the user installs and registers the Authy mobile app or logins once successfully using SMS.*
|
30
39
|
|
31
40
|
`Authy::API.verify` takes the authy_id that you are verifying and the token that you want to verify. You should have the authy_id in your database
|
32
41
|
|
@@ -37,8 +46,13 @@ Assuming you have a `users` database with a `authy_id` field in the `users` data
|
|
37
46
|
else
|
38
47
|
//token is invalid
|
39
48
|
|
49
|
+
### Forcing Verification
|
50
|
+
|
51
|
+
If you wish to verify tokens even if the user has not yet complete registration, pass force=true when verifying the token.
|
40
52
|
|
41
|
-
|
53
|
+
response = Authy::API.verify(:id => user.authy_id, :token => 'token-user-entered', :force => true)
|
54
|
+
|
55
|
+
## Requesting a SMS token
|
42
56
|
|
43
57
|
`Authy::API.request_sms` takes the authy_id that you want to send a SMS token. This requires Authy SMS plugin to be enabled.
|
44
58
|
|
@@ -51,8 +65,13 @@ Assuming you have a `users` database with a `authy_id` field in the `users` data
|
|
51
65
|
//sms failed to send
|
52
66
|
|
53
67
|
|
68
|
+
This call will be ignored if the user is using the Authy Mobile App. If you still want to send
|
69
|
+
the SMS pass force=true as an option
|
70
|
+
|
71
|
+
response = Authy::API.request_sms(:id => user.authy_id, :force => true)
|
54
72
|
|
55
|
-
|
73
|
+
|
74
|
+
### Contributing to authy
|
56
75
|
|
57
76
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
58
77
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
@@ -62,8 +81,8 @@ Assuming you have a `users` database with a `authy_id` field in the `users` data
|
|
62
81
|
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
63
82
|
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
64
83
|
|
65
|
-
|
84
|
+
Copyright
|
85
|
+
==
|
66
86
|
|
67
|
-
Copyright (c) 2012
|
87
|
+
Copyright (c) 2012 Authy Inc. See LICENSE.txt for
|
68
88
|
further details.
|
69
|
-
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/authy.gemspec
CHANGED
@@ -5,17 +5,17 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "authy"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Authy", "David A. Cuadrado"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-01-14"
|
13
13
|
s.description = "Ruby library to access Authy services"
|
14
14
|
s.email = "krawek@gmail.com"
|
15
15
|
s.executables = ["authy-api-console"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
|
-
"README.
|
18
|
+
"README.md"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".document",
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
"Gemfile",
|
24
24
|
"Gemfile.lock",
|
25
25
|
"LICENSE.txt",
|
26
|
-
"README.
|
26
|
+
"README.md",
|
27
27
|
"Rakefile",
|
28
28
|
"VERSION",
|
29
29
|
"authy.gemspec",
|
@@ -49,32 +49,29 @@ Gem::Specification.new do |s|
|
|
49
49
|
|
50
50
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
51
|
s.add_runtime_dependency(%q<dcu-typhoeus>, [">= 0"])
|
52
|
-
s.add_development_dependency(%q<rspec>, ["
|
52
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
53
53
|
s.add_development_dependency(%q<pry>, [">= 0"])
|
54
54
|
s.add_development_dependency(%q<yard>, ["~> 0.7"])
|
55
55
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
56
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
|
57
56
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
58
57
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
59
58
|
s.add_development_dependency(%q<reek>, ["~> 1.2.8"])
|
60
59
|
else
|
61
60
|
s.add_dependency(%q<dcu-typhoeus>, [">= 0"])
|
62
|
-
s.add_dependency(%q<rspec>, ["
|
61
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
63
62
|
s.add_dependency(%q<pry>, [">= 0"])
|
64
63
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
65
64
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
66
|
-
s.add_dependency(%q<bundler>, ["~> 1.1.0"])
|
67
65
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
68
66
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
69
67
|
s.add_dependency(%q<reek>, ["~> 1.2.8"])
|
70
68
|
end
|
71
69
|
else
|
72
70
|
s.add_dependency(%q<dcu-typhoeus>, [">= 0"])
|
73
|
-
s.add_dependency(%q<rspec>, ["
|
71
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
74
72
|
s.add_dependency(%q<pry>, [">= 0"])
|
75
73
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
76
74
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
77
|
-
s.add_dependency(%q<bundler>, ["~> 1.1.0"])
|
78
75
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
79
76
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
80
77
|
s.add_dependency(%q<reek>, ["~> 1.2.8"])
|
data/lib/authy/api.rb
CHANGED
@@ -7,12 +7,14 @@ module Authy
|
|
7
7
|
include Typhoeus
|
8
8
|
|
9
9
|
def self.register_user(attributes)
|
10
|
-
|
10
|
+
api_key = attributes.delete(:api_key)
|
11
|
+
params = {
|
11
12
|
:user => attributes,
|
12
|
-
:api_key => Authy.api_key
|
13
|
+
:api_key => api_key || Authy.api_key
|
13
14
|
}
|
14
15
|
|
15
|
-
|
16
|
+
url = "#{Authy.api_uri}/protected/json/users/new"
|
17
|
+
response = Typhoeus::Request.post(url, :params => params)
|
16
18
|
|
17
19
|
Authy::User.new(response)
|
18
20
|
end
|
@@ -26,7 +28,8 @@ module Authy
|
|
26
28
|
token = params.delete(:token) || params.delete('token')
|
27
29
|
user_id = params.delete(:id) || params.delete('id')
|
28
30
|
|
29
|
-
|
31
|
+
url = "#{Authy.api_uri}/protected/json/verify/#{escape_for_url(token)}/#{escape_for_url(user_id)}"
|
32
|
+
response = Typhoeus::Request.get(url, :params => {:api_key => Authy.api_key}.merge(params))
|
30
33
|
|
31
34
|
Authy::Response.new(response)
|
32
35
|
end
|
@@ -37,7 +40,8 @@ module Authy
|
|
37
40
|
def self.request_sms(params)
|
38
41
|
user_id = params.delete(:id) || params.delete('id')
|
39
42
|
|
40
|
-
|
43
|
+
url = "#{Authy.api_uri}/protected/json/sms/#{escape_for_url(user_id)}"
|
44
|
+
response = Typhoeus::Request.get(url, :params => {:api_key => Authy.api_key}.merge(params))
|
41
45
|
|
42
46
|
Authy::Response.new(response)
|
43
47
|
end
|
data/spec/authy/api_spec.rb
CHANGED
@@ -1,46 +1,77 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "Authy::API" do
|
4
|
-
|
5
|
-
user = Authy::API.register_user(:email => generate_email, :cellphone => generate_cellphone, :country_code => 1)
|
6
|
-
user.should be_kind_of(Authy::Response)
|
7
|
-
|
8
|
-
user.should be_kind_of(Authy::User)
|
9
|
-
user.should_not be_nil
|
10
|
-
user.id.should_not be_nil
|
11
|
-
user.id.should be_kind_of(Integer)
|
12
|
-
end
|
4
|
+
describe "Registering users" do
|
13
5
|
|
14
|
-
|
15
|
-
|
16
|
-
|
6
|
+
it "should find or create a user" do
|
7
|
+
user = Authy::API.register_user(:email => generate_email, :cellphone => generate_cellphone, :country_code => 1)
|
8
|
+
user.should be_kind_of(Authy::Response)
|
17
9
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
10
|
+
user.should be_kind_of(Authy::User)
|
11
|
+
user.should_not be_nil
|
12
|
+
user.id.should_not be_nil
|
13
|
+
user.id.should be_kind_of(Integer)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should return the error messages as a hash" do
|
17
|
+
user = Authy::API.register_user(:email => generate_email, :cellphone => "abc-1234", :country_code => 1)
|
18
|
+
|
19
|
+
user.errors.should be_kind_of(Hash)
|
20
|
+
user.errors['cellphone'].should == 'must be a valid cellphone number.'
|
21
|
+
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
response = Authy::API.verify(:token => 'invalid_token', :id => user['id'], :force => true)
|
23
|
+
it "should allow to override the API key" do
|
24
|
+
user = Authy::API.register_user(:email => generate_email, :cellphone => generate_cellphone, :country_code => 1, :api_key => "invalid_api_key")
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
user.should_not be_ok
|
27
|
+
user.errors['message'].should =~ /invalid api key/i
|
28
|
+
end
|
30
29
|
end
|
31
30
|
|
32
|
-
|
33
|
-
|
31
|
+
describe "verificating tokens" do
|
32
|
+
before do
|
33
|
+
@user = Authy::API.register_user(:email => generate_email, :cellphone => generate_cellphone, :country_code => 1)
|
34
|
+
@user.should be_ok
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should validate a given token if the user is not registered when the verification is not forced" do
|
38
|
+
response = Authy::API.verify(:token => 'invalid_token', :id => @user['id'])
|
39
|
+
|
40
|
+
response.should be_kind_of(Authy::Response)
|
41
|
+
response.ok?.should be_true
|
42
|
+
end
|
34
43
|
|
35
|
-
|
36
|
-
|
44
|
+
it "should fail to validate a given token if the user is not registered when force=true is given" do
|
45
|
+
response = Authy::API.verify(:token => 'invalid_token', :id => @user['id'], :force => true)
|
46
|
+
|
47
|
+
response.should be_kind_of(Authy::Response)
|
48
|
+
response.ok?.should be_false
|
49
|
+
response.errors['token'].should == 'is invalid'
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should allow to override the API key" do
|
53
|
+
response = Authy::API.verify(:token => 'invalid_token', :id => @user['id'], :force => true, :api_key => "invalid_api_key")
|
54
|
+
|
55
|
+
response.should_not be_ok
|
56
|
+
response.errors['message'].should =~ /invalid api key/i
|
57
|
+
end
|
37
58
|
end
|
38
59
|
|
39
|
-
|
40
|
-
|
41
|
-
|
60
|
+
describe "Requesting SMS" do
|
61
|
+
before do
|
62
|
+
@user = Authy::API.register_user(:email => generate_email, :cellphone => generate_cellphone, :country_code => 1)
|
63
|
+
@user.should be_ok
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should request a SMS token" do
|
67
|
+
response = Authy::API.request_sms(:id => @user.id)
|
68
|
+
response.should be_ok
|
69
|
+
end
|
42
70
|
|
43
|
-
|
44
|
-
|
71
|
+
it "should allow to override the API key" do
|
72
|
+
response = Authy::API.request_sms(:id => @user.id, :api_key => "invalid_api_key")
|
73
|
+
response.should_not be_ok
|
74
|
+
response.errors['message'].should =~ /invalid api key/i
|
75
|
+
end
|
45
76
|
end
|
46
77
|
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.7
|
5
4
|
prerelease:
|
5
|
+
version: 0.0.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Authy
|
@@ -10,147 +10,131 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2013-01-14 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ! '>='
|
21
20
|
- !ruby/object:Gem::Version
|
22
21
|
version: '0'
|
22
|
+
name: dcu-typhoeus
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
|
25
|
+
requirement: !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
28
|
- - ! '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: '0'
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
|
-
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
34
33
|
none: false
|
35
34
|
requirements:
|
36
|
-
- -
|
35
|
+
- - ! '>='
|
37
36
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
37
|
+
version: '0'
|
38
|
+
name: rspec
|
39
39
|
type: :development
|
40
40
|
prerelease: false
|
41
|
-
|
41
|
+
requirement: !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ! '>='
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
46
|
+
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
49
|
none: false
|
51
50
|
requirements:
|
52
51
|
- - ! '>='
|
53
52
|
- !ruby/object:Gem::Version
|
54
53
|
version: '0'
|
54
|
+
name: pry
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
58
|
none: false
|
59
59
|
requirements:
|
60
60
|
- - ! '>='
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
none: false
|
67
66
|
requirements:
|
68
67
|
- - ~>
|
69
68
|
- !ruby/object:Gem::Version
|
70
69
|
version: '0.7'
|
70
|
+
name: yard
|
71
71
|
type: :development
|
72
72
|
prerelease: false
|
73
|
-
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
76
|
- - ~>
|
77
77
|
- !ruby/object:Gem::Version
|
78
78
|
version: '0.7'
|
79
79
|
- !ruby/object:Gem::Dependency
|
80
|
-
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
81
|
none: false
|
83
82
|
requirements:
|
84
83
|
- - ~>
|
85
84
|
- !ruby/object:Gem::Version
|
86
85
|
version: '3.12'
|
86
|
+
name: rdoc
|
87
87
|
type: :development
|
88
88
|
prerelease: false
|
89
|
-
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
90
|
none: false
|
91
91
|
requirements:
|
92
92
|
- - ~>
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '3.12'
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
|
-
name: bundler
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
|
-
requirements:
|
100
|
-
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 1.1.0
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
96
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 1.1.0
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: jeweler
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
97
|
none: false
|
115
98
|
requirements:
|
116
99
|
- - ~>
|
117
100
|
- !ruby/object:Gem::Version
|
118
101
|
version: 1.8.3
|
102
|
+
name: jeweler
|
119
103
|
type: :development
|
120
104
|
prerelease: false
|
121
|
-
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
122
106
|
none: false
|
123
107
|
requirements:
|
124
108
|
- - ~>
|
125
109
|
- !ruby/object:Gem::Version
|
126
110
|
version: 1.8.3
|
127
111
|
- !ruby/object:Gem::Dependency
|
128
|
-
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
130
113
|
none: false
|
131
114
|
requirements:
|
132
115
|
- - ! '>='
|
133
116
|
- !ruby/object:Gem::Version
|
134
117
|
version: '0'
|
118
|
+
name: simplecov
|
135
119
|
type: :development
|
136
120
|
prerelease: false
|
137
|
-
|
121
|
+
requirement: !ruby/object:Gem::Requirement
|
138
122
|
none: false
|
139
123
|
requirements:
|
140
124
|
- - ! '>='
|
141
125
|
- !ruby/object:Gem::Version
|
142
126
|
version: '0'
|
143
127
|
- !ruby/object:Gem::Dependency
|
144
|
-
|
145
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
+
version_requirements: !ruby/object:Gem::Requirement
|
146
129
|
none: false
|
147
130
|
requirements:
|
148
131
|
- - ~>
|
149
132
|
- !ruby/object:Gem::Version
|
150
133
|
version: 1.2.8
|
134
|
+
name: reek
|
151
135
|
type: :development
|
152
136
|
prerelease: false
|
153
|
-
|
137
|
+
requirement: !ruby/object:Gem::Requirement
|
154
138
|
none: false
|
155
139
|
requirements:
|
156
140
|
- - ~>
|
@@ -163,14 +147,14 @@ executables:
|
|
163
147
|
extensions: []
|
164
148
|
extra_rdoc_files:
|
165
149
|
- LICENSE.txt
|
166
|
-
- README.
|
150
|
+
- README.md
|
167
151
|
files:
|
168
152
|
- .document
|
169
153
|
- .rspec
|
170
154
|
- Gemfile
|
171
155
|
- Gemfile.lock
|
172
156
|
- LICENSE.txt
|
173
|
-
- README.
|
157
|
+
- README.md
|
174
158
|
- Rakefile
|
175
159
|
- VERSION
|
176
160
|
- authy.gemspec
|
@@ -196,10 +180,10 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
196
180
|
requirements:
|
197
181
|
- - ! '>='
|
198
182
|
- !ruby/object:Gem::Version
|
199
|
-
version: '0'
|
200
183
|
segments:
|
201
184
|
- 0
|
202
|
-
hash:
|
185
|
+
hash: 4514592161514013586
|
186
|
+
version: '0'
|
203
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
204
188
|
none: false
|
205
189
|
requirements:
|