login_with_google 0.1.0 → 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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rspec +1 -0
- data/README.md +44 -12
- data/config/google_login.yml +49 -0
- data/config/templates/google_login.yml +39 -0
- data/creating_credentials.md +42 -0
- data/exe/login_with_google:g +10 -0
- data/lib/helper/login_with_google_helper.rb +5 -0
- data/lib/login_with_google.rb +9 -4
- data/lib/login_with_google/api_base.rb +36 -0
- data/lib/login_with_google/config.rb +32 -0
- data/lib/login_with_google/google_api.rb +65 -0
- data/lib/login_with_google/version.rb +1 -1
- data/login_with_google.gemspec +6 -0
- metadata +84 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c3d1dbbb3a395fbee2c9650c7972f277932aad52296d20ce5ef228e8299ae0e5
         | 
| 4 | 
            +
              data.tar.gz: fb363aea755694cade3a4f89eb26af4eeccf3bcd6bab1c87821e55983d8db9ee
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b0e65868de9c01652b9ffa55a6c5b5e2fae81857c75f76792d1549535c180a50c2074fcd0a18bd732efb12b35983e1760aac756e7a2ffbf14eded01f0648b772
         | 
| 7 | 
            +
              data.tar.gz: 320361a10618e187dc43773efe0421247961fb18b494b32a1062d12c2f25f781de0575edc4a2c4fc389dd7752bcce4aa9a03674456413ea654ad25e9f99eaf79
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.rspec
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            --require spec_helper
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,8 +1,5 @@ | |
| 1 | 
            -
            # LoginWithGoogle
         | 
| 2 1 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
            TODO: Delete this and the text above, and describe your gem
         | 
| 2 | 
            +
            # login\_with\_google
         | 
| 6 3 |  | 
| 7 4 | 
             
            ## Installation
         | 
| 8 5 |  | 
| @@ -19,22 +16,57 @@ And then execute: | |
| 19 16 | 
             
            Or install it yourself as:
         | 
| 20 17 |  | 
| 21 18 | 
             
                $ gem install login_with_google
         | 
| 19 | 
            +
                
         | 
| 20 | 
            +
                
         | 
| 21 | 
            +
            Generate config file
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            	$ bundle exec login_with_google:g
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            ## Creating your credentials
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            [Full steps to create your credentials](creating_credentials.md)
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            #### Add credentials and redirect_uri to env
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            ```
         | 
| 32 | 
            +
            export G_CLIENT_ID='client_id'
         | 
| 33 | 
            +
            export G_CLIENT_SECRET='client_secret'
         | 
| 34 | 
            +
            export G_REDIRECT_URI='http://localhost:3000/callback'
         | 
| 35 | 
            +
            ```
         | 
| 22 36 |  | 
| 23 37 | 
             
            ## Usage
         | 
| 24 38 |  | 
| 25 | 
            -
             | 
| 39 | 
            +
            #### Url to login
         | 
| 26 40 |  | 
| 27 | 
            -
             | 
| 41 | 
            +
            ```ruby
         | 
| 42 | 
            +
            LoginWithGoogle::Api.url_in
         | 
| 43 | 
            +
            ```
         | 
| 28 44 |  | 
| 29 | 
            -
             | 
| 45 | 
            +
            #### Url to login with helper
         | 
| 30 46 |  | 
| 31 | 
            -
             | 
| 47 | 
            +
            ```ruby
         | 
| 48 | 
            +
            g_url_in
         | 
| 49 | 
            +
            ```
         | 
| 50 | 
            +
             | 
| 51 | 
            +
             | 
| 52 | 
            +
            #### Process callback
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            Get auth return keys `access_token expires_in scope token_type id_token`
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            ```ruby
         | 
| 57 | 
            +
            @auth = LoginWithGoogle::Api.auth code: params[:code]
         | 
| 58 | 
            +
            ```
         | 
| 32 59 |  | 
| 33 | 
            -
             | 
| 60 | 
            +
            Get user info return keys `id email verified_email name given_name family_name picture locale`
         | 
