flexible_date 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +13 -1
- data/lib/flexible_date.rb +4 -3
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -35,9 +35,21 @@ specified format:
|
|
35
35
|
event.end_date_flex.should == "28/02/2011"
|
36
36
|
|
37
37
|
|
38
|
+
Suffix can be customized:
|
39
|
+
|
40
|
+
class Event < ActiveRecord::Base
|
41
|
+
flexible_date :judgement_day, :format => '%d-%m-%Y', :suffix => 'yyz'
|
42
|
+
|
43
|
+
event = Event.new
|
44
|
+
event.judgement_day_yyz = "28-02-2011"
|
45
|
+
event.judgement_day.should == Date.new(2011, 02, 28)
|
46
|
+
|
47
|
+
|
38
48
|
== How to install
|
39
49
|
|
40
|
-
|
50
|
+
Just run:
|
51
|
+
|
52
|
+
gem install flexible_date
|
41
53
|
|
42
54
|
|
43
55
|
== Do you know a better/standard solution?
|
data/lib/flexible_date.rb
CHANGED
@@ -2,6 +2,7 @@ module FlexibleDate
|
|
2
2
|
def flexible_date(*params)
|
3
3
|
options, fields = params.pop, params
|
4
4
|
format = options[:format]
|
5
|
+
suffix = options[:suffix] || "flex"
|
5
6
|
fields.each do |field|
|
6
7
|
unless methods.include?(:flexible_date_validations)
|
7
8
|
validate :flexible_date_validations
|
@@ -15,19 +16,19 @@ module FlexibleDate
|
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
|
-
define_method "#{field}
|
19
|
+
define_method "#{field}_#{suffix}" do
|
19
20
|
date = self.send("#{field}")
|
20
21
|
date.try(:strftime, format)
|
21
22
|
end
|
22
23
|
|
23
|
-
define_method "#{field}
|
24
|
+
define_method "#{field}_#{suffix}=" do |value|
|
24
25
|
begin
|
25
26
|
self.send("#{field}=", Date.strptime(value, format))
|
26
27
|
rescue ArgumentError
|
27
28
|
self.send("#{field}=", nil)
|
28
29
|
@flexible_date_errors ||= {}
|
29
30
|
@flexible_date_errors["#{field}".to_sym] = 'invalid'
|
30
|
-
@flexible_date_errors["#{field}
|
31
|
+
@flexible_date_errors["#{field}_#{suffix}".to_sym] = 'invalid'
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|