Sha256: 7e05f9d7d8ac5bb809d16235ef72636d03304128b109745a971e8a7b7753a199
Contents?: true
Size: 847 Bytes
Versions: 1
Compression:
Stored size: 847 Bytes
Contents
module ActsAsConcatenation module ClassMethods def acts_as_concatenation(*args) options = args.extract_options! separator = options.delete(:separator) || '|' args.each do |attr| class_eval do define_method "#{attr}=".to_sym do |a| if (!a.nil?) && (!a.empty?) && (a.respond_to? :join) a.delete_if {|x| x.nil? || x.strip.empty? } #for a fake checkbox in html page to crack empty selection self[attr] = a.join(separator) else self[attr] = a end end define_method attr do value = self[attr] value.nil? ? [] : value.split(separator) end end end end end def self.included(base) base.send :extend, ClassMethods end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
acts_as_concatenation-0.1.0 | lib/acts_as_concatenation.rb |