1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- module SerializeAndSymbolize
- extend ActiveSupport::Concern
- module ClassMethods
- def serialize_and_symbolize(*column_names)
- column_names.flatten.uniq.compact.map(&:to_sym).each do |column_name|
- setup_name = "setup_#{column_name}".to_sym
- symbolize_name = "symbolize_#{column_name}".to_sym
- validate_name = "validate_#{column_name}".to_sym
- serialize column_name
- after_initialize setup_name
- before_validation symbolize_name
- before_save symbolize_name
- validate validate_name
- class_eval <<-RUBY
- def
- self[:
- end
- def
-
- end
- def
- self.
- end
- def
- if data.is_a?(String)
- self[:
- elsif data.is_a?(Hash)
- self[:
- else
- self[:
- end
- end
- RUBY
- end
- end
- end
- end
|