Sha256: dc15e533fbc91a81c917def95c0d215dbddb04a2ad32d3ba46867d88726c2ee9

Contents?: true

Size: 542 Bytes

Versions: 3

Compression:

Stored size: 542 Bytes

Contents

class MediaScrubber
  attr_accessor :original, :filtered

  def initialize(args)
    @original = args.fetch(:file, nil)
    @filtered = infer_media_type
  end

  def infer_media_type
    return nil unless original.respond_to?(:content_type)
    AtomicCms::Image.new(file: original) if original.content_type.match(/image/)
  end

  def valid?
    return false unless filtered
    filtered.valid?
  end

  def save
    return false unless valid?
    filtered.save
  end

  def url
    return nil unless filtered
    filtered.file.url
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
atomic_cms-0.2.5 app/controllers/concerns/media_scrubber.rb
atomic_cms-0.2.3 app/controllers/concerns/media_scrubber.rb
atomic_cms-0.2.2 app/controllers/concerns/media_scrubber.rb