Class: GovukPublishingComponents::Presenters::ImageCardHelper
- Inherits:
-
Object
- Object
- GovukPublishingComponents::Presenters::ImageCardHelper
- Includes:
- ActionView::Context, ActionView::Helpers
- Defined in:
- lib/govuk_publishing_components/presenters/image_card_helper.rb
Instance Attribute Summary collapse
-
#extra_details ⇒ Object
readonly
Returns the value of attribute extra_details.
-
#extra_details_no_indent ⇒ Object
readonly
Returns the value of attribute extra_details_no_indent.
-
#heading_text ⇒ Object
readonly
Returns the value of attribute heading_text.
-
#image_loading ⇒ Object
readonly
Returns the value of attribute image_loading.
-
#image_src ⇒ Object
readonly
Returns the value of attribute image_src.
-
#lang ⇒ Object
readonly
Returns the value of attribute lang.
-
#large_font_size_mobile ⇒ Object
readonly
Returns the value of attribute large_font_size_mobile.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#two_thirds ⇒ Object
readonly
Returns the value of attribute two_thirds.
-
#youtube_video_id ⇒ Object
readonly
Returns the value of attribute youtube_video_id.
Instance Method Summary collapse
- #context ⇒ Object
- #description ⇒ Object
- #href ⇒ Object
- #image ⇒ Object
-
#initialize(local_assigns, brand_helper) ⇒ ImageCardHelper
constructor
A new instance of ImageCardHelper.
- #large ⇒ Object
- #large_mobile_font_size? ⇒ Boolean
- #media ⇒ Object
- #youtube_href ⇒ Object
- #youtube_link ⇒ Object
- #youtube_thumbnail ⇒ Object
- #youtube_thumbnail_url ⇒ Object
Constructor Details
#initialize(local_assigns, brand_helper) ⇒ ImageCardHelper
Returns a new instance of ImageCardHelper.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 9 def initialize(local_assigns, brand_helper) @href = local_assigns[:href] @extra_details = local_assigns[:extra_details] || [] @image_src = local_assigns[:image_src] @image_alt = local_assigns[:image_alt] || "" @youtube_video_alt = local_assigns[:youtube_video_alt] @image_loading = local_assigns[:image_loading] || "auto" @srcset = local_assigns[:srcset] || nil @sizes = local_assigns[:sizes] || nil @image_loading = local_assigns[:image_loading] || "auto" @context = local_assigns[:context] @description = local_assigns[:description] @large = local_assigns[:large] @two_thirds = local_assigns[:two_thirds] || false @large_font_size_mobile = local_assigns[:large_font_size_mobile] || false @heading_text = local_assigns[:heading_text] @extra_details_no_indent = local_assigns[:extra_details_no_indent] @metadata = local_assigns[:metadata] @lang = local_assigns[:lang] @youtube_video_id = local_assigns[:youtube_video_id] || nil @brand_helper = brand_helper end |
Instance Attribute Details
#extra_details ⇒ Object (readonly)
Returns the value of attribute extra_details.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def extra_details @extra_details end |
#extra_details_no_indent ⇒ Object (readonly)
Returns the value of attribute extra_details_no_indent.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def extra_details_no_indent @extra_details_no_indent end |
#heading_text ⇒ Object (readonly)
Returns the value of attribute heading_text.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def heading_text @heading_text end |
#image_loading ⇒ Object (readonly)
Returns the value of attribute image_loading.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def image_loading @image_loading end |
#image_src ⇒ Object (readonly)
Returns the value of attribute image_src.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def image_src @image_src end |
#lang ⇒ Object (readonly)
Returns the value of attribute lang.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def lang @lang end |
#large_font_size_mobile ⇒ Object (readonly)
Returns the value of attribute large_font_size_mobile.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def large_font_size_mobile @large_font_size_mobile end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def @metadata end |
#two_thirds ⇒ Object (readonly)
Returns the value of attribute two_thirds.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def two_thirds @two_thirds end |
#youtube_video_id ⇒ Object (readonly)
Returns the value of attribute youtube_video_id.
7 8 9 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 7 def youtube_video_id @youtube_video_id end |
Instance Method Details
#context ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 83 def context return unless @context content_tag(:p, class: "gem-c-image-card__context") do if @context[:date] date = content_tag(:time, l(@context[:date], format: "%e %B %Y"), datetime: @context[:date].iso8601, lang: "en") dash = content_tag(:span, " — ", 'aria-hidden': true) if @context[:text] date.concat(dash).concat(@context[:text]) else date end else @context[:text] end end end |
#description ⇒ Object
102 103 104 105 106 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 102 def description return content_tag(:div, @description, class: "gem-c-image-card__description gem-c-image-card__description--large-font-size-mobile") if @description && large_mobile_font_size? content_tag(:div, @description, class: "gem-c-image-card__description") if @description end |
#href ⇒ Object
33 34 35 36 37 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 33 def href return youtube_href if @youtube_video_id @href end |
#image ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 59 def image classes = %w[gem-c-image-card__image-wrapper] classes << "gem-c-image-card__image-wrapper--one-third" if @two_thirds height = 200 width = 300 height = 90 if @two_thirds width = 90 if @two_thirds if @image_src content_tag(:figure, class: classes) do image_tag( @image_src, class: "gem-c-image-card__image", alt: @image_alt, loading: @image_loading, sizes: @sizes, srcset: @srcset, height:, width:, ) end end end |
#large ⇒ Object
39 40 41 42 43 44 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 39 def large # if youtube video, we don't want to use # the small variant, large will be always # true if a youtube_video_id is supplied @youtube_video_id || @large end |
#large_mobile_font_size? ⇒ Boolean
46 47 48 49 50 51 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 46 def large_mobile_font_size? # allow the font-size to be 19px on mobile # for the two-thirds varation of the # image card component @two_thirds && @large_font_size_mobile end |
#media ⇒ Object
53 54 55 56 57 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 53 def media return youtube_link if @youtube_video_id image end |
#youtube_href ⇒ Object
108 109 110 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 108 def youtube_href "https://www.youtube.com/watch?v=#{@youtube_video_id}" end |
#youtube_link ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 128 def youtube_link content_tag( :figure, class: "gem-c-image-card__image-wrapper gem-c-image-card__image-wrapper--youtube-embed", ) do content_tag(:div) do link_to( href, { class: "govuk-body govuk-link gem-c-image-card__youtube-thumbnail-container js-youtube-card-embed", }, ) do youtube_thumbnail end end end end |
#youtube_thumbnail ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 116 def youtube_thumbnail thumbnail = content_tag(:div, class: "gem-c-image-card__youtube-thumbnail-image-container") do image_tag( youtube_thumbnail_url, class: "gem-c-image-card__image gem-c-image-card__youtube-thumbnail-image", alt: "", loading: @image_loading, ) end thumbnail + content_tag(:figcaption, @youtube_video_alt, class: "gem-c-image-card__youtube-thumbnail-container-text govuk-link #{@brand_helper.color_class}") end |
#youtube_thumbnail_url ⇒ Object
112 113 114 |
# File 'lib/govuk_publishing_components/presenters/image_card_helper.rb', line 112 def youtube_thumbnail_url "https://img.youtube.com/vi/#{@youtube_video_id}/maxresdefault.jpg" end |