mori 0.0.1 → 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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +51 -1
  4. data/Rakefile +1 -0
  5. data/app/controllers/mori/base_controller.rb +3 -0
  6. data/app/controllers/mori/invites_controller.rb +37 -0
  7. data/app/controllers/mori/passwords_controller.rb +59 -0
  8. data/app/controllers/mori/registrations_controller.rb +32 -7
  9. data/app/controllers/mori/sessions_controller.rb +10 -6
  10. data/app/helpers/mori_helper.rb +1 -1
  11. data/app/mailers/mori_mailer.rb +18 -0
  12. data/app/views/invites/new.html.erb +1 -0
  13. data/app/views/invites/show.html.erb +1 -0
  14. data/app/views/layouts/mori/application.html.erb +7 -1
  15. data/app/views/layouts/mori/form.html.erb +15 -0
  16. data/app/views/mori_forms/_accept_invite.html.erb +16 -0
  17. data/app/views/mori_forms/_change_password.html.erb +22 -0
  18. data/app/views/mori_forms/_forgot_password.html.erb +14 -0
  19. data/app/views/mori_forms/_invite_new_user_form.html.erb +14 -0
  20. data/app/views/mori_forms/_password_reset.html.erb +20 -0
  21. data/app/views/mori_forms/_registration.html.erb +22 -0
  22. data/app/views/mori_forms/_sessions.html.erb +18 -0
  23. data/app/views/mori_mailer/confirm_email.html.erb +4 -0
  24. data/app/views/mori_mailer/forgot_password.html.erb +7 -0
  25. data/app/views/mori_mailer/invite_user.html.erb +5 -0
  26. data/app/views/passwords/change.html.erb +1 -0
  27. data/app/views/passwords/forgot.html.erb +2 -0
  28. data/app/views/passwords/reset.html.erb +1 -0
  29. data/app/views/passwords/send_reset.html.erb +1 -0
  30. data/app/views/registrations/new.html.erb +2 -0
  31. data/app/views/sessions/new.html.erb +2 -0
  32. data/app/views/shared/_links.html.erb +11 -0
  33. data/config/database.travis.yml +3 -25
  34. data/config/initializers/warden.rb +5 -5
  35. data/config/locales/mori.en.yml +20 -16
  36. data/config/routes.rb +22 -2
  37. data/db/migrate/20140128055658_create_users.rb +29 -0
  38. data/lib/assets/javascripts/bootstrap.min.js +6 -0
  39. data/lib/assets/stylesheets/bootstrap.min.css +7 -0
  40. data/lib/generators/mori/install/install_generator.rb +130 -0
  41. data/lib/generators/mori/install/templates/db/migrate/add_mori_to_users.rb +23 -0
  42. data/{db/migrate/20140128055658_create_mori_users.rb → lib/generators/mori/install/templates/db/migrate/create_users.rb} +6 -9
  43. data/lib/generators/mori/install/templates/mori.rb +32 -0
  44. data/lib/generators/mori/install/templates/user.rb +3 -0
  45. data/lib/generators/mori/views/USAGE +12 -0
  46. data/lib/generators/mori/views/views_generator.rb +39 -0
  47. data/lib/mori/configuration.rb +17 -10
  48. data/lib/mori/controller.rb +25 -0
  49. data/lib/mori/engine.rb +2 -6
  50. data/lib/mori/password.rb +21 -0
  51. data/lib/mori/token.rb +3 -12
  52. data/lib/mori/user.rb +124 -0
  53. data/lib/mori/version.rb +1 -1
  54. data/lib/mori.rb +3 -3
  55. data/spec/dummy/app/assets/javascripts/application.js +2 -0
  56. data/spec/dummy/app/controllers/application_controller.rb +1 -0
  57. data/spec/dummy/app/models/user.rb +4 -0
  58. data/spec/dummy/app/views/application/index.html.erb +13 -0
  59. data/spec/dummy/app/views/application/test_login.html.erb +1 -0
  60. data/spec/dummy/app/views/layouts/application.html.erb +2 -2
  61. data/spec/dummy/config/application.rb +9 -7
  62. data/spec/dummy/config/database.yml +6 -24
  63. data/spec/dummy/config/environments/production.rb +2 -2
  64. data/spec/dummy/config/environments/test.rb +3 -3
  65. data/spec/dummy/config/initializers/mime_types.rb +2 -2
  66. data/spec/dummy/config/initializers/mori.rb +12 -1
  67. data/spec/dummy/config/initializers/secret_token.rb +6 -1
  68. data/spec/dummy/config/locales/en.yml +1 -1
  69. data/spec/dummy/config/routes.rb +2 -1
  70. data/spec/dummy/db/development.sqlite3 +0 -0
  71. data/spec/dummy/db/migrate/{20140209071716_create_users.mori_engine.rb → 20140421045106_create_users.mori_engine.rb} +2 -6
  72. data/spec/dummy/db/schema.rb +14 -21
  73. data/spec/dummy/db/test.sqlite3 +0 -0
  74. data/spec/dummy/log/development.log +14442 -21478
  75. data/spec/dummy/log/test.log +128933 -76950
  76. data/spec/dummy/public/404.html +1 -1
  77. data/spec/dummy/public/422.html +1 -1
  78. data/spec/dummy/public/500.html +1 -1
  79. data/spec/dummy/tmp/cache/assets/development/sprockets/07db4022ed50ebf1535599a3e2344037 +0 -0
  80. data/spec/dummy/tmp/cache/assets/development/sprockets/09f817f5fe8888d5c59a3b285c3ef605 +0 -0
  81. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  82. data/spec/dummy/tmp/cache/assets/development/sprockets/19f899de0e04ccfd931a7a11e36aca13 +0 -0
  83. data/spec/dummy/tmp/cache/assets/development/sprockets/1b98ef3337306536c2890a74951d225c +0 -0
  84. data/spec/dummy/tmp/cache/assets/development/sprockets/2000a2ad47f8e201455b785beb7b1384 +0 -0
  85. data/spec/dummy/tmp/cache/assets/development/sprockets/22de1150643c428d3f508171d74347a3 +0 -0
  86. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  87. data/spec/dummy/tmp/cache/assets/development/sprockets/3453364cd811fec54cae0a92adc719e4 +0 -0
  88. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  89. data/spec/dummy/tmp/cache/assets/development/sprockets/4462cfec451130aa58d88b3da13913c3 +0 -0
  90. data/spec/dummy/tmp/cache/assets/development/sprockets/45753608d28d02693f8f6277074589a1 +0 -0
  91. data/spec/dummy/tmp/cache/assets/development/sprockets/56b349da612a4be9d5e6733778ce17e4 +0 -0
  92. data/spec/dummy/tmp/cache/assets/development/sprockets/5b3ef4ce70e1da7b1afd392754613726 +0 -0
  93. data/spec/dummy/tmp/cache/assets/development/sprockets/770ff8b64985dd08cab8c32a1fa76438 +0 -0
  94. data/spec/dummy/tmp/cache/assets/development/sprockets/8e4cef792c949716da8fe3e9ee0cda70 +0 -0
  95. data/spec/dummy/tmp/cache/assets/development/sprockets/a6374c002de146da5c25b8cfd375ce6c +0 -0
  96. data/spec/dummy/tmp/cache/assets/development/sprockets/b085c718dd9381a5d4036f00b47d1b91 +0 -0
  97. data/spec/dummy/tmp/cache/assets/development/sprockets/c207a30f2b33f7df2c5336aed05485a2 +0 -0
  98. data/spec/dummy/tmp/cache/assets/development/sprockets/cf4d7483cd5aff334d69dd3173f9b953 +0 -0
  99. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  100. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  101. data/spec/dummy/tmp/cache/assets/development/sprockets/e2b0bfc208732a6cf47d67c1be32e54f +0 -0
  102. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  103. data/spec/dummy/tmp/cache/assets/test/sprockets/07db4022ed50ebf1535599a3e2344037 +0 -0
  104. data/spec/dummy/tmp/cache/assets/test/sprockets/09f817f5fe8888d5c59a3b285c3ef605 +0 -0
  105. data/spec/dummy/tmp/cache/assets/test/sprockets/1143c7a241c19613744d1a2be3ad7cd1 +0 -0
  106. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  107. data/spec/dummy/tmp/cache/assets/test/sprockets/19f899de0e04ccfd931a7a11e36aca13 +0 -0
  108. data/spec/dummy/tmp/cache/assets/test/sprockets/1b98ef3337306536c2890a74951d225c +0 -0
  109. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  110. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  111. data/spec/dummy/tmp/cache/assets/test/sprockets/39cd89cab4906d24583c876a477cf098 +0 -0
  112. data/spec/dummy/tmp/cache/assets/test/sprockets/4462cfec451130aa58d88b3da13913c3 +0 -0
  113. data/spec/dummy/tmp/cache/assets/test/sprockets/45753608d28d02693f8f6277074589a1 +0 -0
  114. data/spec/dummy/tmp/cache/assets/test/sprockets/56b349da612a4be9d5e6733778ce17e4 +0 -0
  115. data/spec/dummy/tmp/cache/assets/test/sprockets/5b3ef4ce70e1da7b1afd392754613726 +0 -0
  116. data/spec/dummy/tmp/cache/assets/test/sprockets/770ff8b64985dd08cab8c32a1fa76438 +0 -0
  117. data/spec/dummy/tmp/cache/assets/test/sprockets/8e4cef792c949716da8fe3e9ee0cda70 +0 -0
  118. data/spec/dummy/tmp/cache/assets/test/sprockets/9d5b4060cdb29606bd153ef2ca742a22 +0 -0
  119. data/spec/dummy/tmp/cache/assets/test/sprockets/a6374c002de146da5c25b8cfd375ce6c +0 -0
  120. data/spec/dummy/tmp/cache/assets/test/sprockets/b085c718dd9381a5d4036f00b47d1b91 +0 -0
  121. data/spec/dummy/tmp/cache/assets/test/sprockets/c1fb58de0c271425746c77af9e101750 +0 -0
  122. data/spec/dummy/tmp/cache/assets/test/sprockets/c207a30f2b33f7df2c5336aed05485a2 +0 -0
  123. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  124. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  125. data/spec/dummy/tmp/cache/assets/test/sprockets/e2b0bfc208732a6cf47d67c1be32e54f +0 -0
  126. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  127. data/spec/factories/mori_users.rb +8 -8
  128. data/spec/features/invites_spec.rb +64 -0
  129. data/spec/features/passwords_spec.rb +101 -0
  130. data/spec/features/registrations_spec.rb +37 -10
  131. data/spec/features/sessions_spec.rb +24 -28
  132. data/spec/helpers/mori_helper_spec.rb +3 -12
  133. data/spec/helpers.rb +10 -0
  134. data/spec/mailers/mori/mailer_spec.rb +24 -4
  135. data/spec/models/mori/user_spec.rb +187 -167
  136. data/spec/spec_helper.rb +17 -6
  137. metadata +108 -53
  138. data/app/assets/javascripts/mori/application.js +0 -13
  139. data/app/assets/stylesheets/mori/application.css +0 -13
  140. data/app/controllers/mori_controller.rb +0 -8
  141. data/app/mailers/mori/mailer.rb +0 -17
  142. data/app/models/mori/user.rb +0 -85
  143. data/app/views/mori/mailer/confirm_email.html.erb +0 -1
  144. data/app/views/mori/mailer/invite_user.html.erb +0 -1
  145. data/app/views/mori/mailer/password_reset_notification.html.erb +0 -1
  146. data/app/views/mori/registrations/new.slim +0 -9
  147. data/app/views/mori/sessions/new.slim +0 -8
  148. data/db/migrate/20140126052000_enable_hstore.rb +0 -9
  149. data/lib/mori/string.rb +0 -20
  150. data/spec/dummy/app/views/application/index.slim +0 -2
  151. data/spec/dummy/db/migrate/20140128055553_enable_hstore.mori.rb +0 -10
  152. data/spec/dummy/log/user.log +0 -43
  153. data/spec/dummy/tmp/pids/server.pid +0 -1
  154. data/spec/mailer_matcher.rb +0 -33
  155. data/spec/views/mori/registrations/create.html.erb_spec.rb +0 -5
  156. data/spec/views/mori/registrations/new.html.erb_spec.rb +0 -5
  157. data/spec/views/mori/sessions/create.html.erb_spec.rb +0 -5
  158. data/spec/views/mori/sessions/destroy.html.erb_spec.rb +0 -5
  159. data/spec/views/mori/sessions/new.html.erb_spec.rb +0 -5
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mori
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Miler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-22 00:00:00.000000000 Z
11
+ date: 2014-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt-ruby
@@ -53,21 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: slim
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rails
56
+ name: railties
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - '>='
@@ -80,38 +66,63 @@ dependencies:
80
66
  - - '>='
81
67
  - !ruby/object:Gem::Version
82
68
  version: 3.2.0
83
- description: Mori is a user authentication platform
69
+ description: Mori is a lightweight module based authentication platform. Mori uses
70
+ Warden for session management, and is intended to be easy to overwrite, and configurable.
84
71
  email:
85
72
  - aaron@pineworks.io
86
73
  executables: []
87
74
  extensions: []
88
75
  extra_rdoc_files: []
89
76
  files:
90
- - app/assets/javascripts/mori/application.js
91
- - app/assets/stylesheets/mori/application.css
77
+ - app/controllers/mori/base_controller.rb
78
+ - app/controllers/mori/invites_controller.rb
79
+ - app/controllers/mori/passwords_controller.rb
92
80
  - app/controllers/mori/registrations_controller.rb
93
81
  - app/controllers/mori/sessions_controller.rb
94
- - app/controllers/mori_controller.rb
95
82
  - app/helpers/mori_helper.rb
96
- - app/mailers/mori/mailer.rb
97
- - app/models/mori/user.rb
83
+ - app/mailers/mori_mailer.rb
84
+ - app/views/invites/new.html.erb
85
+ - app/views/invites/show.html.erb
98
86
  - app/views/layouts/mori/application.html.erb
99
- - app/views/mori/mailer/confirm_email.html.erb
100
- - app/views/mori/mailer/invite_user.html.erb
101
- - app/views/mori/mailer/password_reset_notification.html.erb
102
- - app/views/mori/registrations/new.slim
103
- - app/views/mori/sessions/new.slim
87
+ - app/views/layouts/mori/form.html.erb
88
+ - app/views/mori_forms/_accept_invite.html.erb
89
+ - app/views/mori_forms/_change_password.html.erb
90
+ - app/views/mori_forms/_forgot_password.html.erb
91
+ - app/views/mori_forms/_invite_new_user_form.html.erb
92
+ - app/views/mori_forms/_password_reset.html.erb
93
+ - app/views/mori_forms/_registration.html.erb
94
+ - app/views/mori_forms/_sessions.html.erb
95
+ - app/views/mori_mailer/confirm_email.html.erb
96
+ - app/views/mori_mailer/forgot_password.html.erb
97
+ - app/views/mori_mailer/invite_user.html.erb
98
+ - app/views/passwords/change.html.erb
99
+ - app/views/passwords/forgot.html.erb
100
+ - app/views/passwords/reset.html.erb
101
+ - app/views/passwords/send_reset.html.erb
102
+ - app/views/registrations/new.html.erb
103
+ - app/views/sessions/new.html.erb
104
+ - app/views/shared/_links.html.erb
104
105
  - config/database.travis.yml
105
106
  - config/initializers/warden.rb
106
107
  - config/locales/mori.en.yml
107
108
  - config/mori.en.yml
108
109
  - config/routes.rb
109
- - db/migrate/20140126052000_enable_hstore.rb
110
- - db/migrate/20140128055658_create_mori_users.rb
110
+ - db/migrate/20140128055658_create_users.rb
111
+ - lib/assets/javascripts/bootstrap.min.js
112
+ - lib/assets/stylesheets/bootstrap.min.css
113
+ - lib/generators/mori/install/install_generator.rb
114
+ - lib/generators/mori/install/templates/db/migrate/add_mori_to_users.rb
115
+ - lib/generators/mori/install/templates/db/migrate/create_users.rb
116
+ - lib/generators/mori/install/templates/mori.rb
117
+ - lib/generators/mori/install/templates/user.rb
118
+ - lib/generators/mori/views/USAGE
119
+ - lib/generators/mori/views/views_generator.rb
111
120
  - lib/mori/configuration.rb
121
+ - lib/mori/controller.rb
112
122
  - lib/mori/engine.rb
113
- - lib/mori/string.rb
123
+ - lib/mori/password.rb
114
124
  - lib/mori/token.rb
125
+ - lib/mori/user.rb
115
126
  - lib/mori/version.rb
116
127
  - lib/mori.rb
117
128
  - lib/tasks/mori_tasks.rake
@@ -122,7 +133,9 @@ files:
122
133
  - spec/dummy/app/assets/stylesheets/application.css
123
134
  - spec/dummy/app/controllers/application_controller.rb
124
135
  - spec/dummy/app/helpers/application_helper.rb
125
- - spec/dummy/app/views/application/index.slim
136
+ - spec/dummy/app/models/user.rb
137
+ - spec/dummy/app/views/application/index.html.erb
138
+ - spec/dummy/app/views/application/test_login.html.erb
126
139
  - spec/dummy/app/views/layouts/application.html.erb
127
140
  - spec/dummy/bin/bundle
128
141
  - spec/dummy/bin/rails
@@ -145,12 +158,12 @@ files:
145
158
  - spec/dummy/config/locales/en.yml
146
159
  - spec/dummy/config/routes.rb
147
160
  - spec/dummy/config.ru
148
- - spec/dummy/db/migrate/20140128055553_enable_hstore.mori.rb
149
- - spec/dummy/db/migrate/20140209071716_create_users.mori_engine.rb
161
+ - spec/dummy/db/development.sqlite3
162
+ - spec/dummy/db/migrate/20140421045106_create_users.mori_engine.rb
150
163
  - spec/dummy/db/schema.rb
164
+ - spec/dummy/db/test.sqlite3
151
165
  - spec/dummy/log/development.log
152
166
  - spec/dummy/log/test.log
153
- - spec/dummy/log/user.log
154
167
  - spec/dummy/public/404.html
155
168
  - spec/dummy/public/422.html
156
169
  - spec/dummy/public/500.html
@@ -158,43 +171,63 @@ files:
158
171
  - spec/dummy/Rakefile
159
172
  - spec/dummy/README.rdoc
160
173
  - spec/dummy/tmp/cache/assets/development/sprockets/07db4022ed50ebf1535599a3e2344037
174
+ - spec/dummy/tmp/cache/assets/development/sprockets/09f817f5fe8888d5c59a3b285c3ef605
161
175
  - spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
162
176
  - spec/dummy/tmp/cache/assets/development/sprockets/19f899de0e04ccfd931a7a11e36aca13
163
177
  - spec/dummy/tmp/cache/assets/development/sprockets/1b98ef3337306536c2890a74951d225c
178
+ - spec/dummy/tmp/cache/assets/development/sprockets/2000a2ad47f8e201455b785beb7b1384
179
+ - spec/dummy/tmp/cache/assets/development/sprockets/22de1150643c428d3f508171d74347a3
164
180
  - spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
181
+ - spec/dummy/tmp/cache/assets/development/sprockets/3453364cd811fec54cae0a92adc719e4
165
182
  - spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
183
+ - spec/dummy/tmp/cache/assets/development/sprockets/4462cfec451130aa58d88b3da13913c3
184
+ - spec/dummy/tmp/cache/assets/development/sprockets/45753608d28d02693f8f6277074589a1
166
185
  - spec/dummy/tmp/cache/assets/development/sprockets/56b349da612a4be9d5e6733778ce17e4
167
186
  - spec/dummy/tmp/cache/assets/development/sprockets/5b3ef4ce70e1da7b1afd392754613726
187
+ - spec/dummy/tmp/cache/assets/development/sprockets/770ff8b64985dd08cab8c32a1fa76438
188
+ - spec/dummy/tmp/cache/assets/development/sprockets/8e4cef792c949716da8fe3e9ee0cda70
168
189
  - spec/dummy/tmp/cache/assets/development/sprockets/a6374c002de146da5c25b8cfd375ce6c
190
+ - spec/dummy/tmp/cache/assets/development/sprockets/b085c718dd9381a5d4036f00b47d1b91
191
+ - spec/dummy/tmp/cache/assets/development/sprockets/c207a30f2b33f7df2c5336aed05485a2
192
+ - spec/dummy/tmp/cache/assets/development/sprockets/cf4d7483cd5aff334d69dd3173f9b953
169
193
  - spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
170
194
  - spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
195
+ - spec/dummy/tmp/cache/assets/development/sprockets/e2b0bfc208732a6cf47d67c1be32e54f
171
196
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
172
197
  - spec/dummy/tmp/cache/assets/test/sprockets/07db4022ed50ebf1535599a3e2344037
198
+ - spec/dummy/tmp/cache/assets/test/sprockets/09f817f5fe8888d5c59a3b285c3ef605
199
+ - spec/dummy/tmp/cache/assets/test/sprockets/1143c7a241c19613744d1a2be3ad7cd1
173
200
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
174
201
  - spec/dummy/tmp/cache/assets/test/sprockets/19f899de0e04ccfd931a7a11e36aca13
175
202
  - spec/dummy/tmp/cache/assets/test/sprockets/1b98ef3337306536c2890a74951d225c
176
203
  - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
177
204
  - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
205
+ - spec/dummy/tmp/cache/assets/test/sprockets/39cd89cab4906d24583c876a477cf098
206
+ - spec/dummy/tmp/cache/assets/test/sprockets/4462cfec451130aa58d88b3da13913c3
207
+ - spec/dummy/tmp/cache/assets/test/sprockets/45753608d28d02693f8f6277074589a1
178
208
  - spec/dummy/tmp/cache/assets/test/sprockets/56b349da612a4be9d5e6733778ce17e4
179
209
  - spec/dummy/tmp/cache/assets/test/sprockets/5b3ef4ce70e1da7b1afd392754613726
210
+ - spec/dummy/tmp/cache/assets/test/sprockets/770ff8b64985dd08cab8c32a1fa76438
211
+ - spec/dummy/tmp/cache/assets/test/sprockets/8e4cef792c949716da8fe3e9ee0cda70
212
+ - spec/dummy/tmp/cache/assets/test/sprockets/9d5b4060cdb29606bd153ef2ca742a22
180
213
  - spec/dummy/tmp/cache/assets/test/sprockets/a6374c002de146da5c25b8cfd375ce6c
214
+ - spec/dummy/tmp/cache/assets/test/sprockets/b085c718dd9381a5d4036f00b47d1b91
215
+ - spec/dummy/tmp/cache/assets/test/sprockets/c1fb58de0c271425746c77af9e101750
216
+ - spec/dummy/tmp/cache/assets/test/sprockets/c207a30f2b33f7df2c5336aed05485a2
181
217
  - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
182
218
  - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
219
+ - spec/dummy/tmp/cache/assets/test/sprockets/e2b0bfc208732a6cf47d67c1be32e54f
183
220
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
184
- - spec/dummy/tmp/pids/server.pid
185
221
  - spec/factories/mori_users.rb
222
+ - spec/features/invites_spec.rb
223
+ - spec/features/passwords_spec.rb
186
224
  - spec/features/registrations_spec.rb
187
225
  - spec/features/sessions_spec.rb
188
226
  - spec/helpers/mori_helper_spec.rb
189
- - spec/mailer_matcher.rb
227
+ - spec/helpers.rb
190
228
  - spec/mailers/mori/mailer_spec.rb
191
229
  - spec/models/mori/user_spec.rb
192
230
  - spec/spec_helper.rb
193
- - spec/views/mori/registrations/create.html.erb_spec.rb
194
- - spec/views/mori/registrations/new.html.erb_spec.rb
195
- - spec/views/mori/sessions/create.html.erb_spec.rb
196
- - spec/views/mori/sessions/destroy.html.erb_spec.rb
197
- - spec/views/mori/sessions/new.html.erb_spec.rb
198
231
  homepage: http://github.com/pineworks/mori
199
232
  licenses: []
200
233
  metadata: {}
@@ -223,7 +256,9 @@ test_files:
223
256
  - spec/dummy/app/assets/stylesheets/application.css
224
257
  - spec/dummy/app/controllers/application_controller.rb
225
258
  - spec/dummy/app/helpers/application_helper.rb
226
- - spec/dummy/app/views/application/index.slim
259
+ - spec/dummy/app/models/user.rb
260
+ - spec/dummy/app/views/application/index.html.erb
261
+ - spec/dummy/app/views/application/test_login.html.erb
227
262
  - spec/dummy/app/views/layouts/application.html.erb
228
263
  - spec/dummy/bin/bundle
229
264
  - spec/dummy/bin/rails
@@ -246,12 +281,12 @@ test_files:
246
281
  - spec/dummy/config/locales/en.yml
247
282
  - spec/dummy/config/routes.rb
248
283
  - spec/dummy/config.ru
249
- - spec/dummy/db/migrate/20140128055553_enable_hstore.mori.rb
250
- - spec/dummy/db/migrate/20140209071716_create_users.mori_engine.rb
284
+ - spec/dummy/db/development.sqlite3
285
+ - spec/dummy/db/migrate/20140421045106_create_users.mori_engine.rb
251
286
  - spec/dummy/db/schema.rb
287
+ - spec/dummy/db/test.sqlite3
252
288
  - spec/dummy/log/development.log
253
289
  - spec/dummy/log/test.log
254
- - spec/dummy/log/user.log
255
290
  - spec/dummy/public/404.html
256
291
  - spec/dummy/public/422.html
257
292
  - spec/dummy/public/500.html
@@ -259,40 +294,60 @@ test_files:
259
294
  - spec/dummy/Rakefile
260
295
  - spec/dummy/README.rdoc
261
296
  - spec/dummy/tmp/cache/assets/development/sprockets/07db4022ed50ebf1535599a3e2344037
297
+ - spec/dummy/tmp/cache/assets/development/sprockets/09f817f5fe8888d5c59a3b285c3ef605
262
298
  - spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705
263
299
  - spec/dummy/tmp/cache/assets/development/sprockets/19f899de0e04ccfd931a7a11e36aca13
264
300
  - spec/dummy/tmp/cache/assets/development/sprockets/1b98ef3337306536c2890a74951d225c
301
+ - spec/dummy/tmp/cache/assets/development/sprockets/2000a2ad47f8e201455b785beb7b1384
302
+ - spec/dummy/tmp/cache/assets/development/sprockets/22de1150643c428d3f508171d74347a3
265
303
  - spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af
304
+ - spec/dummy/tmp/cache/assets/development/sprockets/3453364cd811fec54cae0a92adc719e4
266
305
  - spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953
306
+ - spec/dummy/tmp/cache/assets/development/sprockets/4462cfec451130aa58d88b3da13913c3
307
+ - spec/dummy/tmp/cache/assets/development/sprockets/45753608d28d02693f8f6277074589a1
267
308
  - spec/dummy/tmp/cache/assets/development/sprockets/56b349da612a4be9d5e6733778ce17e4
268
309
  - spec/dummy/tmp/cache/assets/development/sprockets/5b3ef4ce70e1da7b1afd392754613726
310
+ - spec/dummy/tmp/cache/assets/development/sprockets/770ff8b64985dd08cab8c32a1fa76438
311
+ - spec/dummy/tmp/cache/assets/development/sprockets/8e4cef792c949716da8fe3e9ee0cda70
269
312
  - spec/dummy/tmp/cache/assets/development/sprockets/a6374c002de146da5c25b8cfd375ce6c
313
+ - spec/dummy/tmp/cache/assets/development/sprockets/b085c718dd9381a5d4036f00b47d1b91
314
+ - spec/dummy/tmp/cache/assets/development/sprockets/c207a30f2b33f7df2c5336aed05485a2
315
+ - spec/dummy/tmp/cache/assets/development/sprockets/cf4d7483cd5aff334d69dd3173f9b953
270
316
  - spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994
271
317
  - spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6
318
+ - spec/dummy/tmp/cache/assets/development/sprockets/e2b0bfc208732a6cf47d67c1be32e54f
272
319
  - spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655
273
320
  - spec/dummy/tmp/cache/assets/test/sprockets/07db4022ed50ebf1535599a3e2344037
321
+ - spec/dummy/tmp/cache/assets/test/sprockets/09f817f5fe8888d5c59a3b285c3ef605
322
+ - spec/dummy/tmp/cache/assets/test/sprockets/1143c7a241c19613744d1a2be3ad7cd1
274
323
  - spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
275
324
  - spec/dummy/tmp/cache/assets/test/sprockets/19f899de0e04ccfd931a7a11e36aca13
276
325
  - spec/dummy/tmp/cache/assets/test/sprockets/1b98ef3337306536c2890a74951d225c
277
326
  - spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
278
327
  - spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
328
+ - spec/dummy/tmp/cache/assets/test/sprockets/39cd89cab4906d24583c876a477cf098
329
+ - spec/dummy/tmp/cache/assets/test/sprockets/4462cfec451130aa58d88b3da13913c3
330
+ - spec/dummy/tmp/cache/assets/test/sprockets/45753608d28d02693f8f6277074589a1
279
331
  - spec/dummy/tmp/cache/assets/test/sprockets/56b349da612a4be9d5e6733778ce17e4
280
332
  - spec/dummy/tmp/cache/assets/test/sprockets/5b3ef4ce70e1da7b1afd392754613726
333
+ - spec/dummy/tmp/cache/assets/test/sprockets/770ff8b64985dd08cab8c32a1fa76438
334
+ - spec/dummy/tmp/cache/assets/test/sprockets/8e4cef792c949716da8fe3e9ee0cda70
335
+ - spec/dummy/tmp/cache/assets/test/sprockets/9d5b4060cdb29606bd153ef2ca742a22
281
336
  - spec/dummy/tmp/cache/assets/test/sprockets/a6374c002de146da5c25b8cfd375ce6c
337
+ - spec/dummy/tmp/cache/assets/test/sprockets/b085c718dd9381a5d4036f00b47d1b91
338
+ - spec/dummy/tmp/cache/assets/test/sprockets/c1fb58de0c271425746c77af9e101750
339
+ - spec/dummy/tmp/cache/assets/test/sprockets/c207a30f2b33f7df2c5336aed05485a2
282
340
  - spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
283
341
  - spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
342
+ - spec/dummy/tmp/cache/assets/test/sprockets/e2b0bfc208732a6cf47d67c1be32e54f
284
343
  - spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
285
- - spec/dummy/tmp/pids/server.pid
286
344
  - spec/factories/mori_users.rb
345
+ - spec/features/invites_spec.rb
346
+ - spec/features/passwords_spec.rb
287
347
  - spec/features/registrations_spec.rb
288
348
  - spec/features/sessions_spec.rb
289
349
  - spec/helpers/mori_helper_spec.rb
290
- - spec/mailer_matcher.rb
350
+ - spec/helpers.rb
291
351
  - spec/mailers/mori/mailer_spec.rb
292
352
  - spec/models/mori/user_spec.rb
293
353
  - spec/spec_helper.rb
