flexible_date 0.1.0 → 0.1.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.
- 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
|