UserModelTest#test_password_stretching_in_background (7 ms warmup)
wall_time: 1 ms
memory: unsupported
objects: unsupported
gc_runs: 0
gc_time: 0 ms
class Upload < ApplicationRecord | |
validates :size, inclusion: { in: 0..2.megabytes } | |
def key | |
"#{id}/#{filename}" | |
end | |
def url | |
bucket.object(key).presigned_url(:get, expires_in: 604_800) | |
end |
source "https://rubygems.org" | |
# ... Other gems ... | |
gem "aws-sdk" |
<div class="sb-embed-example"> | |
<div class="drop-in-simon"> | |
<i class="fa fa-simplybuilt"></i> | |
</div> | |
</div> | |
<script type="text/javascript"> | |
(function(SB, doc) { | |
SB.addCSS("https://s3.amazonaws.com/simplybuiltprod/embeds/sb-style.css", "sb-embed-styles", true); | |
SB.addCSS("https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css", "font-awesome", true); | |
SB.addCSS("http://fonts.googleapis.com/css?family=Open+Sans:700,300,600,800", "open-sans", true); |
rails generate devise:async:stretch:populate_stretch_marks User |
$ rails generate devise:async:stretch:install User |
gem 'devise-async-stretch' |
UserModelTest#test_password_stretching_in_background (7 ms warmup)
wall_time: 1 ms
memory: unsupported
objects: unsupported
gc_runs: 0
gc_time: 0 ms
UserModelTest#test_password_stretching_inline (72ms warmup)
wall_time: 64ms sec
memory: unsupported
objects: unsupported
gc_runs: 0
gc_time: 0 ms
# routes.rb | |
resources :documents | |
# app/controllers/documents_controller.rb | |
class DocumentsController < ApplicationController | |
authenticate :user | |
find_and_authorize :documents, :edit, through: :memberships, only: [:edit, :update] | |
find_and_authorize :documents, :delete, through: :memberships, only: :destroy | |
end |
# routes.rb | |
# Reports resource for Admins | |
resources :reports | |
# app/controllers/reports_controller.rb | |
class ReportsController < ApplicationController | |
authorize_resource :admin, :support | |
find_resource :report, from: :current_admin, except: [:index, :new, :create] | |
end |