Module: Virgo::PostHelper
- Defined in:
- app/helpers/virgo/post_helper.rb
Instance Method Summary collapse
- #featured_post_text(post, opts = {}) ⇒ Object
- #post_banner_image_url(post) ⇒ Object
- #post_byline(post, opts = {}) ⇒ Object
- #post_categories(post) ⇒ Object
- #post_category_label(post) ⇒ Object
- #post_excerpt(post) ⇒ Object
- #post_permalink_url(post) ⇒ Object
- #post_status_label(post) ⇒ Object
- #post_tag(post) ⇒ Object
- #post_tags(post) ⇒ Object
- #rss_post(xml, post) ⇒ Object
- #truncate_post_to_read_more(post, opts = {}) ⇒ Object
Instance Method Details
#featured_post_text(post, opts = {}) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'app/helpers/virgo/post_helper.rb', line 87 def featured_post_text(post, opts={}) if post.excerpt.present? && post.show_excerpt? html = " <div class='featured-post-excerpt'> #{truncate post.excerpt, length: 414} " if opts[:read_more] != false html += "#{link_to "Read More", post_detail_path(post), class: 'read-more-link'}" end html += "</div>" html.html_safe else "".html_safe end end |
#post_banner_image_url(post) ⇒ Object
138 139 140 141 142 |
# File 'app/helpers/virgo/post_helper.rb', line 138 def (post) if post.show_feature_image_on_post_page post.featured_image.try(:image).try(:url, :wide) end end |
#post_byline(post, opts = {}) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'app/helpers/virgo/post_helper.rb', line 69 def (post, opts={}) html = " <div class='post-byline'> <span class='post-by'>By</span> " unless opts[:no_links] html += link_to(post..pretty_name, user_path(post.), class: 'post-author-link') else html += "<span class='post-author-name'>#{post..pretty_name}</span>" end html += "<span class='bullet'>•</span> <span class='post-date'>#{local_time (post.publish_at || post.created_at), post_time_format}</span> </div>" html.html_safe end |
#post_categories(post) ⇒ Object
17 18 19 |
# File 'app/helpers/virgo/post_helper.rb', line 17 def post_categories(post) post.categories.map(&:name).join(", ") end |
#post_category_label(post) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/helpers/virgo/post_helper.rb', line 53 def post_category_label(post) if post.categories.any? category = post.categories.order(navbar_weight: :asc).first html = " <div class='category-label'> <span class='category-name'>#{category.name}</span> </div> " html.html_safe else "" end end |
#post_excerpt(post) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'app/helpers/virgo/post_helper.rb', line 119 def post_excerpt(post) if post.excerpt.present? && post.show_excerpt? " <div class='post-body post-excerpt'> #{post.excerpt} <div class='read-more-link-wrap'> #{link_to "Read More", post_detail_path(post), class: 'read-more-link'} </div> </div> ".html_safe else " <div class='post-body'> #{truncate_post_to_read_more(post)} </div> ".html_safe end end |
#post_permalink_url(post) ⇒ Object
144 145 146 |
# File 'app/helpers/virgo/post_helper.rb', line 144 def post_permalink_url(post) virgo.post_detail_url(post, protocol: 'https') end |
#post_status_label(post) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'app/helpers/virgo/post_helper.rb', line 3 def post_status_label(post) if post.draft? "<span class='label label-danger'>Draft</span>".html_safe elsif post.assigned? "<span class='label label-info'>Assigned</span>".html_safe elsif post.published? "<span class='label label-primary'>Published</span>".html_safe elsif post.killed? "<span class='label label-danger'>Hidden</span>".html_safe elsif post.hidden? "<span class='label label-warning'>Hidden</span>".html_safe end end |
#post_tag(post) ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'app/helpers/virgo/post_helper.rb', line 106 def post_tag(post) if post..any? tag = post..by_position.first.tag " <div class='post-tag'> <span class='post-tag-text'>#{tag.name}</span> </div> ".html_safe else "" end end |
#post_tags(post) ⇒ Object
21 22 23 |
# File 'app/helpers/virgo/post_helper.rb', line 21 def (post) post..map(&:name).join(", ") end |
#rss_post(xml, post) ⇒ Object
149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'app/helpers/virgo/post_helper.rb', line 149 def rss_post(xml, post) xml.item { xml.guid(post.uuid) xml.pubDate(post.publish_at.to_s(:rfc822)) xml.title(post.headline) xml.(post..) xml.link(post_permalink_url(post)) xml.description(post.rendered_body) if post.featured_image xml.tag!("media:content", {"url" => post.thumb_image.image.url(:email), "medium" => "image"}) end } end |
#truncate_post_to_read_more(post, opts = {}) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/helpers/virgo/post_helper.rb', line 25 def truncate_post_to_read_more(post, opts={}) include_link = true if opts[:link].nil? text = post.rendered_body idx = text.index("[read-more]") if opts[:length] if idx.nil? || (opts[:length] < idx) return truncate((text), length: opts[:length]) end end if idx result = text[0..(idx-1)] + "<span class='ellipse'>...</span>" if include_link result += "<div class='read-more-link-wrap'>" result += link_to("Read More", post_detail_path(post), class: 'read-more-link') result += "</div>" end else result = text end result.html_safe end |