Sha256: fd912ba8a2c83d016846a2d72294d79ed402eb607a4e8a0357d5077f35d10fb3

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

module Uploadcare::Rails::Formtastic
  class UploadcareInput < Formtastic::Inputs::HiddenInput
    include Uploadcare::Rails::ActionView::UploaderTags

    def role
      @options[:role].strip
    end

    def input_html_options
      @options = uploadcare_uploader_options(@options)
      super.merge role: role, data: @options[:data]
    end

    def file?
      @builder.object.try("has_#{ @attribute }_as_uploadcare_file?".to_sym) &&
        !@builder.object.try("has_#{ @attribute }_as_uploadcare_group?".to_sym)
    end

    def group?
      @builder.object.try("has_#{ @attribute }_as_uploadcare_file?".to_sym) &&
        !@builder.object.try("has_#{ @attribute }_as_uploadcare_group?".to_sym)
    end
  end

  class UploadcareUploaderInput < Uploadcare::Rails::Formtastic::UploadcareInput
    def input
      @options ||= {}
      @options[:uploadcare] ||= {}

      @options[:uploadcare][:multiple] =
        if file?
          false
        elsif group?
          true
        end
      super
    end
  end

  class UploadcareSingleUploaderInput < Uploadcare::Rails::Formtastic::UploadcareInput
    def input
      @options ||= {}
      @options[:uploadcare] ||= {}
      @options[:uploadcare][:multiple] = false
      super
    end
  end

  class UploadcareMultipleUploaderInput < Uploadcare::Rails::Formtastic::UploadcareInput
    def input
      @options ||= {}
      @options[:uploadcare] ||= {}
      @options[:uploadcare][:multiple] = true
      super
    end
  end
end

Formtastic::Inputs.send :include, Uploadcare::Rails::Formtastic

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
uploadcare-rails-1.1.0 lib/uploadcare/rails/formtastic/formtastic.rb