Module: HasMeta::InstanceMethods
- Defined in:
- lib/has_meta/instance_methods.rb
Instance Method Summary collapse
- #add_to_pending_save(args) ⇒ Object
-
#list_meta_keys ⇒ Object
TODO: Test these.
- #meta_destroy(key) ⇒ Object
- #meta_get(key) ⇒ Object
- #meta_set(key, value, options = {}) ⇒ Object
- #meta_set!(key, value, options = {}) ⇒ Object
- #remove_meta(key) ⇒ Object
- #save_pending_meta_attributes ⇒ Object
Instance Method Details
#add_to_pending_save(args) ⇒ Object
21 22 23 24 |
# File 'lib/has_meta/instance_methods.rb', line 21 def add_to_pending_save args self. ||= {} self..merge!(args) end |
#list_meta_keys ⇒ Object
TODO: Test these
41 42 43 |
# File 'lib/has_meta/instance_methods.rb', line 41 def self..pluck(:keys).uniq end |
#meta_destroy(key) ⇒ Object
36 37 38 |
# File 'lib/has_meta/instance_methods.rb', line 36 def key self..where(key: key).destroy_all end |
#meta_get(key) ⇒ Object
4 5 6 7 8 |
# File 'lib/has_meta/instance_methods.rb', line 4 def key return self.[key][:value] if self..try(:[], key).present? self..where(key: key.to_s).try(:first).try(:value) end |
#meta_set(key, value, options = {}) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/has_meta/instance_methods.rb', line 10 def key, value, ={} return key if value.nil? or value == '' if self.persisted? = self..where(key: key.to_s).first_or_create .send :value=, value, else add_to_pending_save key => {value: value, options: } end end |
#meta_set!(key, value, options = {}) ⇒ Object
31 32 33 34 |
# File 'lib/has_meta/instance_methods.rb', line 31 def key, value, ={} result = (key, value, ) result.respond_to?(:save) ? result.save : result end |
#remove_meta(key) ⇒ Object
45 46 47 |
# File 'lib/has_meta/instance_methods.rb', line 45 def (key) self.send(key.to_sym, nil) end |
#save_pending_meta_attributes ⇒ Object
26 27 28 29 |
# File 'lib/has_meta/instance_methods.rb', line 26 def self..each { |key, v| key, v[:value], v[:options] } self..clear end |