class ActiveAdminAddons::AttachmentBuilder

Constants

KNOWN_EXTENSIONS

Public Instance Methods

build_label() click to toggle source
# File lib/activeadmin_addons/addons/attachment_builder.rb, line 23
def build_label
  icon = icon_for_filename(file.original_filename)
  style = { width: "20", height: "20", style: "margin-right: 5px; vertical-align: middle;" }
  icon_img = context.image_tag(icon, style)
  text = label_text

  context.content_tag(:span) do
    context.concat(icon_img)
    context.safe_concat(text)
  end
end
file() click to toggle source
# File lib/activeadmin_addons/addons/attachment_builder.rb, line 54
def file
  model.send(attribute)
end
for_ext(file_extension) click to toggle source
# File lib/activeadmin_addons/addons/attachment_builder.rb, line 16
def for_ext(file_extension)
  ext = file_extension.start_with?(".") ? file_extension[1..-1] : file_extension
  ext.downcase!
  ext = "unknown" unless KNOWN_EXTENSIONS.include?(ext)
  "fileicons/file_extension_#{ext}.png"
end
icon_for_filename(filename) click to toggle source
# File lib/activeadmin_addons/addons/attachment_builder.rb, line 12
def icon_for_filename(filename)
  for_ext File.extname(filename.to_s)
end
label_text() click to toggle source
# File lib/activeadmin_addons/addons/attachment_builder.rb, line 35
def label_text
  label = if options[:label].nil?
            file.original_filename
          elsif options[:label].is_a? Proc
            options[:label].call(model).to_s
          else
            options[:label].to_s
          end

  options[:truncate] ? context.truncate(label) : label
end
render() click to toggle source
# File lib/activeadmin_addons/addons/attachment_builder.rb, line 47
def render
  raise "you need to pass a paperclip attribute" unless file.respond_to?(:url)
  options[:truncate] = options.fetch(:truncate, true)
  return nil unless file.file?
  context.link_to(build_label, file.url, target: "_blank", class: "attachment-link")
end