294
- - spec/views/mori/registrations/create.html.erb_spec.rb
295
- - spec/views/mori/registrations/new.html.erb_spec.rb
296
- - spec/views/mori/sessions/create.html.erb_spec.rb
297
- - spec/views/mori/sessions/destroy.html.erb_spec.rb
298
- - spec/views/mori/sessions/new.html.erb_spec.rb
@@ -1,13 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file.
9
- //
10
- // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require_tree .
@@ -1,13 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the top of the
9
- * compiled file, but it's generally better to create a new file per style scope.
10
- *
11
- *= require_self
12
- *= require_tree .
13
- */
@@ -1,8 +0,0 @@
1
- class MoriController < ApplicationController
2
- def current_user
3
- warden.user
4
- end
5
- def warden
6
- env['warden']
7
- end
8
- end
@@ -1,17 +0,0 @@
1
- module Mori
2
- class Mailer < ActionMailer::Base
3
- default from: Mori.configuration.from_email
4
-
5
- def password_reset_notification(user)
6
- @user = user
7
- mail(to: user.email, subject: "Your password on #{Mori.configuration.application_name} has been reset")
8
- end
9
- def invite_user(user)
10
- @user = user
11
- mail(to: user.email, subject: "You've been invited to #{Mori.configuration.application_name}")
12
- end
13
- def confirm_email(user)
14
- @user = user
15
- end
16
- end
17
- end
@@ -1,85 +0,0 @@
1
- require 'email_validator'
2
-
3
- module Mori
4
- include BCrypt
5
- class User < ActiveRecord::Base
6
- include Mori::Token
7
-
8
- if Mori.configuration.account_database
9
- establish_connection Mori.configuration.account_database
10
- end
11
-
12
- validates :email, email: { strict_mode: true }, presence: true, uniqueness: true
13
- validates :password, presence: true, unless: :invitation_token?
14
- validates :password_reset_token, uniqueness: true, if: :password_reset_token?
15
- validates :invitation_token, uniqueness: true, if: :invitation_token?
16
-
17
- before_save :encrypt_password, :if => Proc.new { |user| user.password_changed? }
18
- before_validation :normalize_email, :if => Proc.new{ |user| user.email_changed? }
19
- before_create :send_email_confirmation, :if => Proc.new { |user| user.password.present? }
20
-
21
- # Methods called by ActiveRecord
22
-
23
- def encrypt_password
24
- self.password = self.password.encrypt
25
- end
26
- def normalize_email
27
- self.email = self.email.normalize
28
- end
29
- def send_email_confirmation
30
- self.confirmation_token = SecureRandom.hex(25)
31
- self.confirmation_sent = Date.today
32
- Mailer.confirm_email(self)
33
- end
34
-
35
- def accept_invitation(token,new_password)
36
- user = User.find_by_invitation_token(token)
37
- raise 'Expired Invitation Token' if user.invitation_sent < Date.today - 2.weeks
38
- user.password = new_password
39
- user.save
40
- user
41
- end
42
- def reset_password(token,new_password)
43
- raise 'Invalid Password Reset Token' unless token == self.password_reset_token
44
- raise 'Expired Reset Token' if self.password_reset_sent < Date.today - 2.weeks
45
- self.password = new_password
46
- self.save
47
- self
48
- end
49
-
50
- def self.invite(email)
51
- user = User.create({:email => email, :invitation_token => generate_token, :invitation_sent => Date.today})
52
- Mailer.invite_user(user)
53
- end
54
- def self.forgot_password(email)
55
- user = User.find_by_email(email)
56
- user.password_reset_token = generate_token
57
- user.password_reset_sent = Date.today
58
- Mailer.password_reset_notification(user)
59
- user.save
60
- end
61
- def self.change_password(email, password, new_password)
62
- user = User.find_by_normalized_email(email.normalize)
63
- raise "Passwords do not match" if ::BCrypt::Password.new(user.password) != password
64
- user.password = new_password
65
- user.save
66
- user
67
- end
68
- def self.confirm_email(email, token)
69
- user = User.find_by_confirmation_token(token)
70
- raise 'Invalid Confirmation Token' if user.blank?
71
- raise 'Expired Confirmation Token' if user.confirmation_sent < Date.today - 2.weeks
72
- user.confirmed = true
73
- user.save
74
- user
75
- end
76
- def authenticate(password)
77
- raise 'Invalid Login' if ::BCrypt::Password.new(self.password) != password
78
- true
79
- end
80
- protected
81
- def self.find_by_normalized_email(email)
82
- User.find_by_email(email.normalize)
83
- end
84
- end
85
- end
@@ -1 +0,0 @@
1
- h1 Hilo
@@ -1 +0,0 @@
1
- <h1> I'm the invitation email </h1>
@@ -1 +0,0 @@
1
- I am email!
@@ -1,9 +0,0 @@
1
- h1 New User
2
- = form_for @user, :url => '/registrations', :method => :post do |f|
3
- div.container
4
- = f.label :email
5
- = f.email_field :email
6
- div.container
7
- = f.label :password
8
- = f.password_field :password
9
- = f.submit
@@ -1,8 +0,0 @@
1
- = form_for @user, :url => sessions_path, :method => :post, :html => { :id => "new_session"} do |f|
2
- =f.label :email
3
- =f.text_field :email
4
-
5
- =f.label :password
6
- =f.password_field :password
7
-
8
- =f.submit "Log In", :id => "submit_button"
@@ -1,9 +0,0 @@
1
- class EnableHstore < ActiveRecord::Migration
2
- def self.up
3
- execute 'CREATE EXTENSION hstore'
4
- end
5
-
6
- def self.down
7
- execute 'DROP EXTENSION hstore'
8
- end
9
- end
data/lib/mori/string.rb DELETED
@@ -1,20 +0,0 @@
1
- require 'bcrypt'
2
-
3
- class String
4
- include BCrypt
5
-
6
- def encrypt
7
- Password.create(self, :cost => cost)
8
- end
9
- def normalize
10
- self.remove_whitespace.downcase
11
- end
12
- def remove_whitespace
13
- self.gsub(/\s+/, '')
14
- end
15
-
16
- private
17
- def cost
18
- ::BCrypt::Engine::DEFAULT_COST
19
- end
20
- end
@@ -1,2 +0,0 @@
1
- h1 Hello World
2
- = logout_link
@@ -1,10 +0,0 @@
1
- # This migration comes from mori (originally 20140126052000)
2
- class EnableHstore < ActiveRecord::Migration
3
- def self.up
4
- execute 'CREATE EXTENSION hstore'
5
- end
6
-
7
- def self.down
8
- execute 'DROP EXTENSION hstore'
9
- end
10
- end
@@ -1,43 +0,0 @@
1
-  (2.7ms) CREATE TABLE "schema_migrations" ("version" character varying(255) NOT NULL) 
2
-  (1.6ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
3
- ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
4
- Migrating to EnableHstore (20140128055553)
5
-  (0.1ms) BEGIN
6
-  (29.8ms) CREATE EXTENSION hstore
7
- SQL (0.7ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20140128055553"]]
8
-  (1.3ms) COMMIT
9
- Migrating to CreateMoriUsers (20140204044714)
10
-  (0.2ms) BEGIN
11
-  (5.0ms) CREATE TABLE "mori_users" ("id" serial primary key, "email" character varying(255), "password" text, "invitation_token" character varying(255), "invitation_sent" timestamp, "password_reset_token" character varying(255), "password_reset_sent" timestamp, "confirmed" boolean, "confirmation_token" character varying(255), "confirmation_sent" timestamp, "group_id" integer, "data" hstore DEFAULT '', "created_at" timestamp, "updated_at" timestamp) 
12
-  (1.1ms) CREATE INDEX "index_mori_users_on_email" ON "mori_users" ("email")
13
-  (0.9ms) CREATE INDEX "index_mori_users_on_group_id" ON "mori_users" ("group_id")
14
- SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20140204044714"]]
15
-  (0.5ms) COMMIT
16
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
17
- ActiveRecord::SchemaMigration Load (7.8ms) SELECT "schema_migrations".* FROM "schema_migrations"
18
- Migrating to CreateUsers (20140209071716)
19
-  (0.3ms) BEGIN
20
-  (9.1ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "password" text, "invitation_token" character varying(255), "invitation_sent" timestamp, "password_reset_token" character varying(255), "password_reset_sent" timestamp, "confirmed" boolean, "confirmation_token" character varying(255), "confirmation_sent" timestamp, "group_id" integer, "data" hstore DEFAULT '', "created_at" timestamp, "updated_at" timestamp) 
21
-  (1.3ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
22
-  (1.0ms) CREATE INDEX "index_users_on_group_id" ON "users" ("group_id")
23
- SQL (0.5ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20140209071716"]]
24
-  (0.8ms) COMMIT
25
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
26
- ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
27
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
28
-  (2.9ms) CREATE TABLE "schema_migrations" ("version" character varying(255) NOT NULL) 
29
-  (1.7ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
30
- ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
31
- Migrating to EnableHstore (20140128055553)
32
-  (0.1ms) BEGIN
33
-  (26.6ms) CREATE EXTENSION hstore
34
- SQL (0.9ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20140128055553"]]
35
-  (1.5ms) COMMIT
36
- Migrating to CreateUsers (20140209071716)
37
-  (0.3ms) BEGIN
38
-  (5.9ms) CREATE TABLE "users" ("id" serial primary key, "email" character varying(255), "password" text, "invitation_token" character varying(255), "invitation_sent" timestamp, "password_reset_token" character varying(255), "password_reset_sent" timestamp, "confirmed" boolean, "confirmation_token" character varying(255), "confirmation_sent" timestamp, "group_id" integer, "data" hstore DEFAULT '', "created_at" timestamp, "updated_at" timestamp) 
39
-  (1.2ms) CREATE INDEX "index_users_on_email" ON "users" ("email")
40
-  (0.8ms) CREATE INDEX "index_users_on_group_id" ON "users" ("group_id")
41
- SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20140209071716"]]
42
-  (0.4ms) COMMIT
43
- ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
@@ -1 +0,0 @@
1
- 48749
@@ -1,33 +0,0 @@
1
- # Usage
2
- # order = create(:order)
3
- #
4
- # expect {
5
- # order.pay!
6
- # }.to deliver_email(OrderMailer, :paid, order.id)
7
- #
8
- #
9
-
10
-
11
- RSpec::Matchers.define :deliver_email do |mailer, action, *args|
12
- match do |block|
13
- stubbed_mailer = double('mailer', deliver: true)
14
- mailer.stub(action => stubbed_mailer)
15
-
16
- block.call
17
-
18
- expect(mailer).to have_received(action).with(*args)
19
- expect(stubbed_mailer).to have_received(:deliver)
20
- end
21
-
22
- failure_message_for_should do |actual|
23
- "expected that block would deliver #{mailer}##{:action}"
24
- end
25
-
26
- failure_message_for_should_not do |actual|
27
- "expected that block would not deliver #{mailer}##{:action}"
28
- end
29
-
30
- description do
31
- "deliver #{mailer}##{:action}"
32
- end
33
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "registrations/create.html.erb" do
4
- pending "add some examples to (or delete) #{__FILE__}"
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "registrations/new.html.erb" do
4
- pending "add some examples to (or delete) #{__FILE__}"
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "sessions/create.html.erb" do
4
- pending "add some examples to (or delete) #{__FILE__}"
5
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "sessions/destroy.html.erb" do
4
- pending "add some examples to (or delete) #{__FILE__}"
5
- end