omniauth-gplus 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ repo_token: CA3ezvdrDihX9GCLdNFqdXzUqK3ach32x
data/.gitignore ADDED
@@ -0,0 +1,34 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore
6
+
7
+ # Ignore all of the generated gem stuff
8
+ /pkg
9
+ /*.gem
10
+
11
+ # Ignore bundler config
12
+ /.bundle
13
+ /Gemfile.lock
14
+
15
+ # Ignore all bundler caching
16
+ /vendor/cache
17
+ /vendor/ruby
18
+
19
+ # Ignore all tempfiles
20
+ /tmp
21
+
22
+ # Ignores that should be in the global gitignore
23
+ # /*.rbc
24
+ # /.config
25
+ /.yardoc
26
+ # /InstalledFiles
27
+ /_yardoc
28
+ /coverage/
29
+ /doc/
30
+ # /lib/bundler/man/
31
+ # /rdoc/
32
+ # /spec/reports/
33
+ # /test/tmp/
34
+ # /test/version_tmp/
data/.rvmrc ADDED
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
7
+ # Only full ruby name is supported here, for short names use:
8
+ # echo "rvm use 1.9.3" > .rvmrc
9
+ environment_id="ruby-1.9.3-p385@omniauth-gplus"
10
+
11
+ # Uncomment the following lines if you want to verify rvm version per project
12
+ # rvmrc_rvm_version="1.18.6 ()" # 1.10.1 seams as a safe start
13
+ # eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
+ # echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
+ # return 1
16
+ # }
17
+
18
+ # First we attempt to load the desired environment directly from the environment
19
+ # file. This is very fast and efficient compared to running through the entire
20
+ # CLI and selector. If you want feedback on which environment was used then
21
+ # insert the word 'use' after --create as this triggers verbose mode.
22
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
23
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
24
+ then
25
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
26
+ for __hook in "${rvm_path:-$HOME/.rvm}/hooks/after_use"*
27
+ do
28
+ if [[ -f "${__hook}" && -x "${__hook}" && -s "${__hook}" ]]
29
+ then \. "${__hook}" || true
30
+ fi
31
+ done
32
+ unset __hook
33
+ else
34
+ # If the environment file has not yet been created, use the RVM CLI to select.
35
+ rvm --create "$environment_id" || {
36
+ echo "Failed to create RVM environment '${environment_id}'."
37
+ return 1
38
+ }
39
+ fi
40
+
41
+ # If you use bundler, this might be useful to you:
42
+ # if [[ -s Gemfile ]] && {
43
+ # ! builtin command -v bundle >/dev/null ||
44
+ # builtin command -v bundle | GREP_OPTIONS= \grep $rvm_path/bin/bundle >/dev/null
45
+ # }
46
+ # then
47
+ # printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
48
+ # gem install bundler
49
+ # fi
50
+ # if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
51
+ # then
52
+ # bundle install | GREP_OPTIONS= \grep -vE '^Using|Your bundle is complete'
53
+ # fi
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - rbx-19mode
5
+ - jruby-19mode
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in omniauth-gplus.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Kurtis Rainbolt-Greene
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,141 @@
1
+ omniauth-gplus
2
+ =========
3
+
4
+ - [![Code Climate](https://codeclimate.com/github/krainboltgreene/omniauth-gplus.png)](https://codeclimate.com/github/krainboltgreene/omniauth-gplus)
5
+ - [![Build Status](https://travis-ci.org/krainboltgreene/omniauth-gplus.png)](https://travis-ci.org/krainboltgreene/omniauth-gplus)
6
+
7
+ `omniauth-gplus` is a Google+ strategy for OmniAuth.
8
+ It allows you to easily interact with the Google+ OAuth2 endpoint.
9
+
10
+
11
+ Examples
12
+ --------
13
+
14
+ To use `omniauth-gplus` in Rails you only need to put this in a initializer:
15
+
16
+ ``` ruby
17
+ Rails.application.config.middleware.use OmniAuth::Builder do
18
+ provider :gplus, ENV['GPLUS_KEY'], ENV['GPLUS_SECRET']
19
+ end
20
+ ```
21
+
22
+ By default the gem uses the `email` scope, but you can get more information with:
23
+
24
+ ``` ruby
25
+ provider :gplus, ENV['GPLUS_KEY'], ENV['GPLUS_SECRET'], scope: 'email, profile'
26
+ ```
27
+
28
+ The information schema looks like this:
29
+
30
+ ``` ruby
31
+ info do
32
+ {
33
+ 'email' => 'kurtisrainboltgreene@gmail.com',
34
+ 'name' => 'Kurtis Rainbolt-Greene',
35
+ 'first_name' => 'Kurtis',
36
+ 'last_name' => 'Rainbolt-Greene',
37
+ 'image' => 'http://somelongurl.png',
38
+ 'urls' => {
39
+ "Google+" => 'http://urltouserprofile.com'
40
+ }
41
+ }
42
+ end
43
+
44
+ extra do
45
+ {
46
+ 'locale' => 'en',
47
+ 'gender' => 'male',
48
+ 'birthday' => '2013-12-24',
49
+ 'raw_info' => # huge hash
50
+ }
51
+ end
52
+ ```
53
+
54
+
55
+ Installing
56
+ ----------
57
+
58
+ **Requirements**:
59
+
60
+ 1. Ruby 1.9 OR Rubinius 1.9 OR JRuby 1.9
61
+ 2. A GPlus API key/secret
62
+
63
+ You can either install manually:
64
+
65
+ ``` bash
66
+ $ gem install omniauth-gplus
67
+ ```
68
+
69
+ Or put it in your `Gemfile`:
70
+
71
+ ``` ruby
72
+ source 'https://rubygems.org'
73
+
74
+ gem 'omniauth-gplus', '~> 1.0'
75
+ ```
76
+
77
+
78
+ Issues & Documentation
79
+ ----------------------
80
+
81
+ * [Documentation](https://github.com/krainboltgreene/omniauth-gplus/wiki)
82
+ * [Issues](https://github.com/krainboltgreene/omniauth-gplus/issues)
83
+
84
+ Absolutely feel free to contribute, please!
85
+
86
+
87
+ Changelog
88
+ ---------
89
+
90
+ **v1.0.0**
91
+
92
+ * Initial release
93
+
94
+
95
+ Contributing
96
+ ------------
97
+
98
+ * **Fork** the repository
99
+ * **Clone the repository** locally, or **edit via Github**
100
+ * Create a **new branch** using the [Git Flow Standard](http://yakiloo.com/getting-started-git-flow/) conventions
101
+ * Commit **often** and **when important**
102
+ * **DO NOT CHANGE** ANY OF THESE (without making a new branch for *that* change):
103
+ * `*.gemspec`
104
+ * `Rakefile`
105
+ * `.rvmrc`
106
+ * `.gitignore`
107
+ * Any part of the git history
108
+ * **Write tests** specifically for the changes you've made, if no test exist
109
+ * **Push** your feature or hotfix branch to Github.
110
+ * Make a **Pull Request**
111
+
112
+
113
+ Credits
114
+ -------
115
+
116
+
117
+ License
118
+ -------
119
+
120
+ Copyright (c) 2013 Kurtis Rainbolt-Greene
121
+
122
+ MIT License
123
+
124
+ Permission is hereby granted, free of charge, to any person obtaining
125
+ a copy of this software and associated documentation files (the
126
+ "Software"), to deal in the Software without restriction, including
127
+ without limitation the rights to use, copy, modify, merge, publish,
128
+ distribute, sublicense, and/or sell copies of the Software, and to
129
+ permit persons to whom the Software is furnished to do so, subject to
130
+ the following conditions:
131
+
132
+ The above copyright notice and this permission notice shall be
133
+ included in all copies or substantial portions of the Software.
134
+
135
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
136
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
137
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
138
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
139
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
140
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
141
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+ require 'bundler/gem_tasks'
3
+ require 'rake/clean'
4
+ require 'rake/testtask'
5
+ require 'yard'
6
+
7
+ begin
8
+ Bundler.setup :default, :development
9
+ rescue Bundler::BundlerError => error
10
+ $stderr.puts error.message
11
+ $stderr.puts "Run `bundle install` to install missing gems"
12
+ exit error.status_code
13
+ end
14
+
15
+ Bundler::GemHelper.install_tasks
16
+
17
+ desc "Run all of the tests"
18
+ Rake::TestTask.new do |config|
19
+ config.libs << 'test'
20
+ config.pattern = 'test/**/*_test*'
21
+ # config.verbose = true
22
+ # config.warning = true
23
+ end
24
+
25
+ desc "Generate all of the docs"
26
+ YARD::Rake::YardocTask.new do |config|
27
+ config.files = Dir['lib/**/*.rb']
28
+ end
29
+
30
+ desc 'Default: run tests, and generate docs'
31
+ task :default => [ :test, :yard ]
@@ -0,0 +1,5 @@
1
+ module OmniAuth
2
+ module GPlus
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
@@ -0,0 +1,67 @@
1
+ module OmniAuth
2
+ module Strategies
3
+ class GPlus < OAuth2
4
+ option :client_options, {
5
+ site: 'https://www.googleapis.com/oauth2/v1',
6
+ authorize_url: 'https://www.google.com/accounts/o8/oauth2/authorization',
7
+ token_url: 'https://www.google.com/accounts/o8/oauth2/token'
8
+ }
9
+
10
+ option :scope, 'email'
11
+
12
+ option :uid_field, :uid
13
+
14
+ info do
15
+ {
16
+ 'email' => raw_info['email'],
17
+ 'name' => raw_info['name'],
18
+ 'first_name' => raw_info['given_name'],
19
+ 'last_name' => raw_info['family_name'],
20
+ 'image' => raw_info['picture'],
21
+ 'urls' => {
22
+ "Google+" => raw_info['link']
23
+ }
24
+ }
25
+ end
26
+
27
+ extra do
28
+ {
29
+ 'locale' => raw_info['locale'],
30
+ 'gender' => raw_info['gender'],
31
+ 'birthday' => raw_info['birthday'],
32
+ 'raw_info' => raw_info
33
+ }
34
+ end
35
+
36
+ def authorize_params
37
+ super.tap do |params|
38
+ params['scope'] = format_scopes(params['scope'])
39
+ custom_parameters(params)
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def format_scopes(scopes)
46
+ scopes.split(/,\s*/).map(&method(:format_scope)).join(" ")
47
+ end
48
+
49
+ def format_scope(scope)
50
+ "https://www.googleapis.com/auth/userinfo.#{scope}"
51
+ end
52
+
53
+ def custom_parameters(params)
54
+ ["scope", "client_options"].each { |k| add_key_to_params(params, k) }
55
+ end
56
+
57
+ def add_key_to_params(params, key)
58
+ params[key] = request.params[key] if request.params[key]
59
+ end
60
+
61
+ def raw_info
62
+ access_token.options[:mode] = :query
63
+ @raw_info ||= access_token.get('userinfo').parsed
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,5 @@
1
+ require "omniauth-oauth2"
2
+ require_relative "omniauth/strategies/gplus"
3
+ require_relative "omniauth/gplus/version"
4
+
5
+ OmniAuth.config.add_camelization("gplus", "GPlus")
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'omniauth/gplus/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "omniauth-gplus"
8
+ spec.version = OmniAuth::GPlus::VERSION
9
+ spec.authors = ["Kurtis Rainbolt-Greene"]
10
+ spec.email = ["me@kurtisrainboltgreene.name"]
11
+ spec.summary = %q{A Google+ OAuth2 solution for Omniauth}
12
+ spec.description = spec.summary
13
+ spec.homepage = "http://krainboltgreene.github.com/omniauth-gplus"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "omniauth-oauth2", '~> 1.1'
22
+ spec.add_development_dependency "bundler"
23
+ spec.add_development_dependency "rake"
24
+ spec.add_development_dependency "mocha"
25
+ spec.add_development_dependency 'yard'
26
+ spec.add_development_dependency 'kramdown'
27
+ spec.add_development_dependency 'pry'
28
+ spec.add_development_dependency 'coveralls'
29
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,24 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ require 'omniauth-gplus'
5
+ require 'minitest/autorun'
6
+ require 'minitest/pride'
7
+
8
+ OmniAuth.config.test_mode = true
9
+
10
+ def application
11
+ ->(env) { [200, {}, ["Hello World."]]}
12
+ end
13
+
14
+ def strategy
15
+ @strategy ||= begin
16
+ OmniAuth::Strategies::GPlus.new(nil, *strategy_arguments).tap do |strategy|
17
+ strategy.stubs(:request).returns(@request)
18
+ end
19
+ end
20
+ end
21
+
22
+ def strategy_arguments
23
+ [@client_id, @client_secret, @options].compact
24
+ end
@@ -0,0 +1,52 @@
1
+ require 'helper'
2
+ require 'mocha/setup'
3
+
4
+ class TestOmniAuthGPlus < MiniTest::Unit::TestCase
5
+ def setup
6
+ @request = mock('Request')
7
+ @request.stubs(:params).returns({})
8
+ @request.stubs(:cookies).returns({})
9
+ @request.stubs(:env).returns({})
10
+
11
+ @client_id = '123'
12
+ @client_secret = '53cr3tz'
13
+ end
14
+
15
+ def test_site_is_valid
16
+ expected = 'https://www.googleapis.com/oauth2/v1'
17
+ actual = strategy.client.site
18
+ assert_equal(expected, actual)
19
+ end
20
+
21
+ def test_authoirze_url_is_valid
22
+ expected = 'https://www.google.com/accounts/o8/oauth2/authorization'
23
+ actual = strategy.options.client_options.authorize_url
24
+ assert_equal(expected, actual)
25
+ end
26
+
27
+ def test_token_url_is_valid
28
+ expected = 'https://www.google.com/accounts/o8/oauth2/token'
29
+ actual = strategy.options.client_options.token_url
30
+ assert_equal(expected, actual)
31
+ end
32
+
33
+ def test_default_scope_is_email
34
+ expected = 'email'
35
+ actual = strategy.options['scope']
36
+ assert_equal(expected, actual)
37
+ end
38
+
39
+ def test_that_it_has_a_version_number
40
+ refute_nil OmniAuth::GPlus::VERSION
41
+ end
42
+
43
+ def new_oauth
44
+ OmniAuth::Strategies::GPlus.new(application)
45
+ end
46
+
47
+ def test_has_uid
48
+ expected = :uid
49
+ actual = new_oauth.options.uid_field
50
+ assert_equal(expected, actual)
51
+ end
52
+ end
metadata ADDED
@@ -0,0 +1,197 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omniauth-gplus
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kurtis Rainbolt-Greene
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: omniauth-oauth2
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bundler
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: mocha
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: yard
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: kramdown
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: pry
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: coveralls
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description: A Google+ OAuth2 solution for Omniauth
143
+ email:
144
+ - me@kurtisrainboltgreene.name
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - .coveralls.yml
150
+ - .gitignore
151
+ - .rvmrc
152
+ - .travis.yml
153
+ - Gemfile
154
+ - LICENSE.txt
155
+ - README.md
156
+ - Rakefile
157
+ - lib/omniauth-gplus.rb
158
+ - lib/omniauth/gplus/version.rb
159
+ - lib/omniauth/strategies/gplus.rb
160
+ - omniauth-gplus.gemspec
161
+ - test/helper.rb
162
+ - test/lib/omniauth/strategies/gplus_test.rb
163
+ homepage: http://krainboltgreene.github.com/omniauth-gplus
164
+ licenses:
165
+ - MIT
166
+ post_install_message:
167
+ rdoc_options: []
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ segments:
177
+ - 0
178
+ hash: -1689882291510446331
179
+ required_rubygems_version: !ruby/object:Gem::Requirement
180
+ none: false
181
+ requirements:
182
+ - - ! '>='
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ segments:
186
+ - 0
187
+ hash: -1689882291510446331
188
+ requirements: []
189
+ rubyforge_project:
190
+ rubygems_version: 1.8.25
191
+ signing_key:
192
+ specification_version: 3
193
+ summary: A Google+ OAuth2 solution for Omniauth
194
+ test_files:
195
+ - test/helper.rb
196
+ - test/lib/omniauth/strategies/gplus_test.rb
197
+ has_rdoc: