Class: Caboose::Post
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Caboose::Post
- Defined in:
- app/models/caboose/post.rb
Class Method Summary collapse
Instance Method Summary collapse
- #block ⇒ Object
- #custom_field_value(key) ⇒ Object
- #set_slug_and_uri(str) ⇒ Object
- #top_level_blocks ⇒ Object
- #verify_custom_field_values_exist ⇒ Object
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
#block ⇒ Object
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_blocks ⇒ Object
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_exist ⇒ Object
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 |