Class: Caboose::Post

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.slug(str) ⇒ Object



43
44
45
# File 'app/models/caboose/post.rb', line 43

def self.slug(str)    
  return str.downcase.gsub(' ', '-').gsub(/[^\w-]/, '')        
end

.uri(post) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'app/models/caboose/post.rb', line 47

def self.uri(post)
  str = "/posts/#x{post.created_at.strftime('%Y/%m/%d')}/#{post.slug}"
  i = 2
  while Caboose::Post.where("site_id = ? and id <> ? and uri = ?", post.site_id, post.id, str).exists?
    str = "/posts/#{post.created_at.strftime('%Y/%m/%d')}/#{post.slug}-#{i}"
    i = i + 1
  end      
  return str
end

Instance Method Details

#blockObject



35
36
37
# File 'app/models/caboose/post.rb', line 35

def block
  Caboose::Block.where("post_id = ? and parent_id is null", self.id).first
end

#custom_field_value(key) ⇒ Object



73
74
75
76
77
78
79
80
81
# File 'app/models/caboose/post.rb', line 73

def custom_field_value(key)
  fv = Caboose::PostCustomFieldValue.where(:post_id => self.id, :key => key).first
  if fv.nil?
    f = Caboose::PostCustomField.where(:site_id => self.site_id, :key => key).first
    return nil if f.nil?
    fv = Caboose::PostCustomFieldValue.create(:post_id => self.id, :post_custom_field_id => f.id, :key => key, :value => f.default_value, :sort_order => f.sort_order)
  end
  return fv.value
end

#set_slug_and_uri(str) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'app/models/caboose/post.rb', line 57

def set_slug_and_uri(str)
  d = self.created_at.strftime('%Y/%m/%d')
  s = Caboose::Post.slug(str)
  new_slug = "#{s}"
  new_uri = "/posts/#{d}/#{new_slug}"
  i = 2
  while Caboose::Post.where("site_id = ? and id <> ? and uri = ?", self.site_id, self.id, new_uri).exists?
    new_slug = "#{s}-#{i}"
    new_uri = "/posts/#{d}/#{new_slug}"      
    i = i + 1
  end
  self.slug = new_slug
  self.uri = new_uri
  self.save        
end

#top_level_blocksObject



39
40
41
# File 'app/models/caboose/post.rb', line 39

def top_level_blocks
  Caboose::Block.where("post_id = ? and parent_id is null", self.id).reorder(:sort_order).all
end

#verify_custom_field_values_existObject



83
84
85
86
87
88
# File 'app/models/caboose/post.rb', line 83

def verify_custom_field_values_exist
  Caboose::PostCustomField.where(:site_id => self.site_id).all.each do |f|
    fv = Caboose::PostCustomFieldValue.where(:post_id => self.id, :post_custom_field_id => f.id).first                  
    Caboose::PostCustomFieldValue.create(:post_id => self.id, :post_custom_field_id => f.id, :key => f.key, :value => f.default_value, :sort_order => f.sort_order) if fv.nil?
  end
end