lol_auth 0.1.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.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/lol_auth_manifest.js +2 -0
  6. data/app/assets/javascripts/lol_auth/application.js +13 -0
  7. data/app/assets/stylesheets/lol_auth/application.css +15 -0
  8. data/app/controllers/lol_auth/application_controller.rb +4 -0
  9. data/app/controllers/lol_auth/passwords_controller.rb +31 -0
  10. data/app/controllers/lol_auth/users_controller.rb +17 -0
  11. data/app/helpers/lol_auth/application_helper.rb +4 -0
  12. data/app/helpers/lol_auth/users_helper.rb +4 -0
  13. data/app/jobs/lol_auth/application_job.rb +4 -0
  14. data/app/mailers/lol_auth/application_mailer.rb +6 -0
  15. data/app/managers/facebook/base.rb +11 -0
  16. data/app/managers/facebook/login.rb +68 -0
  17. data/app/managers/user_reset_password_manager.rb +24 -0
  18. data/app/models/lol_auth/application_record.rb +5 -0
  19. data/app/models/user.rb +9 -0
  20. data/app/uploaders/avatar_uploader.rb +52 -0
  21. data/app/views/devise/mailer/reset_password_instructions.html.erb +893 -0
  22. data/app/views/layouts/lol_auth/application.html.erb +14 -0
  23. data/app/views/layouts/lol_auth/passwords.html.erb +17 -0
  24. data/app/views/lol_auth/passwords/_form.html.erb +31 -0
  25. data/app/views/lol_auth/passwords/_token_expired.html.erb +7 -0
  26. data/app/views/lol_auth/passwords/complete.html.erb +12 -0
  27. data/app/views/lol_auth/passwords/new.html.erb +5 -0
  28. data/app/views/lol_auth/users/_user.json.jbuilder +5 -0
  29. data/app/views/lol_auth/users/success.json.jbuilder +4 -0
  30. data/config/initializers/carrierwave.rb +10 -0
  31. data/config/initializers/devise_token_auth.rb +48 -0
  32. data/config/initializers/lol_users_config.rb +3 -0
  33. data/config/routes.rb +16 -0
  34. data/db/migrate/20170825152755_devise_token_auth_create_users.rb +54 -0
  35. data/db/migrate/20170828174614_add_avatar_to_users.rb +5 -0
  36. data/lib/generators/lol_auth/install/USAGE +8 -0
  37. data/lib/generators/lol_auth/install/install_generator.rb +17 -0
  38. data/lib/generators/lol_auth/install/templates/facebook_app.yml +11 -0
  39. data/lib/lol_auth.rb +5 -0
  40. data/lib/lol_auth/engine.rb +13 -0
  41. data/lib/lol_auth/version.rb +3 -0
  42. data/lib/tasks/lol_auth_tasks.rake +4 -0
  43. metadata +253 -0
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Lol users</title>
5
+ <%= stylesheet_link_tag "lol_auth/application", media: "all" %>
6
+ <%= javascript_include_tag "lol_auth/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ Loldesign
6
+ </title>
7
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
+ <meta name="format-detection" content="telephone=no">
10
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800|Playfair+Display:400,700,900" rel="stylesheet">
11
+ </head>
12
+ <body>
13
+ <div class="container">
14
+ <%= yield %>
15
+ </div>
16
+ </body>
17
+ </html>
@@ -0,0 +1,31 @@
1
+ <% if params[:notice].present? %>
2
+ <div class="alert alert-danger mt-5" role="alert">
3
+ <%= params[:notice] %>
4
+ </div>
5
+ <% end %>
6
+
7
+ <%= form_tag create_password_path do%>
8
+ <div class="card mt-5">
9
+ <div class="card-header">
10
+ Olá <%= @user.name %> - Troque sua Senha
11
+ </div>
12
+
13
+ <div class="card-body">
14
+ <div class="form-group">
15
+ <%= label_tag 'user[password]', 'Nova Senha' %>
16
+ <%= password_field_tag 'user[password]', '', class: "form-control" %>
17
+ </div>
18
+
19
+ <div class="form-group">
20
+ <%= label_tag 'user[password]', 'Confirme a Nova Senha' %>
21
+ <%= password_field_tag 'user[password_confirmation]', '', class: "form-control" %>
22
+ </div>
23
+
24
+ <%= hidden_field_tag 'token', params[:token] %>
25
+ <%= submit_tag 'Trocar Senha', class: "btn btn-primary" %>
26
+ </div>
27
+ <div class="card-footer text-muted">
28
+ Loldesign - Recuperação de Senha
29
+ </div>
30
+ </div>
31
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <div class="card bg-light mb-3 mt-5">
2
+ <div class="card-header">Tente Novamente</div>
3
+ <div class="card-body">
4
+ <h4 class="card-title">Token Expirado</h4>
5
+ <p class="card-text">Por algum motivo o seu token está expirado, tente novamente no App informar o seu e-mail que enviaremos um novo e-mail.</p>
6
+ </div>
7
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="card mt-5">
2
+ <div class="card-header">
3
+ Senha Atualizada
4
+ </div>
5
+
6
+ <div class="card-body">
7
+ <h4 class="card-title">Sua senha foi atualizada com sucesso</h4>
8
+ </div>
9
+ <div class="card-footer text-muted">
10
+ Loldesign - Recuperação de Senha
11
+ </div>
12
+ </div>
@@ -0,0 +1,5 @@
1
+ <% if @user.present? %>
2
+ <%= render partial: 'form' %>
3
+ <% else %>
4
+ <%= render partial: 'token_expired' %>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ json.id user.id
2
+ json.name user.name
3
+ json.email user.email
4
+ json.avatar user.avatar
5
+ json.uid user.uid
@@ -0,0 +1,4 @@
1
+ json.message 'success'
2
+ json.data do
3
+ json.partial! 'user', user: @user
4
+ end
@@ -0,0 +1,10 @@
1
+ if Rails.env.production?
2
+ CarrierWave.configure do |config|
3
+ config.fog_credentials = {
4
+ :provider => 'AWS',
5
+ :aws_access_key_id => ENV['S3_ACCESS_KEY_ID'],
6
+ :aws_secret_access_key => ENV['S3_SECRET_KEY']
7
+ }
8
+ config.fog_directory = ENV['S3_BUCKET']
9
+ end
10
+ end
@@ -0,0 +1,48 @@
1
+ DeviseTokenAuth.setup do |config|
2
+ # By default the authorization headers will change after each request. The
3
+ # client is responsible for keeping track of the changing tokens. Change
4
+ # this to false to prevent the Authorization header from changing after
5
+ # each request.
6
+ config.change_headers_on_each_request = false
7
+
8
+ # By default, users will need to re-authenticate after 2 weeks. This setting
9
+ # determines how long tokens will remain valid after they are issued.
10
+ config.token_lifespan = 2.weeks
11
+
12
+ # Sets the max number of concurrent devices per user, which is 10 by default.
13
+ # After this limit is reached, the oldest tokens will be removed.
14
+ # config.max_number_of_devices = 10
15
+
16
+ # Sometimes it's necessary to make several requests to the API at the same
17
+ # time. In this case, each request in the batch will need to share the same
18
+ # auth token. This setting determines how far apart the requests can be while
19
+ # still using the same auth token.
20
+ # config.batch_request_buffer_throttle = 5.seconds
21
+
22
+ # This route will be the prefix for all oauth2 redirect callbacks. For
23
+ # example, using the default '/omniauth', the github oauth2 provider will
24
+ # redirect successful authentications to '/omniauth/github/callback'
25
+ # config.omniauth_prefix = "/omniauth"
26
+
27
+ # By default sending current password is not needed for the password update.
28
+ # Uncomment to enforce current_password param to be checked before all
29
+ # attribute updates. Set it to :password if you want it to be checked only if
30
+ # password is updated.
31
+ # config.check_current_password_before_update = :attributes
32
+
33
+ # By default we will use callbacks for single omniauth.
34
+ # It depends on fields like email, provider and uid.
35
+ # config.default_callbacks = true
36
+
37
+ # Makes it possible to change the headers names
38
+ # config.headers_names = {:'access-token' => 'access-token',
39
+ # :'client' => 'client',
40
+ # :'expiry' => 'expiry',
41
+ # :'uid' => 'uid',
42
+ # :'token-type' => 'token-type' }
43
+
44
+ # By default, only Bearer Token authentication is implemented out of the box.
45
+ # If, however, you wish to integrate with legacy Devise authentication, you can
46
+ # do so by enabling this flag. NOTE: This feature is highly experimental!
47
+ # config.enable_standard_devise_support = false
48
+ end
@@ -0,0 +1,3 @@
1
+ # LolAuth.configure do |config|
2
+ # config.facebook_app = config_for(:facebook_app)
3
+ # end
data/config/routes.rb ADDED
@@ -0,0 +1,16 @@
1
+ Rails.application.routes.draw do
2
+ root 'home#index'
3
+ # RESET PASSWORD
4
+ get '/passwords/new' , to: 'lol_auth/passwords#new' , as: :new_password
5
+ post '/passwords/create' , to: 'lol_auth/passwords#create' , as: :create_password
6
+ get '/passwords/complete', to: 'lol_auth/passwords#complete', as: :complete_password
7
+
8
+ namespace :api do
9
+ namespace :v1 do
10
+ mount_devise_token_auth_for 'User', at: 'auth'
11
+
12
+ # USER SIGNUP FACEBOOK
13
+ post '/users/facebook/signin', to: '/lol_auth/users#facebook_signin'
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,54 @@
1
+ class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table(:users) do |t|
4
+ ## Required
5
+ t.string :provider, :null => false, :default => "email"
6
+ t.string :uid, :null => false, :default => ""
7
+
8
+ ## Database authenticatable
9
+ t.string :encrypted_password, :null => false, :default => ""
10
+
11
+ ## Recoverable
12
+ t.string :reset_password_token
13
+ t.datetime :reset_password_sent_at
14
+
15
+ ## Rememberable
16
+ t.datetime :remember_created_at
17
+
18
+ ## Trackable
19
+ t.integer :sign_in_count, :default => 0, :null => false
20
+ t.datetime :current_sign_in_at
21
+ t.datetime :last_sign_in_at
22
+ t.string :current_sign_in_ip
23
+ t.string :last_sign_in_ip
24
+
25
+ ## Confirmable
26
+ t.string :confirmation_token
27
+ t.datetime :confirmed_at
28
+ t.datetime :confirmation_sent_at
29
+ t.string :unconfirmed_email # Only if using reconfirmable
30
+
31
+ ## Lockable
32
+ # t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
33
+ # t.string :unlock_token # Only if unlock strategy is :email or :both
34
+ # t.datetime :locked_at
35
+
36
+ ## User Info
37
+ t.string :name
38
+ t.string :nickname
39
+ t.string :image
40
+ t.string :email
41
+
42
+ ## Tokens
43
+ t.json :tokens
44
+
45
+ t.timestamps
46
+ end
47
+
48
+ add_index :users, :email, unique: true
49
+ add_index :users, [:uid, :provider], unique: true
50
+ add_index :users, :reset_password_token, unique: true
51
+ add_index :users, :confirmation_token, unique: true
52
+ # add_index :users, :unlock_token, unique: true
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ class AddAvatarToUsers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :users, :avatar, :string
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Init LolAuth to your project
3
+
4
+ Example:
5
+ rails generate initializer
6
+
7
+ This will create:
8
+ config/facebook_app.yml
@@ -0,0 +1,17 @@
1
+ class LolAuth::InstallGenerator < Rails::Generators::Base
2
+ desc "Install LolAuth to your ptoject"
3
+
4
+ source_root File.expand_path('../templates', __FILE__)
5
+
6
+ def add_facebook_config
7
+ application "config.facebook_app = config_for(:facebook_app)"
8
+ end
9
+
10
+ def copy_fcebook_file
11
+ copy_file "facebook_app.yml", "config/facebook_app.yml"
12
+ end
13
+
14
+ def copy_migrations
15
+ rake "lol_auth:install:migrations"
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ development:
2
+ id: "<%=ENV['FACEBOOK_APP_ID']%>"
3
+ secret_key: "<%=ENV['FACEBOOK_APP_SECRET_KEY']%>"
4
+
5
+ test:
6
+ id: "<%=ENV['FACEBOOK_APP_ID']%>"
7
+ secret_key: "<%=ENV['FACEBOOK_APP_SECRET_KEY']%>"
8
+
9
+ production:
10
+ id: "<%=ENV['FACEBOOK_APP_ID']%>"
11
+ secret_key: "<%=ENV['FACEBOOK_APP_SECRET_KEY']%>"
data/lib/lol_auth.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "lol_auth/engine"
2
+
3
+ module LolAuth
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,13 @@
1
+ module LolAuth
2
+ require 'devise_token_auth'
3
+
4
+ class Engine < ::Rails::Engine
5
+ require 'carrierwave'
6
+ require 'fog'
7
+ require 'mini_magick'
8
+ require 'koala'
9
+ require 'jbuilder'
10
+
11
+ isolate_namespace LolAuth
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module LolAuth
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :lol_auth do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,253 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lol_auth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Eduardo Zaghi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-09-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: omniauth
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: koala
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: devise_token_auth
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: paranoia
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.2'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pg
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 0.18.4
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.18.4
97
+ - !ruby/object:Gem::Dependency
98
+ name: jbuilder
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 2.6.3
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 2.6.3
111
+ - !ruby/object:Gem::Dependency
112
+ name: carrierwave
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: fog
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.38'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.38'
139
+ - !ruby/object:Gem::Dependency
140
+ name: mini_magick
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: mailcatcher
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: Add auth features
182
+ email:
183
+ - eduardo@loldesign.com.br
184
+ executables: []
185
+ extensions: []
186
+ extra_rdoc_files: []
187
+ files:
188
+ - MIT-LICENSE
189
+ - README.md
190
+ - Rakefile
191
+ - app/assets/config/lol_auth_manifest.js
192
+ - app/assets/javascripts/lol_auth/application.js
193
+ - app/assets/stylesheets/lol_auth/application.css
194
+ - app/controllers/lol_auth/application_controller.rb
195
+ - app/controllers/lol_auth/passwords_controller.rb
196
+ - app/controllers/lol_auth/users_controller.rb
197
+ - app/helpers/lol_auth/application_helper.rb
198
+ - app/helpers/lol_auth/users_helper.rb
199
+ - app/jobs/lol_auth/application_job.rb
200
+ - app/mailers/lol_auth/application_mailer.rb
201
+ - app/managers/facebook/base.rb
202
+ - app/managers/facebook/login.rb
203
+ - app/managers/user_reset_password_manager.rb
204
+ - app/models/lol_auth/application_record.rb
205
+ - app/models/user.rb
206
+ - app/uploaders/avatar_uploader.rb
207
+ - app/views/devise/mailer/reset_password_instructions.html.erb
208
+ - app/views/layouts/lol_auth/application.html.erb
209
+ - app/views/layouts/lol_auth/passwords.html.erb
210
+ - app/views/lol_auth/passwords/_form.html.erb
211
+ - app/views/lol_auth/passwords/_token_expired.html.erb
212
+ - app/views/lol_auth/passwords/complete.html.erb
213
+ - app/views/lol_auth/passwords/new.html.erb
214
+ - app/views/lol_auth/users/_user.json.jbuilder
215
+ - app/views/lol_auth/users/success.json.jbuilder
216
+ - config/initializers/carrierwave.rb
217
+ - config/initializers/devise_token_auth.rb
218
+ - config/initializers/lol_users_config.rb
219
+ - config/routes.rb
220
+ - db/migrate/20170825152755_devise_token_auth_create_users.rb
221
+ - db/migrate/20170828174614_add_avatar_to_users.rb
222
+ - lib/generators/lol_auth/install/USAGE
223
+ - lib/generators/lol_auth/install/install_generator.rb
224
+ - lib/generators/lol_auth/install/templates/facebook_app.yml
225
+ - lib/lol_auth.rb
226
+ - lib/lol_auth/engine.rb
227
+ - lib/lol_auth/version.rb
228
+ - lib/tasks/lol_auth_tasks.rake
229
+ homepage: http://loldesign.com.br
230
+ licenses:
231
+ - MIT
232
+ metadata: {}
233
+ post_install_message:
234
+ rdoc_options: []
235
+ require_paths:
236
+ - lib
237
+ required_ruby_version: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ required_rubygems_version: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ requirements: []
248
+ rubyforge_project:
249
+ rubygems_version: 2.4.5.1
250
+ signing_key:
251
+ specification_version: 4
252
+ summary: Lol Auth
253
+ test_files: []