devise_token_auth 0.1.28 → 0.1.29.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +61 -1
  3. data/app/controllers/devise_token_auth/{auth_controller.rb → omniauth_callbacks_controller.rb} +22 -33
  4. data/app/controllers/devise_token_auth/registrations_controller.rb +2 -0
  5. data/app/controllers/devise_token_auth/sessions_controller.rb +1 -1
  6. data/app/controllers/devise_token_auth/token_validations_controller.rb +23 -0
  7. data/app/models/devise_token_auth/concerns/user.rb +1 -3
  8. data/config/initializers/devise.rb +0 -9
  9. data/config/routes.rb +12 -1
  10. data/lib/devise_token_auth/engine.rb +8 -0
  11. data/lib/devise_token_auth/rails/routes.rb +30 -9
  12. data/lib/devise_token_auth/version.rb +1 -1
  13. data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +0 -2
  14. data/test/controllers/devise_token_auth/{auth_controller_test.rb → omniauth_callbacks_controller_test.rb} +4 -4
  15. data/test/controllers/devise_token_auth/registrations_controller_test.rb +6 -0
  16. data/test/controllers/overrides/confirmations_controller_test.rb +44 -0
  17. data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +44 -0
  18. data/test/controllers/overrides/passwords_controller_test.rb +62 -0
  19. data/test/controllers/overrides/registrations_controller_test.rb +40 -0
  20. data/test/controllers/overrides/sessions_controller_test.rb +33 -0
  21. data/test/controllers/overrides/token_validations_controller_test.rb +38 -0
  22. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +32 -0
  23. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +14 -0
  24. data/test/dummy/app/controllers/overrides/passwords_controller.rb +39 -0
  25. data/test/dummy/app/controllers/overrides/registrations_controller.rb +27 -0
  26. data/test/dummy/app/controllers/overrides/sessions_controller.rb +43 -0
  27. data/test/dummy/app/controllers/overrides/token_validations_controller.rb +23 -0
  28. data/test/dummy/{tmp/generators/app/models/mang.rb → app/models/evil_user.rb} +1 -1
  29. data/test/dummy/config/routes.rb +9 -0
  30. data/test/dummy/db/development.sqlite3 +0 -0
  31. data/test/dummy/{tmp/generators/db/migrate/20140924174608_devise_token_auth_create_mangs.rb → db/migrate/20140928231203_devise_token_auth_create_evil_users.rb} +10 -9
  32. data/test/dummy/db/schema.rb +33 -1
  33. data/test/dummy/db/test.sqlite3 +0 -0
  34. data/test/dummy/log/development.log +437 -0
  35. data/test/dummy/log/test.log +72703 -0
  36. data/test/dummy/tmp/generators/config/routes.rb +0 -5
  37. data/test/dummy/tmp/generators/db/migrate/{20140924174608_devise_token_auth_create_users.rb → 20140930001137_devise_token_auth_create_users.rb} +0 -2
  38. data/test/fixtures/evil_users.yml +29 -0
  39. data/test/fixtures/mangs.yml +0 -2
  40. data/test/fixtures/users.yml +0 -2
  41. metadata +40 -13
@@ -1,3 +1,3 @@
1
- class Mang < ActiveRecord::Base
1
+ class EvilUser < ActiveRecord::Base
2
2
  include DeviseTokenAuth::Concerns::User
3
3
  end
@@ -10,6 +10,15 @@ Rails.application.routes.draw do
10
10
  # need to be defined within a devise_scope as shown below
11
11
  mount_devise_token_auth_for "Mang", at: '/mangs'
12
12
 
13
+ mount_devise_token_auth_for 'EvilUser', at: '/evil_user_auth', controllers: {
14
+ confirmations: 'overrides/confirmations',
15
+ passwords: 'overrides/passwords',
16
+ omniauth_callbacks: 'overrides/omniauth_callbacks',
17
+ registrations: 'overrides/registrations',
18
+ sessions: 'overrides/sessions',
19
+ token_validations: 'overrides/token_validations'
20
+ }
21
+
13
22
  # this route will authorize visitors using the User class
14
23
  get 'demo/members_only', to: 'demo_user#members_only'
15
24
 
Binary file
@@ -1,6 +1,6 @@
1
- class DeviseTokenAuthCreateMangs < ActiveRecord::Migration
1
+ class DeviseTokenAuthCreateEvilUsers < ActiveRecord::Migration
2
2
  def change
3
- create_table(:mangs) do |t|
3
+ create_table(:evil_users) do |t|
4
4
  ## Database authenticatable
5
5
  t.string :email
6
6
  t.string :encrypted_password, :null => false, :default => ""
@@ -8,7 +8,6 @@ class DeviseTokenAuthCreateMangs < ActiveRecord::Migration
8
8
  ## Recoverable
9
9
  t.string :reset_password_token
10
10
  t.datetime :reset_password_sent_at
11
- t.string :reset_password_redirect_url
12
11
 
13
12
  ## Rememberable
14
13
  t.datetime :remember_created_at
@@ -24,7 +23,6 @@ class DeviseTokenAuthCreateMangs < ActiveRecord::Migration
24
23
  t.string :confirmation_token
25
24
  t.datetime :confirmed_at
26
25
  t.datetime :confirmation_sent_at
27
- t.string :confirm_success_url
28
26
  t.string :unconfirmed_email # Only if using reconfirmable
29
27
 
30
28
  ## Lockable
@@ -44,13 +42,16 @@ class DeviseTokenAuthCreateMangs < ActiveRecord::Migration
44
42
  ## Tokens
45
43
  t.text :tokens
46
44
 
