Sha256: b7f5963c908467587cc0691fb35f34b7ff9b66da896ef617cbfde399cab94c7c

Contents?: true

Size: 1.69 KB

Versions: 6

Compression:

Stored size: 1.69 KB

Contents

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

    def input(wrapper_options = nil)
      @options = uploadcare_uploader_options(@options)
      super
    end

    def role
      "#{ @input_html_options[:role] } uploadcare-uploader".strip
    end

    def input_html_options
      @input_html_options.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::SimpleForm::UploadcareInput
    def input(wrapper_options = nil)
      @options ||= {}
      @options[:uploadcare] ||= {}

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

  class UploadcareSingleUploaderInput < Uploadcare::Rails::SimpleForm::UploadcareInput
    def input(wrapper_options = nil)
      @options ||= {}
      @options[:uploadcare] ||= {}
      @options[:uploadcare][:multiple] = false
      super
    end
  end

  class UploadcareMultipleUploaderInput < Uploadcare::Rails::SimpleForm::UploadcareInput
    def input(wrapper_options = nil)
      @options ||= {}
      @options[:uploadcare] ||= {}
      @options[:uploadcare][:multiple] = true
      super
    end
  end
end

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

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
uploadcare-rails-1.2.1 lib/uploadcare/rails/simple_form/simple_form.rb
uploadcare-rails-1.2.0 lib/uploadcare/rails/simple_form/simple_form.rb
uploadcare-rails-1.2.0.pre.alpha3 lib/uploadcare/rails/simple_form/simple_form.rb
uploadcare-rails-1.2.0.pre.alpha lib/uploadcare/rails/simple_form/simple_form.rb
uploadcare-rails-1.1.1 lib/uploadcare/rails/simple_form/simple_form.rb
uploadcare-rails-1.1.0 lib/uploadcare/rails/simple_form/simple_form.rb