Module: Vidibus::Textile::Mongoid::ClassMethods
- Defined in:
- lib/vidibus/textile/mongoid.rb
Instance Method Summary collapse
-
#textile(*args) ⇒ Object
Define existing attribute as textile.
Instance Method Details
#textile(*args) ⇒ Object
Define existing attribute as textile.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/vidibus/textile/mongoid.rb', line 8 def textile(*args) = args. for field in args plain_field = "#{field}_plain" self.send(:field, field, :type => Binary) self.send(:field, plain_field, :type => Binary) class_eval <<-EOS before_save :set_#{plain_field}, :if => lambda {#{field}_changed? or new_record?} def set_#{plain_field} self.#{plain_field} = #{plain_field} end def #{plain_field} if #{field}_changed? or new_record? Vidibus::Textile.new(#{field}).to_text(:plain => true) else read_attribute(:#{plain_field}) end end def #{field}_html return "" unless #{field} Vidibus::Textile.new(#{field}).to_html end EOS end end |