Sha256: a56c59adad7d689c149e7798d6172f90bd9a91a3acc0fbcadd00bb5cd53930b7

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'singleton'

module Paperclip
  module Tasks
    class Attachments
      include Singleton

      def self.add(klass, attachment_name, attachment_options)
        instance.add(klass, attachment_name, attachment_options)
      end

      def self.clear
        instance.clear
      end

      def self.names_for(klass)
        instance.names_for(klass)
      end

      def self.each_definition(&block)
        instance.each_definition(&block)
      end

      def self.definitions_for(klass)
        instance.definitions_for(klass)
      end

      def initialize
        clear
      end

      def add(klass, attachment_name, attachment_options)
        @attachments ||= {}
        @attachments[klass] ||= {}
        @attachments[klass][attachment_name] = attachment_options
      end

      def clear
        @attachments = Hash.new { |h,k| h[k] = {} }
      end

      def names_for(klass)
        @attachments[klass].keys
      end

      def each_definition
        @attachments.each do |klass, attachments|
          attachments.each do |name, options|
            yield klass, name, options
          end
        end
      end

      def definitions_for(klass)
        @attachments[klass]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
paperclip-3.5.0 lib/paperclip/tasks/attachments.rb