45
+ ## etc.
46
+ t.string :favorite_color
47
+
47
48
  t.timestamps
48
49
  end
49
50
 
50
- add_index :mangs, :email
51
- add_index :mangs, :uid, :unique => true
52
- add_index :mangs, :reset_password_token, :unique => true
53
- # add_index :mangs, :confirmation_token, :unique => true
54
- # add_index :mangs, :unlock_token, :unique => true
51
+ add_index :evil_users, :email
52
+ add_index :evil_users, :uid, :unique => true
53
+ add_index :evil_users, :reset_password_token, :unique => true
54
+ # add_index :evil_users, :confirmation_token, :unique => true
55
+ # add_index :evil_users, :unlock_token, :unique => true
55
56
  end
56
57
  end
@@ -11,7 +11,37 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20140916224624) do
14
+ ActiveRecord::Schema.define(version: 20140928231203) do
15
+
16
+ create_table "evil_users", force: true do |t|
17
+ t.string "email"
18
+ t.string "encrypted_password", default: "", null: false
19
+ t.string "reset_password_token"
20
+ t.datetime "reset_password_sent_at"
21
+ t.datetime "remember_created_at"
22
+ t.integer "sign_in_count", default: 0, null: false
23
+ t.datetime "current_sign_in_at"
24
+ t.datetime "last_sign_in_at"
25
+ t.string "current_sign_in_ip"
26
+ t.string "last_sign_in_ip"
27
+ t.string "confirmation_token"
28
+ t.datetime "confirmed_at"
29
+ t.datetime "confirmation_sent_at"
30
+ t.string "unconfirmed_email"
31
+ t.string "name"
32
+ t.string "nickname"
33
+ t.string "image"
34
+ t.string "provider"
35
+ t.string "uid", default: "", null: false
36
+ t.text "tokens"
37
+ t.string "favorite_color"
38
+ t.datetime "created_at"
39
+ t.datetime "updated_at"
40
+ end
41
+
42
+ add_index "evil_users", ["email"], name: "index_evil_users_on_email"
43
+ add_index "evil_users", ["reset_password_token"], name: "index_evil_users_on_reset_password_token", unique: true
44
+ add_index "evil_users", ["uid"], name: "index_evil_users_on_uid", unique: true
15
45
 
16
46
  create_table "mangs", force: true do |t|
17
47
  t.string "email"
@@ -70,6 +100,8 @@ ActiveRecord::Schema.define(version: 20140916224624) do
70
100
  t.text "tokens"
71
101
  t.datetime "created_at"
72
102
  t.datetime "updated_at"
103
+ t.integer "favorite_number"
104
+ t.string "favorite_taco"
73
105
  t.integer "operating_thetan"
74
106
  t.string "favorite_color"
75
107
  end
Binary file
@@ -25656,3 +25656,440 @@ Binary data inserted for `string` type on column `encrypted_password`
25656
25656
  SQL (0.2ms) UPDATE "mangs" SET "tokens" = ?, "updated_at" = ? WHERE "mangs"."id" = 15 [["tokens", "{\"NLKzrkZBzouIorzlKG1d4A\":{\"token\":\"$2a$10$CjR2xdEaqHxtcnAHwjsZRe6NXBMmiKuTNPmPYKspjhDOt0U9FAzm.\",\"expiry\":1412632924,\"last_token\":\"$2a$10$rvOjrWBN8y1jHpWzALwjCOWHP6kRWUDpGMfjvtfih5.JDE1b7dZPK\",\"updated_at\":\"2014-09-22T17:02:04.336-05:00\"}}"], ["updated_at", "2014-09-22 22:02:04.337410"]]
25657
25657
   (0.5ms) commit transaction
25658
25658
  Completed 200 OK in 188ms (Views: 0.6ms | ActiveRecord: 2.9ms)