| 34 61 |  | 
| 35 | 
            -
             | 
| 62 | 
            +
            ```ruby
         | 
| 63 | 
            +
            @info = LoginWithGoogle::Api.info @auth
         | 
| 64 | 
            +
            ```
         | 
| 36 65 |  | 
| 66 | 
            +
            #### Refresh a token
         | 
| 37 67 |  | 
| 38 | 
            -
             | 
| 68 | 
            +
            Pass a `access_token` from `@auth` and receive a keys `access_token expires_in scope token_type id_token`
         | 
| 39 69 |  | 
| 40 | 
            -
             | 
| 70 | 
            +
            ```ruby
         | 
| 71 | 
            +
            @refresh = LoginWithGoogle::Api.refresh(token: @auth['access_token'])
         | 
| 72 | 
            +
            ```
         | 
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            default: &default
         | 
| 2 | 
            +
              app:
         | 
| 3 | 
            +
                client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 4 | 
            +
                client_secret: <%= ENV['G_CLIENT_SECRET'] %>
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              auth:
         | 
| 7 | 
            +
                grant_type: "authorization_code"
         | 
| 8 | 
            +
                client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 9 | 
            +
                client_secret: <%= ENV['G_CLIENT_SECRET'] %>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              refresh:
         | 
| 12 | 
            +
                grant_type: "refresh_token"
         | 
| 13 | 
            +
                client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 14 | 
            +
                client_secret: <%= ENV['G_CLIENT_SECRET'] %>
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            default_url: &default_url
         | 
| 17 | 
            +
              url:
         | 
| 18 | 
            +
                callback: <%= ENV['G_REDIRECT_URI'] %>
         | 
| 19 | 
            +
                auth: https://oauth2.googleapis.com/token
         | 
| 20 | 
            +
                refresh: https://www.googleapis.com/oauth2/v4/token
         | 
| 21 | 
            +
                info: https://www.googleapis.com/oauth2/v1/userinfo
         | 
| 22 | 
            +
                login: https://accounts.google.com/o/oauth2/auth
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                params_login:
         | 
| 25 | 
            +
                  client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 26 | 
            +
                  response_type: code
         | 
| 27 | 
            +
                  scope: email profile openid
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            production:
         | 
| 30 | 
            +
              <<: *default
         | 
| 31 | 
            +
              <<: *default_url
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            development:
         | 
| 34 | 
            +
              <<: *default
         | 
| 35 | 
            +
              <<: *default_url
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            test_with_sinatra:
         | 
| 38 | 
            +
              <<: *default
         | 
| 39 | 
            +
              url:
         | 
| 40 | 
            +
                callback: /callback
         | 
| 41 | 
            +
                auth: http://127.0.0.1:4567/google/token
         | 
| 42 | 
            +
                refresh: http://127.0.0.1:4567/refresh
         | 
| 43 | 
            +
                info: http://127.0.0.1:4567/oauth2/v1/userinfo
         | 
| 44 | 
            +
                login: http://127.0.0.1:4567/o/oauth2/auth
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                params_login:
         | 
| 47 | 
            +
                  client_id: abc123
         | 
| 48 | 
            +
                  response_type: code
         | 
| 49 | 
            +
                  scope: email profile openid
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            default: &default
         | 
| 2 | 
            +
              app:
         | 
| 3 | 
            +
                client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 4 | 
            +
                client_secret: <%= ENV['G_CLIENT_SECRET'] %>
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              auth:
         | 
| 7 | 
            +
                grant_type: "authorization_code"
         | 
| 8 | 
            +
                client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 9 | 
            +
                client_secret: <%= ENV['G_CLIENT_SECRET'] %>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              refresh:
         | 
| 12 | 
            +
                grant_type: "refresh_token"
         | 
| 13 | 
            +
                client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 14 | 
            +
                client_secret: <%= ENV['G_CLIENT_SECRET'] %>
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            default_url: &default_url
         | 
| 17 | 
            +
              url:
         | 
