| Class | ActiveLdap::Schema::Syntaxes::GeneralizedTime |
| In: |
lib/active_ldap/schema/syntaxes.rb
|
| Parent: | Base |
# File lib/active_ldap/schema/syntaxes.rb, line 178
178: def normalize_value(value)
179: if value.is_a?(Time)
180: normalized_value = value.strftime("%Y%m%d%H%M%S")
181: if value.gmt?
182: normalized_value + "Z"
183: else
184: normalized_value + ("%+03d%02d" % value.gmtoff.divmod(3600))
185: end
186: else
187: value
188: end
189: end
# File lib/active_ldap/schema/syntaxes.rb, line 169
169: def type_cast(value)
170: return value if value.nil? or value.is_a?(Time)
171: begin
172: Time.parse(value)
173: rescue ArgumentError
174: value
175: end
176: end
# File lib/active_ldap/schema/syntaxes.rb, line 192
192: def validate_normalized_value(value, original_value)
193: match_data = /\A
194: (\d{4,4})?
195: (\d{2,2})?
196: (\d{2,2})?
197: (\d{2,2})?
198: (\d{2,2})?
199: (\d{2,2}(?:[,.]\d+)?)?
200: ([+-]\d{4,4}|Z)?
201: \z/x.match(value)
202: if match_data
203: year, month, day, hour, minute, second, time_zone =
204: match_data.to_a[1..-1]
205: missing_components = []
206: %w(year month day hour minute).each do |component|
207: missing_components << component unless eval(component)
208: end
209: if missing_components.empty?
210: nil
211: else
212: params = [original_value.inspect, missing_components.join(", ")]
213: _("%s has missing components: %s") % params
214: end
215: else
216: _("%s is invalid time format") % original_value.inspect
217: end
218: end