token_master 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +1166 -0
- data/README.md +58 -99
- data/dummy/.gitignore +18 -0
- data/dummy/Gemfile +30 -0
- data/dummy/Rakefile +6 -0
- data/dummy/app/assets/config/manifest.js +3 -0
- data/dummy/app/assets/images/.keep +0 -0
- data/dummy/app/assets/javascripts/application.js +16 -0
- data/dummy/app/assets/javascripts/cable.js +13 -0
- data/dummy/app/assets/javascripts/channels/.keep +0 -0
- data/dummy/app/assets/stylesheets/application.css +15 -0
- data/dummy/app/channels/application_cable/channel.rb +4 -0
- data/dummy/app/channels/application_cable/connection.rb +4 -0
- data/dummy/app/controllers/application_controller.rb +3 -0
- data/dummy/app/controllers/concerns/.keep +0 -0
- data/dummy/app/helpers/application_helper.rb +2 -0
- data/dummy/app/jobs/application_job.rb +2 -0
- data/dummy/app/mailers/application_mailer.rb +4 -0
- data/dummy/app/models/application_record.rb +3 -0
- data/dummy/app/models/concerns/.keep +0 -0
- data/dummy/app/models/user.rb +10 -0
- data/dummy/app/views/layouts/application.html.erb +14 -0
- data/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/dummy/bin/bundle +3 -0
- data/dummy/bin/rails +9 -0
- data/dummy/bin/rake +9 -0
- data/dummy/bin/setup +34 -0
- data/dummy/bin/spring +17 -0
- data/dummy/bin/update +29 -0
- data/dummy/config.ru +5 -0
- data/dummy/config/application.rb +15 -0
- data/dummy/config/boot.rb +3 -0
- data/dummy/config/cable.yml +9 -0
- data/dummy/config/database.yml +14 -0
- data/dummy/config/environment.rb +6 -0
- data/dummy/config/environments/development.rb +54 -0
- data/dummy/config/environments/test.rb +42 -0
- data/dummy/config/initializers/assets.rb +11 -0
- data/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/dummy/config/initializers/new_framework_defaults.rb +24 -0
- data/dummy/config/initializers/session_store.rb +3 -0
- data/dummy/config/initializers/token_master.rb +29 -0
- data/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/dummy/config/locales/en.yml +23 -0
- data/dummy/config/puma.rb +47 -0
- data/dummy/config/routes.rb +3 -0
- data/dummy/config/secrets.yml +9 -0
- data/dummy/config/spring.rb +6 -0
- data/dummy/db/migrate/20170505170857_create_users.rb +11 -0
- data/dummy/db/migrate/20170505171217_add_confirm_tokenable_to_users.rb +26 -0
- data/dummy/db/schema.rb +41 -0
- data/dummy/db/seeds.rb +14 -0
- data/dummy/spec/factories/users.rb +8 -0
- data/dummy/spec/models/user_spec.rb +12 -0
- data/dummy/spec/rails_helper.rb +54 -0
- data/dummy/spec/spec_helper.rb +85 -0
- data/dummy/spec/support/factory_bot.rb +3 -0
- data/dummy/spec/support/shoulda_matchers.rb +6 -0
- data/lib/token_master/core.rb +14 -0
- data/lib/token_master/model.rb +6 -1
- data/lib/token_master/version.rb +1 -1
- metadata +62 -3
@@ -0,0 +1,47 @@
|
|
1
|
+
# Puma can serve each request in a thread from an internal thread pool.
|
2
|
+
# The `threads` method setting takes two numbers a minimum and maximum.
|
3
|
+
# Any libraries that use thread pools should be configured to match
|
4
|
+
# the maximum value specified for Puma. Default is set to 5 threads for minimum
|
5
|
+
# and maximum, this matches the default thread size of Active Record.
|
6
|
+
#
|
7
|
+
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i
|
8
|
+
threads threads_count, threads_count
|
9
|
+
|
10
|
+
# Specifies the `port` that Puma will listen on to receive requests, default is 3000.
|
11
|
+
#
|
12
|
+
port ENV.fetch("PORT") { 3000 }
|
13
|
+
|
14
|
+
# Specifies the `environment` that Puma will run in.
|
15
|
+
#
|
16
|
+
environment ENV.fetch("RAILS_ENV") { "development" }
|
17
|
+
|
18
|
+
# Specifies the number of `workers` to boot in clustered mode.
|
19
|
+
# Workers are forked webserver processes. If using threads and workers together
|
20
|
+
# the concurrency of the application would be max `threads` * `workers`.
|
21
|
+
# Workers do not work on JRuby or Windows (both of which do not support
|
22
|
+
# processes).
|
23
|
+
#
|
24
|
+
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
|
25
|
+
|
26
|
+
# Use the `preload_app!` method when specifying a `workers` number.
|
27
|
+
# This directive tells Puma to first boot the application and load code
|
28
|
+
# before forking the application. This takes advantage of Copy On Write
|
29
|
+
# process behavior so workers use less memory. If you use this option
|
30
|
+
# you need to make sure to reconnect any threads in the `on_worker_boot`
|
31
|
+
# block.
|
32
|
+
#
|
33
|
+
# preload_app!
|
34
|
+
|
35
|
+
# The code in the `on_worker_boot` will be called if you are using
|
36
|
+
# clustered mode by specifying a number of `workers`. After each worker
|
37
|
+
# process is booted this block will be run, if you are using `preload_app!`
|
38
|
+
# option you will want to use this block to reconnect to any threads
|
39
|
+
# or connections that may have been created at application boot, Ruby
|
40
|
+
# cannot share connections between processes.
|
41
|
+
#
|
42
|
+
# on_worker_boot do
|
43
|
+
# ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
44
|
+
# end
|
45
|
+
|
46
|
+
# Allow puma to be restarted by `rails restart` command.
|
47
|
+
plugin :tmp_restart
|
@@ -0,0 +1,9 @@
|
|
1
|
+
|
2
|
+
development:
|
3
|
+
secret_key_base: 62d2af1b89d9201a6703a7a7bc291769aba42f4402daef34a2bb589dbd8ea88ed00e30c7f694e1512f9e7c331022bfd90f4574172642eca7f6d5daabb14c5042
|
4
|
+
|
5
|
+
test:
|
6
|
+
secret_key_base: 3e0200862ceb79910a614e3691d733a1971d061d13949db0273794708146c6073032ec3f6ccfc0c902f04efe2c9c0960fbea2226cf3c7f4acb08d91576f11bdb
|
7
|
+
|
8
|
+
production:
|
9
|
+
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class AddConfirmTokenableToUsers < ActiveRecord::Migration[5.0]
|
2
|
+
def change
|
3
|
+
|
4
|
+
add_column :users, :confirm_token, :string, default: nil
|
5
|
+
add_column :users, :confirm_created_at, :timestamp, default: nil
|
6
|
+
add_column :users, :confirm_sent_at, :timestamp, default: nil
|
7
|
+
add_column :users, :confirm_completed_at, :timestamp, default: nil
|
8
|
+
|
9
|
+
add_index :users, :confirm_token
|
10
|
+
|
11
|
+
add_column :users, :reset_token, :string, default: nil
|
12
|
+
add_column :users, :reset_created_at, :timestamp, default: nil
|
13
|
+
add_column :users, :reset_sent_at, :timestamp, default: nil
|
14
|
+
add_column :users, :reset_completed_at, :timestamp, default: nil
|
15
|
+
|
16
|
+
add_index :users, :reset_token
|
17
|
+
|
18
|
+
add_column :users, :invite_token, :string, default: nil
|
19
|
+
add_column :users, :invite_created_at, :timestamp, default: nil
|
20
|
+
add_column :users, :invite_sent_at, :timestamp, default: nil
|
21
|
+
add_column :users, :invite_completed_at, :timestamp, default: nil
|
22
|
+
|
23
|
+
add_index :users, :invite_token
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
data/dummy/db/schema.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead
|
2
|
+
# of editing this file, please use the migrations feature of Active Record to
|
3
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# Note that this schema.rb definition is the authoritative source for your
|
6
|
+
# database schema. If you need to create the application database on another
|
7
|
+
# system, you should be using db:schema:load, not running all the migrations
|
8
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
9
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
10
|
+
#
|
11
|
+
# It's strongly recommended that you check this file into your version control system.
|
12
|
+
|
13
|
+
ActiveRecord::Schema.define(version: 20170505171217) do
|
14
|
+
|
15
|
+
# These are extensions that must be enabled in order to support this database
|
16
|
+
enable_extension "plpgsql"
|
17
|
+
|
18
|
+
create_table "users", force: :cascade do |t|
|
19
|
+
t.string "name"
|
20
|
+
t.string "email"
|
21
|
+
t.string "password_digest"
|
22
|
+
t.datetime "created_at", null: false
|
23
|
+
t.datetime "updated_at", null: false
|
24
|
+
t.string "confirm_token"
|
25
|
+
t.datetime "confirm_created_at"
|
26
|
+
t.datetime "confirm_sent_at"
|
27
|
+
t.datetime "confirm_completed_at"
|
28
|
+
t.string "reset_token"
|
29
|
+
t.datetime "reset_created_at"
|
30
|
+
t.datetime "reset_sent_at"
|
31
|
+
t.datetime "reset_completed_at"
|
32
|
+
t.string "invite_token"
|
33
|
+
t.datetime "invite_created_at"
|
34
|
+
t.datetime "invite_sent_at"
|
35
|
+
t.datetime "invite_completed_at"
|
36
|
+
t.index ["confirm_token"], name: "index_users_on_confirm_token", using: :btree
|
37
|
+
t.index ["invite_token"], name: "index_users_on_invite_token", using: :btree
|
38
|
+
t.index ["reset_token"], name: "index_users_on_reset_token", using: :btree
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/dummy/db/seeds.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
## CREATE USERS
|
2
|
+
puts 'creating users...'
|
3
|
+
num_users = 10
|
4
|
+
users = []
|
5
|
+
num_users.times do
|
6
|
+
users << {
|
7
|
+
name: Faker::Name.name,
|
8
|
+
email: Faker::Internet.email,
|
9
|
+
password: 'password',
|
10
|
+
password_confirmation: 'password'
|
11
|
+
}
|
12
|
+
end
|
13
|
+
User.create!(users)
|
14
|
+
puts "#{num_users} users created"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
RSpec.describe User, :type => :model do
|
4
|
+
subject { build(:user) }
|
5
|
+
|
6
|
+
it { is_expected.to be_valid }
|
7
|
+
|
8
|
+
it { is_expected.to validate_presence_of :name }
|
9
|
+
it { is_expected.to validate_presence_of :email }
|
10
|
+
|
11
|
+
it { expect(subject.send_email).to eq('sent an email') }
|
12
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
ENV["RAILS_ENV"] ||= 'test'
|
2
|
+
require 'spec_helper'
|
3
|
+
require File.expand_path("../../config/environment", __FILE__)
|
4
|
+
require 'rspec/rails'
|
5
|
+
require 'shoulda/matchers'
|
6
|
+
# Add additional requires below this line. Rails is not loaded until this point!
|
7
|
+
|
8
|
+
# Requires supporting ruby files with custom matchers and macros, etc, in
|
9
|
+
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
10
|
+
# run as spec files by default. This means that files in spec/support that end
|
11
|
+
# in _spec.rb will both be required and run as specs, causing the specs to be
|
12
|
+
# run twice. It is recommended that you do not name files matching this glob to
|
13
|
+
# end with _spec.rb. You can configure this pattern with the --pattern
|
14
|
+
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
15
|
+
#
|
16
|
+
# The following line is provided for convenience purposes. It has the downside
|
17
|
+
# of increasing the boot-up time by auto-requiring all files in the support
|
18
|
+
# directory. Alternatively, in the individual `*_spec.rb` files, manually
|
19
|
+
# require only the support files necessary.
|
20
|
+
#
|
21
|
+
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
22
|
+
|
23
|
+
# Checks for pending migrations before tests are run.
|
24
|
+
# If you are not using ActiveRecord, you can remove this line.
|
25
|
+
ActiveRecord::Migration.maintain_test_schema!
|
26
|
+
|
27
|
+
RSpec.configure do |config|
|
28
|
+
config.include FactoryBot::Syntax::Methods
|
29
|
+
config.include Shoulda::Matchers
|
30
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
31
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
32
|
+
|
33
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
34
|
+
# examples within a transaction, remove the following line or assign false
|
35
|
+
# instead of true.
|
36
|
+
config.use_transactional_fixtures = true
|
37
|
+
|
38
|
+
# RSpec Rails can automatically mix in different behaviours to your tests
|
39
|
+
# based on their file location, for example enabling you to call `get` and
|
40
|
+
# `post` in specs under `spec/controllers`.
|
41
|
+
#
|
42
|
+
# You can disable this behaviour by removing the line below, and instead
|
43
|
+
# explicitly tag your specs with their type, e.g.:
|
44
|
+
#
|
45
|
+
# RSpec.describe UsersController, :type => :controller do
|
46
|
+
# # ...
|
47
|
+
# end
|
48
|
+
#
|
49
|
+
# The different available types are documented in the features, such as in
|
50
|
+
# https://relishapp.com/rspec/rspec-rails/docs
|
51
|
+
config.infer_spec_type_from_file_location!
|
52
|
+
end
|
53
|
+
|
54
|
+
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# This file was generated by the `rails generate rspec:install` command. Conventionally, all
|
2
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause this
|
4
|
+
# file to always be loaded, without a need to explicitly require it in any files.
|
5
|
+
#
|
6
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
7
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
8
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
9
|
+
# individual file that may not need all of that loaded. Instead, consider making
|
10
|
+
# a separate helper file that requires the additional dependencies and performs
|
11
|
+
# the additional setup, and require it from the spec files that actually need it.
|
12
|
+
#
|
13
|
+
# The `.rspec` file also contains a few flags that are not defaults but that
|
14
|
+
# users commonly want.
|
15
|
+
#
|
16
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
17
|
+
RSpec.configure do |config|
|
18
|
+
# rspec-expectations config goes here. You can use an alternate
|
19
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
20
|
+
# assertions if you prefer.
|
21
|
+
config.expect_with :rspec do |expectations|
|
22
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
23
|
+
# and `failure_message` of custom matchers include text for helper methods
|
24
|
+
# defined using `chain`, e.g.:
|
25
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
26
|
+
# # => "be bigger than 2 and smaller than 4"
|
27
|
+
# ...rather than:
|
28
|
+
# # => "be bigger than 2"
|
29
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
30
|
+
end
|
31
|
+
|
32
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
33
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
34
|
+
config.mock_with :rspec do |mocks|
|
35
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
36
|
+
# a real object. This is generally recommended, and will default to
|
37
|
+
# `true` in RSpec 4.
|
38
|
+
mocks.verify_partial_doubles = true
|
39
|
+
end
|
40
|
+
|
41
|
+
# The settings below are suggested to provide a good initial experience
|
42
|
+
# with RSpec, but feel free to customize to your heart's content.
|
43
|
+
=begin
|
44
|
+
# These two settings work together to allow you to limit a spec run
|
45
|
+
# to individual examples or groups you care about by tagging them with
|
46
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
47
|
+
# get run.
|
48
|
+
config.filter_run :focus
|
49
|
+
config.run_all_when_everything_filtered = true
|
50
|
+
|
51
|
+
# Limits the available syntax to the non-monkey patched syntax that is recommended.
|
52
|
+
# For more details, see:
|
53
|
+
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
54
|
+
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
55
|
+
# - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
|
56
|
+
config.disable_monkey_patching!
|
57
|
+
|
58
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
59
|
+
# file, and it's useful to allow more verbose output when running an
|
60
|
+
# individual spec file.
|
61
|
+
if config.files_to_run.one?
|
62
|
+
# Use the documentation formatter for detailed output,
|
63
|
+
# unless a formatter has already been configured
|
64
|
+
# (e.g. via a command-line flag).
|
65
|
+
config.default_formatter = 'doc'
|
66
|
+
end
|
67
|
+
|
68
|
+
# Print the 10 slowest examples and example groups at the
|
69
|
+
# end of the spec run, to help surface which specs are running
|
70
|
+
# particularly slow.
|
71
|
+
config.profile_examples = 10
|
72
|
+
|
73
|
+
# Run specs in random order to surface order dependencies. If you find an
|
74
|
+
# order dependency and want to debug it, you can fix the order by providing
|
75
|
+
# the seed, which is printed after each run.
|
76
|
+
# --seed 1234
|
77
|
+
config.order = :random
|
78
|
+
|
79
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
80
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
81
|
+
# test failures related to randomization by passing the same `--seed` value
|
82
|
+
# as the one that triggered the failure.
|
83
|
+
Kernel.srand config.seed
|
84
|
+
=end
|
85
|
+
end
|
data/lib/token_master/core.rb
CHANGED
@@ -92,6 +92,20 @@ module TokenMaster
|
|
92
92
|
model.save(validate: false)
|
93
93
|
end
|
94
94
|
|
95
|
+
# Calls set_token! and send_instructions! to generate a new token and send instructions again (accepts a block, such as a mailer method, for sending instructions).<br />Note, any previously generated token for the user will be invalid.
|
96
|
+
# @example Resend Reset Instructions
|
97
|
+
# user.resend_reset_instruction! { user.send_email } =>
|
98
|
+
# <User id: 205, name: "John Smith", email: "jsmith@example.com", reset_token: "4ZcHkSJ8kXrV4wl", reset_created_at: 2017-04-25 16:21:54", reset_sent_at: "2017-04-25 16:22:42", reset_completed_at: nil>
|
99
|
+
# @param [Object] model the tokenable model instance
|
100
|
+
# @param [String, Symbol] key the tokenable action
|
101
|
+
# @param [Integer] token_length the length of the generated token, method will use configuration token_length if not provided otherwise
|
102
|
+
# @raise [NotTokenableError] if the provided Class does not have the correct tokenable column
|
103
|
+
# @return [Object] tokenable model instance
|
104
|
+
def resend_instructions!(model, key, token_length = nil)
|
105
|
+
set_token!(model, key, token_length)
|
106
|
+
send_instructions!(model, key)
|
107
|
+
end
|
108
|
+
|
95
109
|
# Provides the status of the tokenable action, whether the action has been completed, the token has been sent, the token is expired, or the token has only been created
|
96
110
|
# @param [Object] model the tokenable model instance
|
97
111
|
# @param [String, Symbol] key the tokenable action
|
data/lib/token_master/model.rb
CHANGED
@@ -24,6 +24,11 @@ module TokenMaster
|
|
24
24
|
TokenMaster::Core.send_instructions!(self, tokenable, &email)
|
25
25
|
end
|
26
26
|
|
27
|
+
# Defines a method on the tokenable model instance to generate a new token and send tokenable action instructions again, e.g., `user.resend_confim_instructions!`. Accepts a block with app logic to send instructions.
|
28
|
+
define_method("resend_#{tokenable}_instructions!") do |&email|
|
29
|
+
TokenMaster::Core.resend_instructions!(self, tokenable, &email)
|
30
|
+
end
|
31
|
+
|
27
32
|
# Defines a method on the tokenable model instance to retrieve the status of a tokenable action, e.g., `user.confim_status`
|
28
33
|
define_method("#{tokenable}_status") do
|
29
34
|
TokenMaster::Core.status(self, tokenable)
|
@@ -35,7 +40,7 @@ module TokenMaster
|
|
35
40
|
end
|
36
41
|
# class methods
|
37
42
|
|
38
|
-
# Defines a method on the tokenable model class to
|
43
|
+
# Defines a method on the tokenable model class to complete a tokenable action given a token, e.g., `User.confim_by_token!`. Takes the token and accepts any keyword arguments for `required_params`.
|
39
44
|
define_singleton_method("#{tokenable}_by_token!") do |token, **params|
|
40
45
|
TokenMaster::Core.do_by_token!(self, tokenable, token, **params)
|
41
46
|
end
|
data/lib/token_master/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: token_master
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Corwin
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-12-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -61,6 +61,7 @@ extra_rdoc_files: []
|
|
61
61
|
files:
|
62
62
|
- ".gitignore"
|
63
63
|
- ".inch.yml"
|
64
|
+
- ".rubocop.yml"
|
64
65
|
- ".ruby-version"
|
65
66
|
- ".travis.yml"
|
66
67
|
- ".yardopts"
|
@@ -70,6 +71,64 @@ files:
|
|
70
71
|
- Rakefile
|
71
72
|
- badge.png
|
72
73
|
- badge.svg
|
74
|
+
- dummy/.gitignore
|
75
|
+
- dummy/Gemfile
|
76
|
+
- dummy/Rakefile
|
77
|
+
- dummy/app/assets/config/manifest.js
|
78
|
+
- dummy/app/assets/images/.keep
|
79
|
+
- dummy/app/assets/javascripts/application.js
|
80
|
+
- dummy/app/assets/javascripts/cable.js
|
81
|
+
- dummy/app/assets/javascripts/channels/.keep
|
82
|
+
- dummy/app/assets/stylesheets/application.css
|
83
|
+
- dummy/app/channels/application_cable/channel.rb
|
84
|
+
- dummy/app/channels/application_cable/connection.rb
|
85
|
+
- dummy/app/controllers/application_controller.rb
|
86
|
+
- dummy/app/controllers/concerns/.keep
|
87
|
+
- dummy/app/helpers/application_helper.rb
|
88
|
+
- dummy/app/jobs/application_job.rb
|
89
|
+
- dummy/app/mailers/application_mailer.rb
|
90
|
+
- dummy/app/models/application_record.rb
|
91
|
+
- dummy/app/models/concerns/.keep
|
92
|
+
- dummy/app/models/user.rb
|
93
|
+
- dummy/app/views/layouts/application.html.erb
|
94
|
+
- dummy/app/views/layouts/mailer.html.erb
|
95
|
+
- dummy/app/views/layouts/mailer.text.erb
|
96
|
+
- dummy/bin/bundle
|
97
|
+
- dummy/bin/rails
|
98
|
+
- dummy/bin/rake
|
99
|
+
- dummy/bin/setup
|
100
|
+
- dummy/bin/spring
|
101
|
+
- dummy/bin/update
|
102
|
+
- dummy/config.ru
|
103
|
+
- dummy/config/application.rb
|
104
|
+
- dummy/config/boot.rb
|
105
|
+
- dummy/config/cable.yml
|
106
|
+
- dummy/config/database.yml
|
107
|
+
- dummy/config/environment.rb
|
108
|
+
- dummy/config/environments/development.rb
|
109
|
+
- dummy/config/environments/test.rb
|
110
|
+
- dummy/config/initializers/assets.rb
|
111
|
+
- dummy/config/initializers/cookies_serializer.rb
|
112
|
+
- dummy/config/initializers/filter_parameter_logging.rb
|
113
|
+
- dummy/config/initializers/new_framework_defaults.rb
|
114
|
+
- dummy/config/initializers/session_store.rb
|
115
|
+
- dummy/config/initializers/token_master.rb
|
116
|
+
- dummy/config/initializers/wrap_parameters.rb
|
117
|
+
- dummy/config/locales/en.yml
|
118
|
+
- dummy/config/puma.rb
|
119
|
+
- dummy/config/routes.rb
|
120
|
+
- dummy/config/secrets.yml
|
121
|
+
- dummy/config/spring.rb
|
122
|
+
- dummy/db/migrate/20170505170857_create_users.rb
|
123
|
+
- dummy/db/migrate/20170505171217_add_confirm_tokenable_to_users.rb
|
124
|
+
- dummy/db/schema.rb
|
125
|
+
- dummy/db/seeds.rb
|
126
|
+
- dummy/spec/factories/users.rb
|
127
|
+
- dummy/spec/models/user_spec.rb
|
128
|
+
- dummy/spec/rails_helper.rb
|
129
|
+
- dummy/spec/spec_helper.rb
|
130
|
+
- dummy/spec/support/factory_bot.rb
|
131
|
+
- dummy/spec/support/shoulda_matchers.rb
|
73
132
|
- lib/generators/rails/templates/migration.rb.erb
|
74
133
|
- lib/generators/rails/token_master_generator.rb
|
75
134
|
- lib/generators/token_master/install_generator.rb
|
@@ -103,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
162
|
version: '0'
|
104
163
|
requirements: []
|
105
164
|
rubyforge_project:
|
106
|
-
rubygems_version: 2.
|
165
|
+
rubygems_version: 2.5.1
|
107
166
|
signing_key:
|
108
167
|
specification_version: 4
|
109
168
|
summary: Token Master!
|