| 18 | 
            +
                callback: <%= ENV['G_REDIRECT_URI'] %>
         | 
| 19 | 
            +
                auth: https://oauth2.googleapis.com/token
         | 
| 20 | 
            +
                refresh: https://www.googleapis.com/oauth2/v4/token
         | 
| 21 | 
            +
                info: https://www.googleapis.com/oauth2/v1/userinfo
         | 
| 22 | 
            +
                login: https://accounts.google.com/o/oauth2/auth
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                params_login:
         | 
| 25 | 
            +
                  client_id: <%= ENV['G_CLIENT_ID'] %>
         | 
| 26 | 
            +
                  response_type: code
         | 
| 27 | 
            +
                  scope: email profile openid
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            development:
         | 
| 30 | 
            +
              <<: *default
         | 
| 31 | 
            +
              <<: *default_url
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            production:
         | 
| 34 | 
            +
              <<: *default
         | 
| 35 | 
            +
              <<: *default_url
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            test:
         | 
| 38 | 
            +
              <<: *default
         | 
| 39 | 
            +
              <<: *default_url
         | 
| @@ -0,0 +1,42 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            # login\_with\_google
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            ## Creating your credentials
         | 
| 5 | 
            +
             | 
| 6 | 
            +
             | 
| 7 | 
            +
            #### #1 Go to [https://code.google.com/apis/console/](https://code.google.com/apis/console/) and click on "CREATE PROJECT"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            #### #2 Choose a name and create
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            #### #3 Navigate to "OAuth consent screen"
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            #### #4 Select external user type
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            #### #5 Define a app name and choose a app logo and save
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            #### #6 Navigate to Credentials
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            
         | 
| 30 | 
            +
             | 
| 31 | 
            +
             | 
| 32 | 
            +
            #### #7 Click on "+ CREATE CREDENTIALS" and choose "OAuth client ID"
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            #### #8 Set a name and redirect URI
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            #### #9 Get your client\_id and client\_secret
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            
         | 
| @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            #!/usr/bin/env ruby
         | 
| 2 | 
            +
            # frozen_string_literal: true
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            template    = File.expand_path('../config/templates/google_login.yml', __dir__)
         | 
| 5 | 
            +
            config_file = 'config/google_login.yml'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            FileUtils.mkdir_p(File.dirname(config_file))
         | 
| 8 | 
            +
            FileUtils.cp(template, "#{Dir.pwd}/#{config_file}")
         | 
| 9 | 
            +
            puts "File generated: \e[32m#{config_file}\e[0m"
         | 
| 10 | 
            +
            exit
         | 
    
        data/lib/login_with_google.rb
    CHANGED
    
    | @@ -1,8 +1,13 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            +
            require 'yaml'
         | 
| 3 4 | 
             
            require 'login_with_google/version'
         | 
| 4 5 |  | 
| 5 | 
            -
            module LoginWithGoogle
         | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 6 | 
            +
            module LoginWithGoogle; end
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require 'login_with_google/config'
         | 
| 9 | 
            +
            require 'login_with_google/api_base'
         | 
| 10 | 
            +
            require 'login_with_google/google_api'
         | 
| 11 | 
            +
            require 'helper/login_with_google_helper'
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ActionView::Base.send :include, LoginWithGoogleHelper if defined?(ActionView)
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'net/http'
         | 
| 4 | 
            +
            module LoginWithGoogle
         | 
| 5 | 
            +
              module ApiBase
         | 
| 6 | 
            +
                def http_get(options)
         | 
| 7 | 
            +
                  request = Net::HTTP::Get.new(options[:uri], options[:head])
         | 
| 8 | 
            +
                  request.body = options[:body] if options[:body]
         | 
| 9 | 
            +
                  JSON.parse(request_http(options, request).body)
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                def http_post(options)
         | 
| 13 | 
            +
                  request = Net::HTTP::Post.new(options[:uri], options[:head])
         | 
| 14 | 
            +
                  request.body = options[:body] if options[:body]
         | 
