123456789_123456789_123456789_123456789_123456789_

Module: ActionText::Attachable

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: actiontext/lib/action_text/attachable.rb

Constant Summary

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Attribute Summary

Instance Method Summary

Class Method Details

.from_attachable_sgid(sgid, options = {})

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 22

def from_attachable_sgid(sgid, options = {})
  method = sgid.is_a?(Array) ? :locate_many_signed : :locate_signed
  record = GlobalID::Locator.public_send(method, sgid, options.merge(for: LOCATOR_NAME))
  record || raise(ActiveRecord::RecordNotFound)
end

.from_node(node)

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 10

def from_node(node)
  if attachable = attachable_from_sgid(node["sgid"])
    attachable
  elsif attachable = ActionText::Attachables::ContentAttachment.from_node(node)
    attachable
  elsif attachable = ActionText::Attachables::RemoteImage.from_node(node)
    attachable
  else
    ActionText::Attachables::MissingAttachable
  end
end

Instance Attribute Details

#previewable_attachable?Boolean (readonly)

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 62

def previewable_attachable?
  false
end

Instance Method Details

#as_json

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 66

def as_json(*)
  super.merge(attachable_sgid: attachable_sgid)
end

#attachable_content_type

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 46

def attachable_content_type
  try(:content_type) || "application/octet-stream"
end

#attachable_filename

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 50

def attachable_filename
  filename.to_s if respond_to?(:filename)
end

#attachable_filesize

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 54

def attachable_filesize
  try(:byte_size) || try(:filesize)
end

#attachable_metadata

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 58

def 
  try(:) || {}
end

#attachable_sgid

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 42

def attachable_sgid
  to_sgid(expires_in: nil, for: LOCATOR_NAME).to_s
end

#to_rich_text_attributes(attributes = {})

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 74

def to_rich_text_attributes(attributes = {})
  attributes.dup.tap do |attrs|
    attrs[:sgid] = attachable_sgid
    attrs[:content_type] = attachable_content_type
    attrs[:previewable] = true if previewable_attachable?
    attrs[:filename] = attachable_filename
    attrs[:filesize] = attachable_filesize
    attrs[:width] = [:width]
    attrs[:height] = [:height]
  end.compact
end

#to_trix_content_attachment_partial_path

[ GitHub ]

  
# File 'actiontext/lib/action_text/attachable.rb', line 70

def to_trix_content_attachment_partial_path
  to_partial_path
end