module Attache::Rails::Model::ClassMethods
Public Instance Methods
attache_setup_column(name)
click to toggle source
# File lib/attache/rails/model.rb, line 29 def attache_setup_column(name) case coltype = column_for_attribute(name).type when :text, :string, :binary serialize name, JSON end rescue Exception end
has_many_attaches(name)
click to toggle source
Calls superclass method
# File lib/attache/rails/model.rb, line 47 def has_many_attaches(name) attache_setup_column(name) define_method "#{name}_options", -> (geometry, options = {}) { Hash(class: 'enable-attache', multiple: true).merge(attache_field_options(self.send(name), geometry, options)) } define_method "#{name}_urls", -> (geometry) { attache_field_urls(self.send(name), geometry) } define_method "#{name}_attributes", -> (geometry) { attache_field_attributes(self.send(name), geometry) } define_method "#{name}=", -> (value) { super(attache_field_set(Array.wrap(value))) } after_save -> { attache_update_pending_diffs(self.send("#{name}_was"), self.send("#{name}"), self.attaches_to_backup ||= [], self.attaches_discarded ||= []) } after_destroy -> { attache_update_pending_diffs(self.send("#{name}_was"), [], self.attaches_to_backup ||= [], self.attaches_discarded ||= []) } end
has_one_attache(name)
click to toggle source
Calls superclass method
# File lib/attache/rails/model.rb, line 37 def has_one_attache(name) attache_setup_column(name) define_method "#{name}_options", -> (geometry, options = {}) { Hash(class: 'enable-attache', multiple: false).merge(attache_field_options(self.send(name), geometry, options)) } define_method "#{name}_url", -> (geometry) { attache_field_urls(self.send(name), geometry).try(:first) } define_method "#{name}_attributes", -> (geometry) { attache_field_attributes(self.send(name), geometry).try(:first) } define_method "#{name}=", -> (value) { super(attache_field_set(Array.wrap(value)).try(:first)) } after_save -> { attache_update_pending_diffs(self.send("#{name}_was"), self.send("#{name}"), self.attaches_to_backup ||= [], self.attaches_discarded ||= []) } after_destroy -> { attache_update_pending_diffs(self.send("#{name}_was"), [], self.attaches_to_backup ||= [], self.attaches_discarded ||= []) } end