| 15 | 
            +
                  request.basic_auth(*options[:auth]) if options[:auth]
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  return request_http(options, request).body if options[:body_response]
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  JSON.parse(request_http(options, request).body)
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def http_delete(options)
         | 
| 23 | 
            +
                  request = Net::HTTP::Delete.new(options[:uri], options[:head])
         | 
| 24 | 
            +
                  request.body = options[:body] if options[:body]
         | 
| 25 | 
            +
                  request_http(options, request)
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                private
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                def request_http(options, request)
         | 
| 31 | 
            +
                  http = Net::HTTP.new(options[:uri].hostname, options[:uri].port)
         | 
| 32 | 
            +
                  http.use_ssl = options[:uri].scheme == 'https'
         | 
| 33 | 
            +
                  http.request(request)
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
| @@ -0,0 +1,32 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'erb'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module LoginWithGoogle
         | 
| 6 | 
            +
              class << self
         | 
| 7 | 
            +
                def config
         | 
| 8 | 
            +
                  project_config.any? ? project_config : yaml_load(default_config_path)
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                private
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def yaml_load(path)
         | 
| 14 | 
            +
                  template = ERB.new(File.new(path).read)
         | 
| 15 | 
            +
                  YAML.safe_load(template.result, aliases: true)[ENV.fetch('RAILS_ENV', 'development')]
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def project_config
         | 
| 19 | 
            +
                  @project_tools ||= yaml_load(project_config_path) || {}
         | 
| 20 | 
            +
                rescue Errno::ENOENT
         | 
| 21 | 
            +
                  {}
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                def default_config_path
         | 
| 25 | 
            +
                  File.expand_path('../../config/google_login.yml', __dir__)
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                def project_config_path
         | 
| 29 | 
            +
                  "#{Dir.pwd}/config/google_login.yml"
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
            end
         | 
| @@ -0,0 +1,65 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module LoginWithGoogle
         | 
| 4 | 
            +
              class Api
         | 
| 5 | 
            +
                class << self
         | 
| 6 | 
            +
                  include ApiBase
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  attr_accessor :show_url, :show_response
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  def url_in
         | 
| 11 | 
            +
                    [
         | 
| 12 | 
            +
                      LoginWithGoogle.config['url']['login'], '?',
         | 
| 13 | 
            +
                      CGI.unescape(login_params)
         | 
| 14 | 
            +
                    ].join
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def auth(options = {})
         | 
| 18 | 
            +
                    data = LoginWithGoogle.config['auth'].clone
         | 
| 19 | 
            +
                    data[:code] = options[:code]
         | 
| 20 | 
            +
                    data[:redirect_uri] = redirect_uri
         | 
| 21 | 
            +
                    http_post({
         | 
| 22 | 
            +
                                uri: URI(LoginWithGoogle.config['url']['auth']),
         | 
| 23 | 
            +
                                head: { 'content-type' => 'application/json' },
         | 
| 24 | 
            +
                                body: data.to_json
         | 
| 25 | 
            +
                              })
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  def refresh(options = {})
         | 
| 29 | 
            +
                    data = LoginWithGoogle.config['refresh'].clone
         | 
| 30 | 
            +
                    data[:refresh_token] = options[:token]
         | 
| 31 | 
            +
                    http_post({
         | 
| 32 | 
            +
                                head: { 'content-type' => 'application/json' },
         | 
| 33 | 
            +
                                uri: URI(LoginWithGoogle.config['url']['refresh']),
         | 
| 34 | 
            +
                                body: data.to_json
         | 
| 35 | 
            +
                              })
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  def info(options = {})
         | 
| 39 | 
            +
                    response = http_get({
         | 
| 40 | 
            +
                                          uri: URI([
         | 
| 41 | 
            +
                                            LoginWithGoogle.config['url']['info'],
         | 
| 42 | 
            +
                                            "?access_token=#{options['access_token'] || options['token']}"
         | 
| 43 | 
            +
                                          ].join)
         | 
| 44 | 
            +
                                        })
         | 
