Module: ComfortableMexicanSofa::Content::Tag::Mixins::FileContent

Included in:
File, FileLink, PageFileLink
Defined in:
lib/comfortable_mexican_sofa/content/tags/mixins/file_content.rb

Instance Method Summary collapse

Instance Method Details

#content(file: self.file, as: self.as, variant_attrs: self.variant_attrs, label: self.label) ⇒ String

Parameters:

  • file (ActiveStorage::Blob) (defaults to: self.file)
  • as ("link", "image", "url") (defaults to: self.as)
  • variant_attrs ({String => String}) (defaults to: self.variant_attrs)

    ImageMagick variant attributes

  • label (String) (defaults to: self.label)

    alt text for ‘as: “image”`, link text for `as: “link”`

Returns:

  • (String)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/comfortable_mexican_sofa/content/tags/mixins/file_content.rb', line 12

def content(file: self.file, as: self.as, variant_attrs: self.variant_attrs, label: self.label)
  return "" unless file

  if variant_attrs.present? && attachment.image?
    file = file.variant(combine_options: variant_attrs)
  end

  url = rails_blob_path(file)

  case as
  when "link"
    "<a href='#{url}' target='_blank'>#{label}</a>"
  when "image"
    "<img src='#{url}' alt='#{label}'/>"
  else
    url
  end
end

#rails_blob_path(blob) ⇒ String

Parameters:

  • (ActiveStorage::Blob)

Returns:

  • (String)


33
34
35
# File 'lib/comfortable_mexican_sofa/content/tags/mixins/file_content.rb', line 33

def rails_blob_path(blob)
  Rails.application.routes.url_helpers.rails_blob_path(blob, only_path: true)
end