25659
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25660
+ Migrating to DeviseTokenAuthCreateEvilUsers (20140928231203)
25661
+  (0.1ms) begin transaction
25662
+  (0.5ms) CREATE TABLE "evil_users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "email" varchar(255), "encrypted_password" varchar(255) DEFAULT '' NOT NULL, "reset_password_token" varchar(255), "reset_password_sent_at" datetime, "remember_created_at" datetime, "sign_in_count" integer DEFAULT 0 NOT NULL, "current_sign_in_at" datetime, "last_sign_in_at" datetime, "current_sign_in_ip" varchar(255), "last_sign_in_ip" varchar(255), "confirmation_token" varchar(255), "confirmed_at" datetime, "confirmation_sent_at" datetime, "unconfirmed_email" varchar(255), "name" varchar(255), "nickname" varchar(255), "image" varchar(255), "provider" varchar(255), "uid" varchar(255) DEFAULT '' NOT NULL, "tokens" text, "created_at" datetime, "updated_at" datetime) 
25663
+  (0.0ms) select sqlite_version(*)
25664
+  (0.1ms) CREATE INDEX "index_evil_users_on_email" ON "evil_users" ("email")
25665
+  (0.1ms) SELECT sql
25666
+ FROM sqlite_master
25667
+ WHERE name='index_evil_users_on_email' AND type='index'
25668
+ UNION ALL
25669
+ SELECT sql
25670
+ FROM sqlite_temp_master
25671
+ WHERE name='index_evil_users_on_email' AND type='index'
25672
+
25673
+  (0.7ms) CREATE UNIQUE INDEX "index_evil_users_on_uid" ON "evil_users" ("uid")
25674
+  (0.1ms) SELECT sql
25675
+ FROM sqlite_master
25676
+ WHERE name='index_evil_users_on_uid' AND type='index'
25677
+ UNION ALL
25678
+ SELECT sql
25679
+ FROM sqlite_temp_master
25680
+ WHERE name='index_evil_users_on_uid' AND type='index'
25681
+
25682
+  (0.1ms)  SELECT sql
25683
+ FROM sqlite_master
25684
+ WHERE name='index_evil_users_on_email' AND type='index'
25685
+ UNION ALL
25686
+ SELECT sql
25687
+ FROM sqlite_temp_master
25688
+ WHERE name='index_evil_users_on_email' AND type='index'
25689
+ 
25690
+  (0.1ms) CREATE UNIQUE INDEX "index_evil_users_on_reset_password_token" ON "evil_users" ("reset_password_token")
25691
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140928231203"]]
25692
+  (0.8ms) commit transaction
25693
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25694
+  (0.1ms) SELECT sql
25695
+ FROM sqlite_master
25696
+ WHERE name='index_evil_users_on_reset_password_token' AND type='index'
25697
+ UNION ALL
25698
+ SELECT sql
25699
+ FROM sqlite_temp_master
25700
+ WHERE name='index_evil_users_on_reset_password_token' AND type='index'
25701
+
25702
+  (0.1ms)  SELECT sql
25703
+ FROM sqlite_master
25704
+ WHERE name='index_evil_users_on_uid' AND type='index'
25705
+ UNION ALL
25706
+ SELECT sql
25707
+ FROM sqlite_temp_master
25708
+ WHERE name='index_evil_users_on_uid' AND type='index'
25709
+ 
25710
+  (0.1ms) SELECT sql
25711
+ FROM sqlite_master
25712
+ WHERE name='index_evil_users_on_email' AND type='index'
25713
+ UNION ALL
25714
+ SELECT sql
25715
+ FROM sqlite_temp_master
25716
+ WHERE name='index_evil_users_on_email' AND type='index'
25717
+
25718
+  (0.1ms)  SELECT sql
25719
+ FROM sqlite_master
25720
+ WHERE name='index_mangs_on_reset_password_token' AND type='index'
25721
+ UNION ALL
25722
+ SELECT sql
25723
+ FROM sqlite_temp_master
25724
+ WHERE name='index_mangs_on_reset_password_token' AND type='index'
25725
+ 
25726
+  (0.1ms) SELECT sql
25727
+ FROM sqlite_master
25728
+ WHERE name='index_mangs_on_uid' AND type='index'
25729
+ UNION ALL
25730
+ SELECT sql
25731
+ FROM sqlite_temp_master
25732
+ WHERE name='index_mangs_on_uid' AND type='index'
25733
+
25734
+  (0.1ms)  SELECT sql
25735
+ FROM sqlite_master
25736
+ WHERE name='index_mangs_on_email' AND type='index'
25737
+ UNION ALL
25738
+ SELECT sql
25739
+ FROM sqlite_temp_master
25740
+ WHERE name='index_mangs_on_email' AND type='index'
25741
+ 
25742
+  (0.1ms) SELECT sql
25743
+ FROM sqlite_master
25744
+ WHERE name='index_users_on_reset_password_token' AND type='index'
25745
+ UNION ALL
25746
+ SELECT sql
25747
+ FROM sqlite_temp_master
25748
+ WHERE name='index_users_on_reset_password_token' AND type='index'
25749
+
25750
+  (0.1ms)  SELECT sql
25751
+ FROM sqlite_master
25752
+ WHERE name='index_users_on_uid' AND type='index'
25753
+ UNION ALL
25754
+ SELECT sql
25755
+ FROM sqlite_temp_master
25756
+ WHERE name='index_users_on_uid' AND type='index'
25757
+ 
25758
+  (0.1ms) SELECT sql
25759
+ FROM sqlite_master
25760
+ WHERE name='index_users_on_email' AND type='index'
25761
+ UNION ALL
25762
+ SELECT sql
25763
+ FROM sqlite_temp_master
25764
+ WHERE name='index_users_on_email' AND type='index'
25765
+
25766
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25767
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25768
+ Migrating to DeviseTokenAuthCreateEvilUsers (20140928231203)
25769
+  (0.1ms) begin transaction
25770
+  (0.1ms) SELECT sql
25771
+ FROM sqlite_master
25772
+ WHERE name='index_evil_users_on_reset_password_token' AND type='index'
25773
+ UNION ALL
25774
+ SELECT sql
25775
+ FROM sqlite_temp_master
25776
+ WHERE name='index_evil_users_on_reset_password_token' AND type='index'
25777
+
25778
+  (0.1ms)  SELECT sql
25779
+ FROM sqlite_master
25780
+ WHERE name='index_evil_users_on_uid' AND type='index'
25781
+ UNION ALL
25782
+ SELECT sql
25783
+ FROM sqlite_temp_master
25784
+ WHERE name='index_evil_users_on_uid' AND type='index'
25785
+ 
25786
+  (0.1ms) SELECT sql
25787
+ FROM sqlite_master
25788
+ WHERE name='index_evil_users_on_email' AND type='index'
25789
+ UNION ALL
25790
+ SELECT sql
25791
+ FROM sqlite_temp_master
25792
+ WHERE name='index_evil_users_on_email' AND type='index'
25793
+
25794
+  (0.4ms) DROP INDEX "index_evil_users_on_reset_password_token"
25795
+  (0.1ms) SELECT sql
25796
+ FROM sqlite_master
25797
+ WHERE name='index_evil_users_on_uid' AND type='index'
25798
+ UNION ALL
25799
+ SELECT sql
25800
+ FROM sqlite_temp_master
25801
+ WHERE name='index_evil_users_on_uid' AND type='index'
25802
+
25803
+  (0.1ms)  SELECT sql
25804
+ FROM sqlite_master
25805
+ WHERE name='index_evil_users_on_email' AND type='index'
25806
+ UNION ALL
25807
+ SELECT sql
25808
+ FROM sqlite_temp_master
25809
+ WHERE name='index_evil_users_on_email' AND type='index'
25810
+ 
25811
+  (1.1ms) DROP INDEX "index_evil_users_on_uid"
25812
+  (0.1ms)  SELECT sql
25813
+ FROM sqlite_master
25814
+ WHERE name='index_evil_users_on_email' AND type='index'
25815
+ UNION ALL
25816
+ SELECT sql
25817
+ FROM sqlite_temp_master
25818
+ WHERE name='index_evil_users_on_email' AND type='index'
25819
+ 
25820
+  (0.2ms) DROP INDEX "index_evil_users_on_email"
25821
+  (0.2ms) DROP TABLE "evil_users"
25822
+ SQL (0.1ms) DELETE FROM "schema_migrations" WHERE "schema_migrations"."version" = '20140928231203'
25823
+  (0.7ms) commit transaction
25824
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25825
+  (0.1ms)  SELECT sql
25826
+ FROM sqlite_master
25827
+ WHERE name='index_mangs_on_reset_password_token' AND type='index'
25828
+ UNION ALL
25829
+ SELECT sql
25830
+ FROM sqlite_temp_master
25831
+ WHERE name='index_mangs_on_reset_password_token' AND type='index'
25832
+ 
25833
+  (0.1ms) SELECT sql
25834
+ FROM sqlite_master
25835
+ WHERE name='index_mangs_on_uid' AND type='index'
25836
+ UNION ALL
25837
+ SELECT sql
25838
+ FROM sqlite_temp_master
25839
+ WHERE name='index_mangs_on_uid' AND type='index'
25840
+
25841
+  (0.1ms)  SELECT sql
25842
+ FROM sqlite_master
25843
+ WHERE name='index_mangs_on_email' AND type='index'
25844
+ UNION ALL
25845
+ SELECT sql
25846
+ FROM sqlite_temp_master
25847
+ WHERE name='index_mangs_on_email' AND type='index'
25848
+ 
25849
+  (0.1ms) SELECT sql
25850
+ FROM sqlite_master
25851
+ WHERE name='index_users_on_reset_password_token' AND type='index'
25852
+ UNION ALL
25853
+ SELECT sql
25854
+ FROM sqlite_temp_master
25855
+ WHERE name='index_users_on_reset_password_token' AND type='index'
25856
+
25857
+  (0.1ms)  SELECT sql
25858
+ FROM sqlite_master
25859
+ WHERE name='index_users_on_uid' AND type='index'
25860
+ UNION ALL
25861
+ SELECT sql
25862
+ FROM sqlite_temp_master
25863
+ WHERE name='index_users_on_uid' AND type='index'
25864
+ 
25865
+  (0.1ms) SELECT sql
25866
+ FROM sqlite_master
25867
+ WHERE name='index_users_on_email' AND type='index'
25868
+ UNION ALL
25869
+ SELECT sql
25870
+ FROM sqlite_temp_master
25871
+ WHERE name='index_users_on_email' AND type='index'
25872
+
25873
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25874
+ Migrating to DeviseTokenAuthCreateEvilUsers (20140928231203)
25875
+  (0.0ms) begin transaction
25876
+  (0.5ms) CREATE TABLE "evil_users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "email" varchar(255), "encrypted_password" varchar(255) DEFAULT '' NOT NULL, "reset_password_token" varchar(255), "reset_password_sent_at" datetime, "remember_created_at" datetime, "sign_in_count" integer DEFAULT 0 NOT NULL, "current_sign_in_at" datetime, "last_sign_in_at" datetime, "current_sign_in_ip" varchar(255), "last_sign_in_ip" varchar(255), "confirmation_token" varchar(255), "confirmed_at" datetime, "confirmation_sent_at" datetime, "unconfirmed_email" varchar(255), "name" varchar(255), "nickname" varchar(255), "image" varchar(255), "provider" varchar(255), "uid" varchar(255) DEFAULT '' NOT NULL, "tokens" text, "favorite_color" varchar(255), "created_at" datetime, "updated_at" datetime) 
25877
+  (0.0ms) select sqlite_version(*)
25878
+  (0.1ms) CREATE INDEX "index_evil_users_on_email" ON "evil_users" ("email")
25879
+  (0.1ms) SELECT sql
25880
+ FROM sqlite_master
25881
+ WHERE name='index_evil_users_on_email' AND type='index'
25882
+ UNION ALL
25883
+ SELECT sql
25884
+ FROM sqlite_temp_master
25885
+ WHERE name='index_evil_users_on_email' AND type='index'
25886
+
25887
+  (0.8ms) CREATE UNIQUE INDEX "index_evil_users_on_uid" ON "evil_users" ("uid")
25888
+  (0.1ms) SELECT sql
25889
+ FROM sqlite_master
25890
+ WHERE name='index_evil_users_on_uid' AND type='index'
25891
+ UNION ALL
25892
+ SELECT sql
25893
+ FROM sqlite_temp_master
25894
+ WHERE name='index_evil_users_on_uid' AND type='index'
25895
+
25896
+  (0.1ms)  SELECT sql
25897
+ FROM sqlite_master
25898
+ WHERE name='index_evil_users_on_email' AND type='index'
25899
+ UNION ALL
25900
+ SELECT sql
25901
+ FROM sqlite_temp_master
25902
+ WHERE name='index_evil_users_on_email' AND type='index'
25903
+ 
25904
+  (0.1ms) CREATE UNIQUE INDEX "index_evil_users_on_reset_password_token" ON "evil_users" ("reset_password_token")
25905
+ SQL (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140928231203"]]
25906
+  (2.0ms) commit transaction
25907
+ ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
25908
+  (0.1ms) SELECT sql
25909
+ FROM sqlite_master
25910
+ WHERE name='index_evil_users_on_reset_password_token' AND type='index'
25911
+ UNION ALL
25912
+ SELECT sql
25913
+ FROM sqlite_temp_master
25914
+ WHERE name='index_evil_users_on_reset_password_token' AND type='index'
25915
+
25916
+  (0.1ms)  SELECT sql
25917
+ FROM sqlite_master
25918
+ WHERE name='index_evil_users_on_uid' AND type='index'
25919
+ UNION ALL
25920
+ SELECT sql
25921
+ FROM sqlite_temp_master
25922
+ WHERE name='index_evil_users_on_uid' AND type='index'
25923
+ 
25924
+  (0.1ms) SELECT sql
25925
+ FROM sqlite_master
25926
+ WHERE name='index_evil_users_on_email' AND type='index'
25927
+ UNION ALL
25928
+ SELECT sql
25929
+ FROM sqlite_temp_master
25930
+ WHERE name='index_evil_users_on_email' AND type='index'
25931
+
25932
+  (0.1ms)  SELECT sql
25933
+ FROM sqlite_master
25934
+ WHERE name='index_mangs_on_reset_password_token' AND type='index'
25935
+ UNION ALL
25936
+ SELECT sql
25937
+ FROM sqlite_temp_master
25938
+ WHERE name='index_mangs_on_reset_password_token' AND type='index'
25939
+ 
25940
+  (0.1ms) SELECT sql
25941
+ FROM sqlite_master
25942
+ WHERE name='index_mangs_on_uid' AND type='index'
25943
+ UNION ALL
25944
+ SELECT sql
25945
+ FROM sqlite_temp_master
25946
+ WHERE name='index_mangs_on_uid' AND type='index'
25947
+
25948
+  (0.1ms)  SELECT sql
25949
+ FROM sqlite_master
25950
+ WHERE name='index_mangs_on_email' AND type='index'
25951
+ UNION ALL
25952
+ SELECT sql
25953
+ FROM sqlite_temp_master
25954
+ WHERE name='index_mangs_on_email' AND type='index'
25955
+ 
25956
+  (0.1ms) SELECT sql
25957
+ FROM sqlite_master
25958
+ WHERE name='index_users_on_reset_password_token' AND type='index'
25959
+ UNION ALL
25960
+ SELECT sql
25961
+ FROM sqlite_temp_master
25962
+ WHERE name='index_users_on_reset_password_token' AND type='index'
25963
+
25964
+  (0.1ms)  SELECT sql
25965
+ FROM sqlite_master
25966
+ WHERE name='index_users_on_uid' AND type='index'
25967
+ UNION ALL
25968
+ SELECT sql
25969
+ FROM sqlite_temp_master
25970
+ WHERE name='index_users_on_uid' AND type='index'
25971
+ 
25972
+  (0.1ms) SELECT sql
25973
+ FROM sqlite_master
25974
+ WHERE name='index_users_on_email' AND type='index'
25975
+ UNION ALL
25976
+ SELECT sql
25977
+ FROM sqlite_temp_master
25978
+ WHERE name='index_users_on_email' AND type='index'
25979
+
25980
+
25981
+
25982
+ Started GET "/auth/github?auth_origin_url=http%3A%2F%2Fng-token-auth.dev%2F" for 127.0.0.1 at 2014-09-29 18:43:40 -0500
25983
+ ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
25984
+
25985
+
25986
+ Started GET "/omniauth/github?auth_origin_url=http%3A%2F%2Fng-token-auth.dev%2F&resource_class=User" for 127.0.0.1 at 2014-09-29 18:43:40 -0500
25987
+
25988
+
25989
+ Started GET "/omniauth/github/callback?code=cb5cef8252d9610b220c&state=65c4742d5a53c73ae2c38582c8fb63270c550a0890bb2c02" for 127.0.0.1 at 2014-09-29 18:43:40 -0500
25990
+
25991
+
25992
+ Started GET "/auth/github/callback?auth_hash%5Bcredentials%5D%5Bexpires%5D=false&auth_hash%5Bcredentials%5D%5Btoken%5D=fe4c5155babfd60ffb760df6db241ee469dfc8ff&auth_hash%5Bextra%5D%5Braw_info%5D%5Bavatar_url%5D=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F468037%3Fv%3D2&auth_hash%5Bextra%5D%5Braw_info%5D%5Bbio%5D=&auth_hash%5Bextra%5D%5Braw_info%5D%5Bblog%5D=&auth_hash%5Bextra%5D%5Braw_info%5D%5Bcompany%5D=&auth_hash%5Bextra%5D%5Braw_info%5D%5Bcreated_at%5D=2010-11-04T21%3A43%3A29Z&auth_hash%5Bextra%5D%5Braw_info%5D%5Bemail%5D=lynn.dylan.hurley%2Bgithub%40gmail.com&auth_hash%5Bextra%5D%5Braw_info%5D%5Bevents_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Fevents%7B%2Fprivacy%7D&auth_hash%5Bextra%5D%5Braw_info%5D%5Bfollowers%5D=27&auth_hash%5Bextra%5D%5Braw_info%5D%5Bfollowers_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Ffollowers&auth_hash%5Bextra%5D%5Braw_info%5D%5Bfollowing%5D=1&auth_hash%5Bextra%5D%5Braw_info%5D%5Bfollowing_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Ffollowing%7B%2Fother_user%7D&auth_hash%5Bextra%5D%5Braw_info%5D%5Bgists_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Fgists%7B%2Fgist_id%7D&auth_hash%5Bextra%5D%5Braw_info%5D%5Bgravatar_id%5D=&auth_hash%5Bextra%5D%5Braw_info%5D%5Bhireable%5D=false&auth_hash%5Bextra%5D%5Braw_info%5D%5Bhtml_url%5D=https%3A%2F%2Fgithub.com%2Flynndylanhurley&auth_hash%5Bextra%5D%5Braw_info%5D%5Bid%5D=468037&auth_hash%5Bextra%5D%5Braw_info%5D%5Blocation%5D=&auth_hash%5Bextra%5D%5Braw_info%5D%5Blogin%5D=lynndylanhurley&auth_hash%5Bextra%5D%5Braw_info%5D%5Bname%5D=Lynn+Dylan+Hurley&auth_hash%5Bextra%5D%5Braw_info%5D%5Borganizations_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Forgs&auth_hash%5Bextra%5D%5Braw_info%5D%5Bpublic_gists%5D=210&auth_hash%5Bextra%5D%5Braw_info%5D%5Bpublic_repos%5D=14&auth_hash%5Bextra%5D%5Braw_info%5D%5Breceived_events_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Freceived_events&auth_hash%5Bextra%5D%5Braw_info%5D%5Brepos_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Frepos&auth_hash%5Bextra%5D%5Braw_info%5D%5Bsite_admin%5D=false&auth_hash%5Bextra%5D%5Braw_info%5D%5Bstarred_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D&auth_hash%5Bextra%5D%5Braw_info%5D%5Bsubscriptions_url%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley%2Fsubscriptions&auth_hash%5Bextra%5D%5Braw_info%5D%5Btype%5D=User&auth_hash%5Bextra%5D%5Braw_info%5D%5Bupdated_at%5D=2014-09-29T23%3A41%3A46Z&auth_hash%5Bextra%5D%5Braw_info%5D%5Burl%5D=https%3A%2F%2Fapi.github.com%2Fusers%2Flynndylanhurley&auth_hash%5Binfo%5D%5Bemail%5D=lynn.dylan.hurley%2Bgithub%40gmail.com&auth_hash%5Binfo%5D%5Bimage%5D=https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F468037%3Fv%3D2&auth_hash%5Binfo%5D%5Bname%5D=Lynn+Dylan+Hurley&auth_hash%5Binfo%5D%5Bnickname%5D=lynndylanhurley&auth_hash%5Binfo%5D%5Burls%5D%5BBlog%5D=&auth_hash%5Binfo%5D%5Burls%5D%5BGitHub%5D=https%3A%2F%2Fgithub.com%2Flynndylanhurley&auth_hash%5Bprovider%5D=github&auth_hash%5Buid%5D=468037&auth_params%5Bauth_origin_url%5D=http%3A%2F%2Fng-token-auth.dev%2F&auth_params%5Bresource_class%5D=User" for 127.0.0.1 at 2014-09-29 18:43:41 -0500
25993
+ Processing by DeviseTokenAuth::OmniauthCallbacksController#omniauth_success as HTML
25994
+ Parameters: {"auth_hash"=>{"credentials"=>{"expires"=>"false", "token"=>"fe4c5155babfd60ffb760df6db241ee469dfc8ff"}, "extra"=>{"raw_info"=>{"avatar_url"=>"https://avatars.githubusercontent.com/u/468037?v=2", "bio"=>"", "blog"=>"", "company"=>"", "created_at"=>"2010-11-04T21:43:29Z", "email"=>"lynn.dylan.hurley+github@gmail.com", "events_url"=>"https://api.github.com/users/lynndylanhurley/events{/privacy}", "followers"=>"27", "followers_url"=>"https://api.github.com/users/lynndylanhurley/followers", "following"=>"1", "following_url"=>"https://api.github.com/users/lynndylanhurley/following{/other_user}", "gists_url"=>"https://api.github.com/users/lynndylanhurley/gists{/gist_id}", "gravatar_id"=>"", "hireable"=>"false", "html_url"=>"https://github.com/lynndylanhurley", "id"=>"468037", "location"=>"", "login"=>"lynndylanhurley", "name"=>"Lynn Dylan Hurley", "organizations_url"=>"https://api.github.com/users/lynndylanhurley/orgs", "public_gists"=>"210", "public_repos"=>"14", "received_events_url"=>"https://api.github.com/users/lynndylanhurley/received_events", "repos_url"=>"https://api.github.com/users/lynndylanhurley/repos", "site_admin"=>"false", "starred_url"=>"https://api.github.com/users/lynndylanhurley/starred{/owner}{/repo}", "subscriptions_url"=>"https://api.github.com/users/lynndylanhurley/subscriptions", "type"=>"User", "updated_at"=>"2014-09-29T23:41:46Z", "url"=>"https://api.github.com/users/lynndylanhurley"}}, "info"=>{"email"=>"lynn.dylan.hurley+github@gmail.com", "image"=>"https://avatars.githubusercontent.com/u/468037?v=2", "name"=>"Lynn Dylan Hurley", "nickname"=>"lynndylanhurley", "urls"=>{"Blog"=>"", "GitHub"=>"https://github.com/lynndylanhurley"}}, "provider"=>"github", "uid"=>"468037"}, "auth_params"=>{"auth_origin_url"=>"http://ng-token-auth.dev/", "resource_class"=>"User"}, "provider"=>"github"}
25995
+ User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' AND "users"."provider" = 'github' ORDER BY "users"."id" ASC LIMIT 1
25996
+  (0.1ms) begin transaction
25997
+ Binary data inserted for `string` type on column `encrypted_password`
25998
+ SQL (3.0ms) INSERT INTO "users" ("confirmed_at", "created_at", "email", "encrypted_password", "image", "name", "nickname", "provider", "tokens", "uid", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["confirmed_at", "2014-09-29 23:43:42.042187"], ["created_at", "2014-09-29 23:43:42.044573"], ["email", "lynn.dylan.hurley+github@gmail.com"], ["encrypted_password", "$2a$10$Tis00u.5PRTavsj8Og9QrefCBg.jQ4A9D0tii8EwmU/eY8YBfqRCm"], ["image", "https://avatars.githubusercontent.com/u/468037?v=2"], ["name", "Lynn Dylan Hurley"], ["nickname", "lynndylanhurley"], ["provider", "github"], ["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$G1OG1LK2bswOZM7ERlbd7uLoColhkDlLtv3OtDUoGm7iKnYFc/2N2\",\"expiry\":1413243822}}"], ["uid", "468037"], ["updated_at", "2014-09-29 23:43:42.044573"]]
25999
+  (0.5ms) commit transaction
26000
+ Rendered /Users/lynn/Code/Auth/devise_token_auth/app/views/devise_token_auth/omniauth_success.html.erb within layouts/omniauth_response (1.5ms)
26001
+ Completed 200 OK in 155ms (Views: 7.3ms | ActiveRecord: 4.3ms)
26002
+
26003
+
26004
+ Started GET "/auth/validate_token" for 127.0.0.1 at 2014-09-29 18:43:46 -0500
26005
+ Processing by DeviseTokenAuth::TokenValidationsController#validate_token as HTML
26006
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26007
+  (0.1ms) begin transaction
26008
+ SQL (0.4ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$oQPvB64idyrUMqOCS227Gu.4bfKMoeNJAxq2TlEsvjjbGBhAdAb8u\",\"expiry\":1413243826,\"last_token\":\"$2a$10$G1OG1LK2bswOZM7ERlbd7uLoColhkDlLtv3OtDUoGm7iKnYFc/2N2\",\"updated_at\":\"2014-09-29T18:43:46.250-05:00\"}}"], ["updated_at", "2014-09-29 23:43:46.251139"]]
26009
+  (17.5ms) commit transaction
26010
+ Completed 200 OK in 144ms (Views: 0.3ms | ActiveRecord: 18.2ms)
26011
+
26012
+
26013
+ Started GET "/demo/members_only" for 127.0.0.1 at 2014-09-29 18:43:49 -0500
26014
+ Processing by DemoUserController#members_only as HTML
26015
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26016
+  (0.1ms) begin transaction
26017
+ SQL (0.2ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$oQPvB64idyrUMqOCS227Gu.4bfKMoeNJAxq2TlEsvjjbGBhAdAb8u\",\"expiry\":1413243826,\"last_token\":\"$2a$10$G1OG1LK2bswOZM7ERlbd7uLoColhkDlLtv3OtDUoGm7iKnYFc/2N2\",\"updated_at\":\"2014-09-29T18:43:50.005-05:00\"}}"], ["updated_at", "2014-09-29 23:43:50.006367"]]
26018
+  (0.5ms) commit transaction
26019
+ Completed 200 OK in 66ms (Views: 0.6ms | ActiveRecord: 0.9ms)
26020
+
26021
+
26022
+ Started GET "/demo/members_only" for 127.0.0.1 at 2014-09-29 18:43:52 -0500
26023
+ Processing by DemoUserController#members_only as HTML
26024
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26025
+  (0.1ms) begin transaction
26026
+ SQL (0.3ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$oQPvB64idyrUMqOCS227Gu.4bfKMoeNJAxq2TlEsvjjbGBhAdAb8u\",\"expiry\":1413243826,\"last_token\":\"$2a$10$G1OG1LK2bswOZM7ERlbd7uLoColhkDlLtv3OtDUoGm7iKnYFc/2N2\",\"updated_at\":\"2014-09-29T18:43:52.136-05:00\"}}"], ["updated_at", "2014-09-29 23:43:52.137261"]]
26027
+  (16.4ms) commit transaction
26028
+ Completed 200 OK in 79ms (Views: 0.5ms | ActiveRecord: 16.9ms)
26029
+
26030
+
26031
+ Started GET "/demo/members_only" for 127.0.0.1 at 2014-09-29 18:43:54 -0500
26032
+ Processing by DemoUserController#members_only as HTML
26033
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26034
+  (0.1ms) begin transaction
26035
+ SQL (0.3ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$oQPvB64idyrUMqOCS227Gu.4bfKMoeNJAxq2TlEsvjjbGBhAdAb8u\",\"expiry\":1413243826,\"last_token\":\"$2a$10$G1OG1LK2bswOZM7ERlbd7uLoColhkDlLtv3OtDUoGm7iKnYFc/2N2\",\"updated_at\":\"2014-09-29T18:43:54.291-05:00\"}}"], ["updated_at", "2014-09-29 23:43:54.292124"]]
26036
+  (1.7ms) commit transaction
26037
+ Completed 200 OK in 65ms (Views: 0.5ms | ActiveRecord: 2.2ms)
26038
+
26039
+
26040
+ Started PUT "/auth" for 127.0.0.1 at 2014-09-29 18:44:04 -0500
26041
+ Processing by DeviseTokenAuth::RegistrationsController#update as HTML
26042
+ Parameters: {"favorite_color"=>"blood", "registration"=>{"favorite_color"=>"blood"}}
26043
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26044
+ Unpermitted parameters: registration
26045
+  (0.1ms) begin transaction
26046
+  (0.0ms) rollback transaction
26047
+ Completed 403 Forbidden in 67ms (Views: 0.2ms | ActiveRecord: 0.3ms)
26048
+
26049
+
26050
+ Started PUT "/auth" for 127.0.0.1 at 2014-09-29 18:44:10 -0500
26051
+ Processing by DeviseTokenAuth::RegistrationsController#update as HTML
26052
+ Parameters: {"favorite_color"=>"melon", "registration"=>{"favorite_color"=>"melon"}}
26053
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26054
+ Unpermitted parameters: registration
26055
+  (0.1ms) begin transaction
26056
+ SQL (0.4ms) UPDATE "users" SET "favorite_color" = ?, "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["favorite_color", "melon"], ["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$oQPvB64idyrUMqOCS227Gu.4bfKMoeNJAxq2TlEsvjjbGBhAdAb8u\",\"expiry\":1413243826,\"last_token\":\"$2a$10$G1OG1LK2bswOZM7ERlbd7uLoColhkDlLtv3OtDUoGm7iKnYFc/2N2\",\"updated_at\":\"2014-09-29T18:43:54.291-05:00\"}}"], ["updated_at", "2014-09-29 23:44:10.957045"]]
26057
+  (1.9ms) commit transaction
26058
+  (0.1ms) begin transaction
26059
+ SQL (0.2ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$hJgO/Qm.jMFTNS40fmITkufMndw4UvrlHipqWX7bcwGngvn1aVkKC\",\"expiry\":1413243851,\"last_token\":\"$2a$10$oQPvB64idyrUMqOCS227Gu.4bfKMoeNJAxq2TlEsvjjbGBhAdAb8u\",\"updated_at\":\"2014-09-29T18:44:11.022-05:00\"}}"], ["updated_at", "2014-09-29 23:44:11.023025"]]
26060
+  (1.0ms) commit transaction
26061
+ Completed 200 OK in 134ms (Views: 0.3ms | ActiveRecord: 3.9ms)
26062
+
26063
+
26064
+ Started GET "/auth/validate_token" for 127.0.0.1 at 2014-09-29 18:44:17 -0500
26065
+ Processing by DeviseTokenAuth::TokenValidationsController#validate_token as HTML
26066
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26067
+  (0.1ms) begin transaction
26068
+ SQL (0.3ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$ze9qmh8pr9JB/iriMwhb..hMy1oqc4L/dgEGj0SnaHTlLPGrc8NZm\",\"expiry\":1413243857,\"last_token\":\"$2a$10$hJgO/Qm.jMFTNS40fmITkufMndw4UvrlHipqWX7bcwGngvn1aVkKC\",\"updated_at\":\"2014-09-29T18:44:17.153-05:00\"}}"], ["updated_at", "2014-09-29 23:44:17.154580"]]
26069
+  (1.8ms) commit transaction
26070
+ Completed 200 OK in 128ms (Views: 0.3ms | ActiveRecord: 2.3ms)
26071
+
26072
+
26073
+ Started GET "/demo/members_only_mang" for 127.0.0.1 at 2014-09-29 18:44:37 -0500
26074
+ Processing by DemoMangController#members_only as HTML
26075
+ Mang Load (2.2ms) SELECT "mangs".* FROM "mangs" WHERE "mangs"."uid" = '468037' LIMIT 1
26076
+ Filter chain halted as :authenticate_mang! rendered or redirected
26077
+ Completed 401 Unauthorized in 4ms (Views: 0.2ms | ActiveRecord: 2.6ms)
26078
+
26079
+
26080
+ Started GET "/demo/members_only" for 127.0.0.1 at 2014-09-29 18:44:39 -0500
26081
+ Processing by DemoUserController#members_only as HTML
26082
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26083
+  (0.1ms) begin transaction
26084
+ SQL (0.2ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$WeDHKbhjjG2ThHSw6IjI1ujiHx2/whpa7cVYy5MimcmSCKa4W3d6W\",\"expiry\":1413243879,\"last_token\":\"$2a$10$ze9qmh8pr9JB/iriMwhb..hMy1oqc4L/dgEGj0SnaHTlLPGrc8NZm\",\"updated_at\":\"2014-09-29T18:44:39.168-05:00\"}}"], ["updated_at", "2014-09-29 23:44:39.169177"]]
26085
+  (1.0ms) commit transaction
26086
+ Completed 200 OK in 124ms (Views: 0.6ms | ActiveRecord: 1.5ms)
26087
+
26088
+
26089
+ Started GET "/demo/members_only_group" for 127.0.0.1 at 2014-09-29 18:44:41 -0500
26090
+ Processing by DemoGroupController#members_only as HTML
26091
+ User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."uid" = '468037' LIMIT 1
26092
+  (0.1ms) begin transaction
26093
+ SQL (0.3ms) UPDATE "users" SET "tokens" = ?, "updated_at" = ? WHERE "users"."id" = 30 [["tokens", "{\"Ng6Gdlw3aGF1Zx6vcZH4jQ\":{\"token\":\"$2a$10$WeDHKbhjjG2ThHSw6IjI1ujiHx2/whpa7cVYy5MimcmSCKa4W3d6W\",\"expiry\":1413243879,\"last_token\":\"$2a$10$ze9qmh8pr9JB/iriMwhb..hMy1oqc4L/dgEGj0SnaHTlLPGrc8NZm\",\"updated_at\":\"2014-09-29T18:44:41.448-05:00\"}}"], ["updated_at", "2014-09-29 23:44:41.448822"]]
26094
+  (1.8ms) commit transaction
26095
+ Completed 200 OK in 66ms (Views: 0.6ms | ActiveRecord: 2.3ms)