Class: Mattr

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/mattr.rb

Class Method Summary collapse

Class Method Details

.exists?(target_type, target_id, meta_key) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/mattr.rb', line 34

def self.exists?(target_type, target_id, meta_key)
  self.meta(target_type, target_id, meta_key) != false
end

.meta(target_type, target_id, meta_key) ⇒ Object



2
3
4
# File 'app/models/mattr.rb', line 2

def self.meta(target_type, target_id, meta_key)
  Mattr.where({ :target_type => target_type, :meta_key => meta_key, :target_id => target_id }).first
end

.meta=(args) ⇒ Object



6
7
8
9
# File 'app/models/mattr.rb', line 6

def self.meta=(args)
  return false if args.nil? or !args.is_a?(Array) or args.length < 4
  Mattr.metas = [ args[0], args[1], { args[2] => args[3] } ]
end

.metas(target_type, target_id) ⇒ Object



38
39
40
# File 'app/models/mattr.rb', line 38

def self.metas(target_type, target_id)
  Mattr.where({ :target_type => target_type, :target_id => target_id })
end

.metas=(args) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/models/mattr.rb', line 11

def self.metas=(args)
  return if args.nil?
  return unless args.is_a?(Array)
  return unless args[2].is_a?(Hash)

  args[2].each do |k,v|
    unless meta = self.meta(args[0],args[1],k)
      meta = Mattr.new
    end

    meta.target_type = args[0]
    meta.target_id   = args[1]
    meta.meta_key    = k
    meta.meta_value  = v
    meta.save
  end
end

.value(target_type, target_id, meta_key) ⇒ Object



29
30
31
32
# File 'app/models/mattr.rb', line 29

def self.value(target_type, target_id, meta_key)
  record = self.meta(target_type, target_id, meta_key)
  record.meta_value unless record.nil?
end