| 45 | 
            +
                    response
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  private
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                  def redirect_uri
         | 
| 51 | 
            +
                    LoginWithGoogle.config['url']['callback']
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  def login_params
         | 
| 55 | 
            +
                    params = LoginWithGoogle.config['url']['params_login'].clone
         | 
| 56 | 
            +
                    params[:redirect_uri] = redirect_uri
         | 
| 57 | 
            +
                    if params.respond_to?(:to_query)
         | 
| 58 | 
            +
                      params.to_query
         | 
| 59 | 
            +
                    else
         | 
| 60 | 
            +
                      params.collect { |k, v| "#{k}=#{v}" }.join('&')
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
              end
         | 
| 65 | 
            +
            end
         | 
    
        data/login_with_google.gemspec
    CHANGED
    
    | @@ -25,4 +25,10 @@ Gem::Specification.new do |spec| | |
| 25 25 | 
             
              spec.bindir        = 'exe'
         | 
| 26 26 | 
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 27 27 | 
             
              spec.require_paths = ['lib']
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              spec.add_dependency 'yaml', '~> 0.1.0'
         | 
| 30 | 
            +
              spec.add_development_dependency 'activesupport', '~> 6'
         | 
| 31 | 
            +
              spec.add_development_dependency 'pry', '~> 0.12'
         | 
| 32 | 
            +
              spec.add_development_dependency 'rspec', '~> 3'
         | 
| 33 | 
            +
              spec.add_development_dependency 'sinatra', '~> 2'
         | 
| 28 34 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,30 +1,110 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: login_with_google
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 1.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - thiaguerd
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-10- | 
| 12 | 
            -
            dependencies: | 
| 11 | 
            +
            date: 2020-10-17 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: yaml
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: 0.1.0
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: 0.1.0
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: activesupport
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '6'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '6'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: pry
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - "~>"
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0.12'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0.12'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: rspec
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '3'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - "~>"
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '3'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: sinatra
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - "~>"
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '2'
         | 
| 76 | 
            +
              type: :development
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - "~>"
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '2'
         | 
| 13 83 | 
             
            description: Easily login with Google in your app
         | 
| 14 84 | 
             
            email:
         | 
| 15 85 | 
             
            - mail@thiago.pro
         | 
| 16 | 
            -
            executables: | 
| 86 | 
            +
            executables:
         | 
| 87 | 
            +
            - login_with_google:g
         | 
| 17 88 | 
             
            extensions: []
         | 
| 18 89 | 
             
            extra_rdoc_files: []
         | 
| 19 90 | 
             
            files:
         | 
| 20 91 | 
             
            - ".gitignore"
         | 
| 92 | 
            +
            - ".rspec"
         | 
| 21 93 | 
             
            - CODE_OF_CONDUCT.md
         | 
| 22 94 | 
             
            - Gemfile
         | 
| 23 95 | 
             
            - README.md
         | 
| 24 96 | 
             
            - Rakefile
         | 
| 25 97 | 
             
            - bin/console
         | 
| 26 98 | 
             
            - bin/setup
         | 
| 99 | 
            +
            - config/google_login.yml
         | 
| 100 | 
            +
            - config/templates/google_login.yml
         | 
| 101 | 
            +
            - creating_credentials.md
         | 
| 102 | 
            +
            - exe/login_with_google:g
         | 
| 103 | 
            +
            - lib/helper/login_with_google_helper.rb
         | 
| 27 104 | 
             
            - lib/login_with_google.rb
         | 
| 105 | 
            +
            - lib/login_with_google/api_base.rb
         | 
| 106 | 
            +
            - lib/login_with_google/config.rb
         | 
| 107 | 
            +
            - lib/login_with_google/google_api.rb
         | 
| 28 108 | 
             
            - lib/login_with_google/version.rb
         | 
| 29 109 | 
             
            - login_with_google.gemspec
         | 
| 30 110 | 
             
            homepage: https://github.com/caxinaua/login_with_google
         |