Class: Alchemy::EssencePictureView Deprecated
- Inherits:
-
Object
- Object
- Alchemy::EssencePictureView
- Includes:
- ActionView::Helpers::AssetTagHelper, ActionView::Helpers::UrlHelper
- Defined in:
- app/models/alchemy/essence_picture_view.rb
Overview
Deprecated.
Renders an essence picture view
Constant Summary collapse
- DEFAULT_OPTIONS =
{ show_caption: true, disable_link: false, srcset: [], sizes: [], }.with_indifferent_access
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
Returns the value of attribute content.
-
#essence ⇒ Object
readonly
Returns the value of attribute essence.
-
#html_options ⇒ Object
readonly
Returns the value of attribute html_options.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#picture ⇒ Object
readonly
Returns the value of attribute picture.
Instance Method Summary collapse
- #alt_text ⇒ Object
- #caption ⇒ Object
- #img_tag ⇒ Object
-
#initialize(content, options = {}, html_options = {}) ⇒ EssencePictureView
constructor
A new instance of EssencePictureView.
- #is_linked? ⇒ Boolean
- #render ⇒ Object
- #show_caption? ⇒ Boolean
- #src ⇒ Object
- #srcset ⇒ Object
Constructor Details
#initialize(content, options = {}, html_options = {}) ⇒ EssencePictureView
Returns a new instance of EssencePictureView.
20 21 22 23 24 25 26 |
# File 'app/models/alchemy/essence_picture_view.rb', line 20 def initialize(content, = {}, = {}) @content = content @options = DEFAULT_OPTIONS.merge(content.settings).merge() @html_options = @essence = content.essence @picture = essence.picture end |
Instance Attribute Details
#content ⇒ Object (readonly)
Returns the value of attribute content.
11 12 13 |
# File 'app/models/alchemy/essence_picture_view.rb', line 11 def content @content end |
#essence ⇒ Object (readonly)
Returns the value of attribute essence.
11 12 13 |
# File 'app/models/alchemy/essence_picture_view.rb', line 11 def essence @essence end |
#html_options ⇒ Object (readonly)
Returns the value of attribute html_options.
11 12 13 |
# File 'app/models/alchemy/essence_picture_view.rb', line 11 def @html_options end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
11 12 13 |
# File 'app/models/alchemy/essence_picture_view.rb', line 11 def @options end |
#picture ⇒ Object (readonly)
Returns the value of attribute picture.
11 12 13 |
# File 'app/models/alchemy/essence_picture_view.rb', line 11 def picture @picture end |
Instance Method Details
#alt_text ⇒ Object
86 87 88 |
# File 'app/models/alchemy/essence_picture_view.rb', line 86 def alt_text essence.alt_tag.presence || .delete(:alt) || essence.picture.name&.humanize end |
#caption ⇒ Object
48 49 50 51 52 |
# File 'app/models/alchemy/essence_picture_view.rb', line 48 def caption return unless show_caption? @_caption ||= content_tag(:figcaption, essence.caption) end |
#img_tag ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/models/alchemy/essence_picture_view.rb', line 58 def img_tag @_img_tag ||= image_tag( src, { alt: alt_text, title: essence.title.presence, class: caption ? nil : essence.css_class.presence, srcset: srcset.join(", ").presence, sizes: [:sizes].join(", ").presence, }.merge(caption ? {} : ) ) end |
#is_linked? ⇒ Boolean
74 75 76 |
# File 'app/models/alchemy/essence_picture_view.rb', line 74 def is_linked? ![:disable_link] && essence.link.present? end |
#render ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/models/alchemy/essence_picture_view.rb', line 28 def render return if picture.blank? output = caption ? img_tag + caption : img_tag if is_linked? output = link_to(output, url_for(essence.link), { title: essence.link_title.presence, target: essence.link_target == "blank" ? "_blank" : nil, data: { link_target: essence.link_target.presence }, }) end if caption content_tag(:figure, output, { class: essence.css_class.presence }.merge()) else output end end |
#show_caption? ⇒ Boolean
70 71 72 |
# File 'app/models/alchemy/essence_picture_view.rb', line 70 def show_caption? [:show_caption] && essence.caption.present? end |
#src ⇒ Object
54 55 56 |
# File 'app/models/alchemy/essence_picture_view.rb', line 54 def src essence.picture_url(.except(*DEFAULT_OPTIONS.keys)) end |
#srcset ⇒ Object
78 79 80 81 82 83 84 |
# File 'app/models/alchemy/essence_picture_view.rb', line 78 def srcset [:srcset].map do |size| url = essence.picture_url(size: size) width, height = size.split("x") width.present? ? "#{url} #{width}w" : "#{url} #{height}h" end end |