Sha256: e0cd9bce9882d4c5729f7af39cd72e7456ee82d0f33d71337eb95ff186e58c3e

Contents?: true

Size: 906 Bytes

Versions: 1

Compression:

Stored size: 906 Bytes

Contents

require 'set'
require 'mime/types'
require 'wand'

module Joint
  def self.configure(model)
    model.class_inheritable_accessor :attachment_names
    model.attachment_names = Set.new
    model.send(:include, model.attachment_accessor_module)
  end

  def self.name(file)
    if file.respond_to?(:original_filename)
      file.original_filename
    else
      File.basename(file.path)
    end
  end

  def self.size(file)
    if file.respond_to?(:size)
      file.size
    else
      File.size(file)
    end
  end

  def self.type(file)
    type = file.content_type if file.respond_to?(:content_type)

    if blank?(type)
      type = Wand.wave(file.path, :original_filename => Joint.name(file))
    end

    type
  end

private
  def self.blank?(str)
    str.nil? || str !~ /\S/
  end
end

require 'joint/class_methods'
require 'joint/instance_methods'
require 'joint/attachment_proxy'
require 'joint/io'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
joint-0.5.4 lib/joint.rb