act_as_time_as_boolean 0.2.0 → 0.2.1

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.
@@ -29,13 +29,12 @@ protected
29
29
 
30
30
  def self.field_setter_method(field)
31
31
  self.send :define_method, :"#{field}=" do |value|
32
- if (value && value != 'false' && value != '0' && !self.send(field)) || (!value && self.send(field))
33
- if value && value != 'false' && value != '0'
34
- send :"#{field}_at=", Time.now
35
- true
36
- else
37
- send :"#{field}_at=", nil
38
- end
32
+ value = value && value.to_s != '0'
33
+ if value && !self.send(field)
34
+ send :"#{field}_at=", Time.now
35
+ true
36
+ elsif !value && self.send(field)
37
+ send :"#{field}_at=", nil
39
38
  end
40
39
  end
41
40
  end
@@ -1,3 +1,3 @@
1
1
  module ActAsTimeAsBoolean
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
@@ -98,6 +98,18 @@ describe ActAsTimeAsBoolean do
98
98
 
99
99
  it { subject.active_at.should be_nil }
100
100
  end
101
+
102
+ describe "with '1'" do
103
+ before { subject.active = '1' }
104
+
105
+ it { subject.active_at.should == time }
106
+ end
107
+
108
+ describe "with '0'" do
109
+ before { subject.active = '0' }
110
+
111
+ it { subject.active_at.should be_nil }
112
+ end
101
113
  end
102
114
 
103
115
  describe 'calling inactive' do
@@ -132,6 +144,18 @@ describe ActAsTimeAsBoolean do
132
144
 
133
145
  it { subject.active_at.should be_nil }
134
146
  end
147
+
148
+ describe "with '1'" do
149
+ before { subject.active = '1' }
150
+
151
+ it { subject.active_at.class.should == Time }
152
+ end
153
+
154
+ describe "with '0'" do
155
+ before { subject.active = '0' }
156
+
157
+ it { subject.active_at.should be_nil }
158
+ end
135
159
  end
136
160
 
137
161
  describe 'calling inactive' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: act_as_time_as_boolean
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-07 00:00:00.000000000 Z
12
+ date: 2013-12-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 1.8.23
118
+ rubygems_version: 1.8.26
119
119
  signing_key:
120
120
  specification_version: 3
121
121
  summary: Add time_as_boolean feature to your ruby classes