lita-gauth 0.1.0.3

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e7c5f8adac615e198fcfec3f1a28adfd29dcdaf2ccdfe74bb9a91e95eab6bd59
4
+ data.tar.gz: f0bdc68c06c242a7ab5b2e52e75d00b87e11b6aa55db0129f4a7fb18eff80927
5
+ SHA512:
6
+ metadata.gz: 0eaf21c4392ba194b2d6e85ff6d2fa8bf6ad717e4a6f15110027c3ad95978d932840bd9eac5845eb44f86c3229eb5832a747f4ed78fb2878661d6ad28aaf3145
7
+ data.tar.gz: 67416ffd8d73072ac5d80dea276d59ddfb754661d418b47f941587ff9da02192770d512f2a4e39ddd61c6856e8b875fa630c6af073e013615c26146528a647c2
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ script: bundle exec rake
5
+ before_install:
6
+ - gem update --system
7
+ services:
8
+ - redis-server
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,72 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ # Note: The cmd option is now required due to the increasing number of ways
19
+ # rspec may be run, below are examples of the most common uses.
20
+ # * bundler: 'bundle exec rspec'
21
+ # * bundler binstubs: 'bin/rspec'
22
+ # * spring: 'bin/rspec' (This will use spring if running and you have
23
+ # installed the spring binstubs per the docs)
24
+ # * zeus: 'zeus rspec' (requires the server to be started separately)
25
+ # * 'just' rspec: 'rspec'
26
+
27
+ guard :rspec, cmd: "bundle exec rspec" do
28
+ require "guard/rspec/dsl"
29
+ dsl = Guard::RSpec::Dsl.new(self)
30
+
31
+ # Feel free to open issues for suggestions and improvements
32
+
33
+ # RSpec files
34
+ rspec = dsl.rspec
35
+ watch(rspec.spec_helper) { rspec.spec_dir }
36
+ watch(rspec.spec_support) { rspec.spec_dir }
37
+ watch(rspec.spec_files)
38
+
39
+ watch(%r{^templates\/})
40
+
41
+ # Ruby files
42
+ ruby = dsl.ruby
43
+ dsl.watch_spec_files_for(ruby.lib_files)
44
+
45
+ # Rails files
46
+ rails = dsl.rails(view_extensions: %w(erb haml slim))
47
+ dsl.watch_spec_files_for(rails.app_files)
48
+ dsl.watch_spec_files_for(rails.views)
49
+
50
+ watch(rails.controllers) do |m|
51
+ [
52
+ rspec.spec.call("routing/#{m[1]}_routing"),
53
+ rspec.spec.call("controllers/#{m[1]}_controller"),
54
+ rspec.spec.call("acceptance/#{m[1]}")
55
+ ]
56
+ end
57
+
58
+ # Rails config changes
59
+ watch(rails.spec_helper) { rspec.spec_dir }
60
+ watch(rails.routes) { "#{rspec.spec_dir}/routing" }
61
+ watch(rails.app_controller) { "#{rspec.spec_dir}/controllers" }
62
+
63
+ # Capybara features specs
64
+ watch(rails.view_dirs) { |m| rspec.spec.call("features/#{m[1]}") }
65
+ watch(rails.layouts) { |m| rspec.spec.call("features/#{m[1]}") }
66
+
67
+ # Turnip features and steps
68
+ watch(%r{^spec/acceptance/(.+)\.feature$})
69
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) do |m|
70
+ Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance"
71
+ end
72
+ end
data/README.md ADDED
@@ -0,0 +1,22 @@
1
+ # lita-gauth
2
+
3
+ [![Build Status](https://travis-ci.org/axylos/lita-gauth.png?branch=master)](https://travis-ci.org/axylos/lita-gauth)
4
+ [![Coverage Status](https://coveralls.io/repos/axylos/lita-gauth/badge.png)](https://coveralls.io/r/axylos/lita-gauth)
5
+
6
+ TODO: Add a description of the plugin.
7
+
8
+ ## Installation
9
+
10
+ Add lita-gauth to your Lita instance's Gemfile:
11
+
12
+ ``` ruby
13
+ gem "lita-gauth"
14
+ ```
15
+
16
+ ## Configuration
17
+
18
+ TODO: Describe any configuration attributes the plugin exposes.
19
+
20
+ ## Usage
21
+
22
+ TODO: Describe the plugin's features and how to use them.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
data/lib/lita-gauth.rb ADDED
@@ -0,0 +1,12 @@
1
+ require "lita"
2
+
3
+ Lita.load_locales Dir[File.expand_path(
4
+ File.join("..", "..", "locales", "*.yml"), __FILE__
5
+ )]
6
+
7
+ require "lita/handlers/gauth"
8
+
9
+ Lita::Handlers::Gauth.template_root File.expand_path(
10
+ File.join("..", "..", "templates"),
11
+ __FILE__
12
+ )
@@ -0,0 +1,89 @@
1
+ require 'google_auth_box'
2
+ module Lita
3
+ module Handlers
4
+ class Gauth < Handler
5
+ config :secret_key, required: true
6
+
7
+ config :client_id_hash, required: true
8
+
9
+ config :scopes, required: true
10
+
11
+ config :data_file_path, required: true
12
+
13
+ config :base_uri, required: true
14
+
15
+ route(/^authed\?$/, :check_auth, command: true)
16
+ route(/^auth me$/, :request_auth, command: true)
17
+
18
+ route(/^foo$/, :bar)
19
+ http.get 'auth-redir', :auth_redir
20
+ http.get 'auth-root/:id', :auth_root
21
+ http.get 'auth-save/:user_id/', :auth_save
22
+
23
+ def bar(msg)
24
+ p 'called'
25
+ p config.secret_key
26
+ msg.reply "hey there"
27
+ end
28
+
29
+ def get_user_creds(user_id)
30
+ auth_client.get_creds user_id
31
+ end
32
+
33
+ def check_auth(msg)
34
+ credentials = get_user_creds msg.user.id
35
+
36
+ if credentials.nil?
37
+ url = auth_client.get_auth_url
38
+ msg.reply "You are not authed"
39
+ msg.reply "Please click the following link to register with the goog: #{url}"
40
+ end
41
+ end
42
+
43
+ def save_creds(user_id, code)
44
+ auth_client.save_creds user_id, code
45
+ end
46
+
47
+ def auth_redir(req, resp)
48
+ attrs = {
49
+ storage_key: 'lita_gauth_user_id',
50
+ code: req.params["code"],
51
+ base_url: config.base_uri
52
+ }
53
+ resp.body << render_template("auth_redir.html", attrs)
54
+ end
55
+
56
+ def auth_root(req, resp)
57
+ attrs = {
58
+ "auth_redir_url": auth_client.get_auth_url,
59
+ "user_id": JSON.parse(req.env["router.params"][:id]),
60
+ "storage_key": "lita_gauth_user_id"
61
+ }
62
+
63
+ resp.body << render_template('auth_root.html', attrs)
64
+ end
65
+
66
+ def auth_save(req, resp)
67
+ user_id = JSON.parse(req.env['router.params'][:user_id])
68
+ save_creds user_id, req.params["code"]
69
+ resp.write MultiJson.dump(msg: "ok")
70
+ end
71
+
72
+ def request_auth(msg)
73
+ url = "#{config.base_uri}/auth-root"
74
+ msg.reply "Click the followin link to do the thing! #{url}"
75
+ end
76
+
77
+ def auth_client
78
+ @_auth_client ||=GoogleAuthBox::Client.new(
79
+ client_id_hash: config.client_id_hash,
80
+ scopes: config.scopes,
81
+ data_file_path: config.data_file_path,
82
+ base_uri: config.base_uri
83
+ )
84
+ end
85
+
86
+ Lita.register_handler(self)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,27 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = "lita-gauth"
3
+ spec.version = "0.1.0.3"
4
+ spec.authors = ["Axylos"]
5
+ spec.email = ["robertdraketalley@gmail.com"]
6
+ spec.description = "auth with google api"
7
+ spec.summary = "client for google auth"
8
+ spec.metadata = { "lita_plugin_type" => "handler" }
9
+
10
+ spec.files = `git ls-files`.split($/)
11
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
12
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
13
+ spec.require_paths = ["lib"]
14
+
15
+ spec.add_runtime_dependency "lita", ">= 4.7"
16
+ spec.add_dependency "google_auth_box", ">= 0.1.0"
17
+
18
+ spec.add_development_dependency "bundler", "~> 1.3"
19
+
20
+ spec.add_development_dependency "pry-byebug"
21
+ spec.add_development_dependency "byebug"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rack-test"
24
+ spec.add_development_dependency "rspec", ">= 3.0.0"
25
+ spec.add_development_dependency "simplecov"
26
+ spec.add_development_dependency "coveralls"
27
+ end
data/locales/en.yml ADDED
@@ -0,0 +1,4 @@
1
+ en:
2
+ lita:
3
+ handlers:
4
+ gauth:
@@ -0,0 +1,128 @@
1
+ require "spec_helper"
2
+
3
+ describe Lita::Handlers::Gauth, lita_handler: true do
4
+ let(:robot) { Lita::Robot.new(registry) }
5
+ let(:file_path) { './test_file_path' }
6
+ let(:base_uri) { "http://uri.com/auth-redir" }
7
+ subject { Lita::Handlers::Gauth.new(robot) }
8
+ let(:handler) { subject }
9
+
10
+ before do
11
+ robot.config.handlers.gauth.client_id_hash = {
12
+ "web" => {
13
+ "client_id" => 3,
14
+ "client_secret" => "super secret",
15
+ }
16
+ }
17
+
18
+ robot.config.handlers.gauth.scopes = ["sheets"]
19
+ robot.config.handlers.gauth.base_uri = base_uri
20
+ File.delete file_path if File.exist? file_path
21
+ f = File.new file_path, 'w'
22
+ f.close
23
+
24
+ robot.config.handlers.gauth.data_file_path = file_path
25
+ end
26
+
27
+ after { File.delete file_path }
28
+ describe "#is_logged_in" do
29
+ let(:auth_spy) { spy('VirtualResp') }
30
+
31
+ it { is_expected.to route("Lita authed?").to :check_auth }
32
+
33
+ it 'responds true or false' do
34
+ send_message "Lita authed?"
35
+ expect(replies[-2]).to eq "You are not authed"
36
+ end
37
+
38
+ it 'can call methods directly' do
39
+ expect(auth_spy).to receive(:reply).with(/not auth/)
40
+ subject.check_auth auth_spy
41
+ end
42
+
43
+ it 'listens for authorization requests' do
44
+ send_message "Lita auth me"
45
+ expect(replies.last).to match(base_uri)
46
+ expect(replies.last).to match("auth-root")
47
+ end
48
+ end
49
+
50
+ describe "#auth-root" do
51
+ let(:user_id) { 5 }
52
+ let(:auth_url) { "/auth-root/#{user_id}" }
53
+ let(:storage_key) { "lita_gauth_user_id" }
54
+ it { is_expected.to route_http(:get, "/auth-root/#{user_id}").to :auth_root }
55
+ let(:resp) { resp = http.get auth_url }
56
+
57
+ subject { resp.body }
58
+
59
+ it { is_expected.not_to be_empty }
60
+
61
+ it { is_expected.to match user_id.to_s }
62
+
63
+ it { is_expected.to match storage_key }
64
+
65
+ it { is_expected.to match base_uri }
66
+ end
67
+
68
+ describe "#oauth_callback" do
69
+ let(:code) { '4/1asdfisafu334' }
70
+ let(:storage_key) { "lita_gauth_user_id" }
71
+ let(:redir_url) { "/auth-redir/?code=#{code}" }
72
+ let(:resp) { http.get redir_url }
73
+ let(:save_url) { "#{base_uri}/save-code/729/#{code}" }
74
+ subject { resp.body }
75
+
76
+ it { is_expected.to route_http(:get, redir_url).to(:auth_redir) }
77
+
78
+ it { is_expected.not_to be_empty }
79
+
80
+ it { is_expected.to match storage_key }
81
+
82
+ it { is_expected.to match code }
83
+
84
+ it { is_expected.to match base_uri }
85
+
86
+ xit 'saves the api code' do
87
+ code = '4/er7394sadfasdf'
88
+ resp = http.get("/auth_redir?code=#{code}")
89
+ resp;
90
+ end
91
+ end
92
+
93
+ describe '#auth-save' do
94
+ let(:user_id) { 1034834 }
95
+ let(:code) { "4/3498afjsdlkjf30/rue" }
96
+ let(:req_url) { "/auth-save/#{user_id}/?code=#{code}" }
97
+ it { is_expected.to route_http(:get, req_url).to :auth_save }
98
+
99
+ xdescribe 'handler' do
100
+ let(:client) { double 'client' }
101
+ let(:dbl) { handler }
102
+ before do
103
+ allow(dbl).to receive :auth_client { client }
104
+ subject { dbl }
105
+ end
106
+
107
+ it 'should not have an empty response' do
108
+ resp = http.get req_url
109
+ expect(resp.body).not_to be_empty
110
+ end
111
+ end
112
+
113
+ xdescribe 'persistence' do
114
+ let(:resp) { http.get req_url }
115
+
116
+ it 'should call save creds' do
117
+ http.get req_url
118
+ end
119
+
120
+ it 'should save the data' do
121
+ expect(robot).not_to be_falsy
122
+ expect(subject.get_user_creds(user_id)).to be_truthy
123
+ end
124
+
125
+ end
126
+ end
127
+
128
+ end
@@ -0,0 +1,18 @@
1
+ require "simplecov"
2
+ require "coveralls"
3
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ Coveralls::SimpleCov::Formatter
6
+ ]
7
+ SimpleCov.start { add_filter "/spec/" }
8
+
9
+ require "lita-gauth"
10
+ require "lita/rspec"
11
+
12
+ RSpec.configure do |config|
13
+ config.filter_run focus: true
14
+ config.run_all_when_everything_filtered = true
15
+ end
16
+ # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
17
+ # was generated with Lita 4, the compatibility mode should be left disabled.
18
+ Lita.version_3_compatibility_mode = false
File without changes
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width" />
6
+ <title>Auth Redir</title>
7
+ </head>
8
+ <body>
9
+ <img src="https://media.giphy.com/media/y0SJVYxf90J1u/giphy.gif" />
10
+
11
+ <script type="application/javascript">
12
+ function showWinner() {
13
+ const img_url = "https://t1.rbxcdn.com/2997bd147bbf3a8851fbf57339b0e177";
14
+ const tmpl = `
15
+ <div>
16
+ <img src="${img_url}" />
17
+ </div>`;
18
+
19
+ render(tmpl);
20
+ }
21
+
22
+ function showSad(err) {
23
+ const sad_img = "http://www.roadtoepic.com/wp-content/uploads/2013/07/Sad-by-Kate-Alexander1.jpg";
24
+ const tmpl = `
25
+ <div>
26
+ <p>Sorry something went wrong!</p>
27
+ <p>${JSON.stringify(err)}</p>
28
+ <img src="${img_url}" />
29
+ </div>
30
+ `;
31
+
32
+ render(tmpl);
33
+ }
34
+
35
+ function render(tmpl) {
36
+ const body = document.querySelector('body');
37
+ window.setTimeout(() => {
38
+ body.innerHTML = tmpl;
39
+ }, 3000);
40
+ }
41
+
42
+ const key = <%= @storage_key %>;
43
+ const userId = localStorage.getItem(key);
44
+ const code = <%= @code %>;
45
+ const base_url = <%= @base_url %>;
46
+ fetch("${base_url}/auth-save/${userId}/${code}")
47
+ .then(resp => {
48
+ if (resp.ok) {
49
+ return resp.json()
50
+ } else {
51
+ throw Error('Something went wrong with the server!');
52
+ }
53
+ }).then(showWinner)
54
+ .catch(showSad);
55
+
56
+ </script>
57
+ </body>
58
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width" />
6
+ <title>Auth_root.html</title>
7
+ </head>
8
+ <body>
9
+ <div>Nothing to see here!</div>
10
+ <iframe
11
+ src="https://giphy.com/embed/tWHk9WtvGC4Sc"
12
+ width="480"
13
+ height="361"
14
+ frameBorder="0"
15
+ class="giphy-embed"
16
+ allowFullScreen>
17
+ </iframe>
18
+ <script type="application/javascript">
19
+ const user_id = <%= @user_id %>;
20
+ const key = <%= @storage_key %>;
21
+ localStorage.setItem(key, JSON.stringify(user_id))
22
+ const auth_url = <%= @auth_redir_url %>
23
+ window.location.href = auth_url
24
+ </script>
25
+ </body>
26
+ </html>
data/token_test.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "client_id": "70233899296-fkbdqc28290p7f68s59tr9uvmjuo8dd4.apps.googleusercontent.com",
3
+ "client_secret": "qiRifmM4_6OuelpX14FX1f2S"
4
+ }
metadata ADDED
@@ -0,0 +1,202 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lita-gauth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Axylos
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-03-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lita
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: google_auth_box
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-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
+ - !ruby/object:Gem::Dependency
70
+ name: byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack-test
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 3.0.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 3.0.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: coveralls
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: auth with google api
154
+ email:
155
+ - robertdraketalley@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - ".gitignore"
161
+ - ".travis.yml"
162
+ - Gemfile
163
+ - Guardfile
164
+ - README.md
165
+ - Rakefile
166
+ - lib/lita-gauth.rb
167
+ - lib/lita/handlers/gauth.rb
168
+ - lita-gauth.gemspec
169
+ - locales/en.yml
170
+ - spec/lita/handlers/gauth_spec.rb
171
+ - spec/spec_helper.rb
172
+ - templates/.gitkeep
173
+ - templates/auth_redir.html.erb
174
+ - templates/auth_root.html.erb
175
+ - token_test.json
176
+ homepage:
177
+ licenses: []
178
+ metadata:
179
+ lita_plugin_type: handler
180
+ post_install_message:
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubyforge_project:
196
+ rubygems_version: 2.7.6
197
+ signing_key:
198
+ specification_version: 4
199
+ summary: client for google auth
200
+ test_files:
201
+ - spec/lita/handlers/gauth_spec.rb
202
+ - spec/spec_helper.rb