thoughtbot-clearance 0.6.5 → 0.6.6

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.
data/CHANGELOG.textile CHANGED
@@ -1,3 +1,8 @@
1
+ h2. 0.6.6 (5/18/2009)
2
+
3
+ * [#14] replaced class_eval in Clearance::User with modules. This was needed
4
+ in a thoughtbot client app so we could write our own validations. (Dan Croak)
5
+
1
6
  h2. 0.6.5 (5/17/2009)
2
7
 
3
8
  * [#6] Make Clearance i18n aware. (Timur Vafin, Marcel Goerner, Eugene Bolshakov, Dan Croak)
data/Rakefile CHANGED
@@ -51,7 +51,7 @@ task :default => ['test:all', 'test:features']
51
51
 
52
52
  gem_spec = Gem::Specification.new do |gem_spec|
53
53
  gem_spec.name = "clearance"
54
- gem_spec.version = "0.6.5"
54
+ gem_spec.version = "0.6.6"
55
55
  gem_spec.summary = "Rails authentication with email & password."
56
56
  gem_spec.email = "support@thoughtbot.com"
57
57
  gem_spec.homepage = "http://github.com/thoughtbot/clearance"
@@ -4,21 +4,49 @@ module Clearance
4
4
  module User
5
5
 
6
6
  def self.included(model)
7
- model.extend ClassMethods
7
+ model.extend(ClassMethods)
8
+
8
9
  model.send(:include, InstanceMethods)
10
+ model.send(:include, AttrAccessible)
11
+ model.send(:include, AttrAccessor)
12
+ model.send(:include, Validations)
13
+ model.send(:include, Callbacks)
14
+ end
9
15
 
10
- model.class_eval do
11
- attr_accessible :email, :password, :password_confirmation
12
- attr_accessor :password, :password_confirmation
16
+ module AttrAccessible
17
+ def self.included(model)
18
+ model.class_eval do
19
+ attr_accessible :email, :password, :password_confirmation
20
+ end
21
+ end
22
+ end
13
23
 
14
- validates_presence_of :email
15
- validates_uniqueness_of :email, :case_sensitive => false
16
- validates_format_of :email, :with => %r{.+@.+\..+}
24
+ module AttrAccessor
25
+ def self.included(model)
26
+ model.class_eval do
27
+ attr_accessor :password, :password_confirmation
28
+ end
29
+ end
30
+ end
31
+
32
+ module Validations
33
+ def self.included(model)
34
+ model.class_eval do
35
+ validates_presence_of :email
36
+ validates_uniqueness_of :email, :case_sensitive => false
37
+ validates_format_of :email, :with => %r{.+@.+\..+}
17
38
 
18
- validates_presence_of :password, :if => :password_required?
19
- validates_confirmation_of :password, :if => :password_required?
39
+ validates_presence_of :password, :if => :password_required?
40
+ validates_confirmation_of :password, :if => :password_required?
41
+ end
42
+ end
43
+ end
20
44
 
21
- before_save :initialize_salt, :encrypt_password, :initialize_token
45
+ module Callbacks
46
+ def self.included(model)
47
+ model.class_eval do
48
+ before_save :initialize_salt, :encrypt_password, :initialize_token
49
+ end
22
50
  end
23
51
  end
24
52
 
@@ -14,7 +14,7 @@ module Clearance
14
14
  end
15
15
 
16
16
  def should_be_signed_in_and_email_confirmed_as(&block)
17
- warn "[DEPRECATION] questionable usefulness"
17
+ warn "[DEPRECATION] should_be_signed_in_and_email_confirmed_as: questionable usefulness"
18
18
  should_be_signed_in_as &block
19
19
 
20
20
  should "have confirmed email" do
@@ -33,7 +33,7 @@ module Clearance
33
33
  end
34
34
 
35
35
  def should_deny_access_on(http_method, action, opts = {})
36
- warn "[DEPRECATION] use a setup & should_deny_access(:flash => ?)"
36
+ warn "[DEPRECATION] should_deny_access_on: use a setup & should_deny_access(:flash => ?)"
37
37
  flash_message = opts.delete(:flash)
38
38
  context "on #{http_method} to #{action}" do
39
39
  setup do
@@ -67,7 +67,7 @@ module Clearance
67
67
  # CONTEXTS
68
68
 
69
69
  def signed_in_user_context(&blk)
70
- warn "[DEPRECATION] creates a Mystery Guest, causes Obscure Test"
70
+ warn "[DEPRECATION] signed_in_user_context: creates a Mystery Guest, causes Obscure Test"
71
71
  context "A signed in user" do
72
72
  setup do
73
73
  @user = Factory(:user)
@@ -79,7 +79,7 @@ module Clearance
79
79
  end
80
80
 
81
81
  def public_context(&blk)
82
- warn "[DEPRECATION] common case is no-op. call sign_out otherwise"
82
+ warn "[DEPRECATION] public_context: common case is no-op. call sign_out otherwise"
83
83
  context "The public" do
84
84
  setup { sign_out }
85
85
  merge_block(&blk)
@@ -89,7 +89,7 @@ module Clearance
89
89
  # CREATING USERS
90
90
 
91
91
  def should_create_user_successfully
92
- warn "[DEPRECATION] not meant to be public, no longer used internally"
92
+ warn "[DEPRECATION] should_create_user_successfully: not meant to be public, no longer used internally"
93
93
  should_assign_to :user
94
94
  should_change 'User.count', :by => 1
95
95
 
@@ -134,7 +134,7 @@ module Clearance
134
134
  # VALIDATIONS
135
135
 
136
136
  def should_validate_confirmation_of(attribute, opts = {})
137
- warn "[DEPRECATION] not meant to be public, no longer used internally"
137
+ warn "[DEPRECATION] should_validate_confirmation_of: not meant to be public, no longer used internally"
138
138
  raise ArgumentError if opts[:factory].nil?
139
139
 
140
140
  context "on save" do
@@ -144,7 +144,7 @@ module Clearance
144
144
  end
145
145
 
146
146
  def should_validate_confirmation_is_not_blank(factory, attribute, opts = {})
147
- warn "[DEPRECATION] not meant to be public, no longer used internally"
147
+ warn "[DEPRECATION] should_validate_confirmation_is_not_blank: not meant to be public, no longer used internally"
148
148
  should "validate #{attribute}_confirmation is not blank" do
149
149
  model = Factory.build(factory, blank_confirmation_options(attribute))
150
150
  model.save
@@ -154,7 +154,7 @@ module Clearance
154
154
  end
155
155
 
156
156
  def should_validate_confirmation_is_not_bad(factory, attribute, opts = {})
157
- warn "[DEPRECATION] not meant to be public, no longer used internally"
157
+ warn "[DEPRECATION] should_validate_confirmation_is_not_bad: not meant to be public, no longer used internally"
158
158
  should "validate #{attribute}_confirmation is different than #{attribute}" do
159
159
  model = Factory.build(factory, bad_confirmation_options(attribute))
160
160
  model.save
@@ -166,7 +166,7 @@ module Clearance
166
166
  # FORMS
167
167
 
168
168
  def should_display_a_password_update_form
169
- warn "[DEPRECATION] not meant to be public, no longer used internally"
169
+ warn "[DEPRECATION] should_display_a_password_update_form: not meant to be public, no longer used internally"
170
170
  should "have a form for the user's token, password, and password confirm" do
171
171
  update_path = ERB::Util.h(
172
172
  user_password_path(@user, :token => @user.token)
@@ -181,7 +181,7 @@ module Clearance
181
181
  end
182
182
 
183
183
  def should_display_a_sign_up_form
184
- warn "[DEPRECATION] not meant to be public, no longer used internally"
184
+ warn "[DEPRECATION] should_display_a_sign_up_form: not meant to be public, no longer used internally"
185
185
  should "display a form to sign up" do
186
186
  assert_select "form[action=#{users_path}][method=post]",
187
187
  true, "There must be a form to sign up" do
@@ -198,7 +198,7 @@ module Clearance
198
198
  end
199
199
 
200
200
  def should_display_a_sign_in_form
201
- warn "[DEPRECATION] not meant to be public, no longer used internally"
201
+ warn "[DEPRECATION] should_display_a_sign_in_form: not meant to be public, no longer used internally"
202
202
  should 'display a "sign in" form' do
203
203
  assert_select "form[action=#{session_path}][method=post]",
204
204
  true, "There must be a form to sign in" do
@@ -235,19 +235,19 @@ module Clearance
235
235
  end
236
236
 
237
237
  def blank_confirmation_options(attribute)
238
- warn "[DEPRECATION] not meant to be public, no longer used internally"
238
+ warn "[DEPRECATION] blank_confirmation_options: not meant to be public, no longer used internally"
239
239
  opts = { attribute => attribute.to_s }
240
240
  opts.merge("#{attribute}_confirmation".to_sym => "")
241
241
  end
242
242
 
243
243
  def bad_confirmation_options(attribute)
244
- warn "[DEPRECATION] not meant to be public, no longer used internally"
244
+ warn "[DEPRECATION] bad_confirmation_options: not meant to be public, no longer used internally"
245
245
  opts = { attribute => attribute.to_s }
246
246
  opts.merge("#{attribute}_confirmation".to_sym => "not_#{attribute}")
247
247
  end
248
248
 
249
249
  def assert_confirmation_error(model, attribute, message = "confirmation error")
250
- warn "[DEPRECATION] not meant to be public, no longer used internally"
250
+ warn "[DEPRECATION] assert_confirmation_error: not meant to be public, no longer used internally"
251
251
  assert model.errors.on(attribute).include?("doesn't match confirmation"),
252
252
  message
253
253
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thoughtbot-clearance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Croak
@@ -24,7 +24,7 @@ autorequire:
24
24
  bindir: bin
25
25
  cert_chain: []
26
26
 
27
- date: 2009-05-16 21:00:00 -07:00
27
+ date: 2009-05-17 21:00:00 -07:00
28
28
  default_executable:
29
29
  dependencies: []
30
30