accept_values_for 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- h3 0.4.2
1
+ h3. 0.4.2
2
2
 
3
3
  * Make suitable to use with any ORM based on ActiveModel::Validations
4
4
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.3
@@ -37,6 +37,7 @@ class AcceptValuesFor #:nodoc:
37
37
  def matches?(model)
38
38
  @model = model
39
39
  return false unless model.class.included_modules.include?(ActiveModel::Validations)
40
+ old_value = @model.send(@attribute)
40
41
  @values.each do |value|
41
42
  model.send("#{@attribute}=", value)
42
43
  model.valid?
@@ -46,11 +47,14 @@ class AcceptValuesFor #:nodoc:
46
47
  end
47
48
  end
48
49
  return true
50
+ ensure
51
+ @model.send("#{@attribute}=", old_value) if defined?(old_value)
49
52
  end
50
53
 
51
54
  def does_not_match?(model)
52
55
  @model = model
53
56
  return false unless model.class.included_modules.include?(ActiveModel::Validations)
57
+ old_value = @model.send(@attribute)
54
58
  @values.each do |value|
55
59
  model.send("#{@attribute}=", value)
56
60
  model.valid?
@@ -60,6 +64,8 @@ class AcceptValuesFor #:nodoc:
60
64
  end
61
65
  end
62
66
  return true
67
+ ensure
68
+ @model.send("#{@attribute}=", old_value) if defined?(old_value)
63
69
  end
64
70
 
65
71
  def failure_message_for_should
@@ -3,10 +3,6 @@ require 'spec_helper'
3
3
  describe "AcceptValuesFor" do
4
4
  subject { Person.new(:gender => "MALE", :group => Group.new(:name => "Primary")) }
5
5
 
6
- it {should accept_values_for(:gender, "MALE", "FEMALE")}
7
- it {should_not accept_values_for(:gender, "INVALID", nil)}
8
- it { should_not accept_values_for(:group, nil) }
9
- it { should accept_values_for(:group, Group.new) }
10
6
 
11
7
  it "should have custom condition for should_not" do
12
8
  accept_values_for(:gender, "INVALID", "MALE").does_not_match?(subject).should be_false
@@ -20,5 +16,17 @@ describe "AcceptValuesFor" do
20
16
  matcher.failure_message_for_should.should == "expected #{subject.inspect} to accept value \"INVALID\" for :gender, but it was not\n" +
21
17
  "Errors: gender is not included in the list"
22
18
  end
19
+
20
+ it "should assign the old value for attribute after #matches? " do
21
+ matcher.matches?(subject).should be_false
22
+ subject.gender.should == "MALE"
23
+ end
24
+ end
25
+
26
+ describe "api" do
27
+ it { should accept_values_for(:gender, "MALE", "FEMALE")}
28
+ it { should_not accept_values_for(:gender, "INVALID", nil)}
29
+ it { should_not accept_values_for(:group, nil) }
30
+ it { should accept_values_for(:group, Group.new) }
23
31
  end
24
32
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: accept_values_for
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 2
10
- version: 0.4.2
9
+ - 3
10
+ version: 0.4.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bogdan Gusiev
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-16 00:00:00 +02:00
18
+ date: 2011-03-30 00:00:00 +03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency