Module: FormatAlias
- Defined in:
- lib/format_alias.rb,
lib/format_alias/railtie.rb,
lib/format_alias/version.rb,
lib/format_alias/formatters/date.rb,
lib/format_alias/formatters/polymorphic.rb
Defined Under Namespace
Classes: Railtie
Constant Summary collapse
- VERSION =
"0.0.6"
Instance Method Summary collapse
- #date_format_alias(name, format, options = {}) ⇒ Object
- #polymorphic_alias(name, options = {}) ⇒ Object
Instance Method Details
#date_format_alias(name, format, options = {}) ⇒ Object
2 3 4 5 6 7 8 9 10 11 |
# File 'lib/format_alias/formatters/date.rb', line 2 def date_format_alias(name, format, = {}) define_setter_alias(name, ) do |value| time = Time.parse(value, format) rescue nil { name => time } end define_getter_alias(name, ) do |value| value.strftime(format) unless value.nil? end end |
#polymorphic_alias(name, options = {}) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/format_alias/formatters/polymorphic.rb', line 2 def polymorphic_alias(name, = {}) delimiter = .delete(:delimiter) || ':' attributes = ["#{name}_type", "#{name}_id"] = .merge(attributes: attributes) define_setter_alias(name, ) do |value| values = value.to_s.split(delimiter) Hash[attributes.zip(values)] end define_getter_alias(name, ) do |*values| values = values.compact values.join(delimiter) if values.any? end end |