Sha256: 05b097a5a2e6ed84ab22343074be129216fcbbc7abbfcff71db44b7e201d5957

Contents?: true

Size: 1.53 KB

Versions: 9

Compression:

Stored size: 1.53 KB

Contents

module Uploadcare::Rails::ActionView
  module Helpers
    def uploadcare_include_tag(options = {})
      s = Rails.application.config.uploadcare

      src = ''
      s.get_widget_settings.each do |k, v|
        src << "UPLOADCARE_#{k.to_s.underscore.upcase} = \"#{j(v)}\";\n"
      end
      settings_code = javascript_tag(src)

      version = options[:version] || s.widget_version
      min = options[:min].nil? || options[:min]
      url = "https://ucarecdn.com/widget/#{version}/uploadcare/uploadcare-#{version}#{'.min' if min}.js"
      include_code = javascript_include_tag(url)

      settings_code + include_code
    end

    def uploadcare_uploader_options(options)
      options.symbolize_keys.deep_merge({
        :role => "#{options[:role]} uploadcare-uploader",
        :data => {:path_value => true}
      })
    end

    def uploadcare_uploader_tag(name, options = {})
      options = uploadcare_uploader_options(options)
      hidden_field_tag(name, nil, options)
    end

    def uploadcare_uploader_field(object_name, method, options = {})
      options = uploadcare_uploader_options(options)
      hidden_field(object_name, method, options)
    end

    def self.included(arg)
      ActionView::Helpers::FormBuilder.send(:include, Uploadcare::Rails::ActionView::FormBuilder)
    end
  end

  module FormBuilder
    def uploadcare_uploader_field(method, options = {})
      @template.uploadcare_uploader_field(@object_name, method, objectify_options(options))
    end
  end
end

ActionView::Base.send :include, Uploadcare::Rails::ActionView::Helpers

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
uploadcare-rails-0.6.1 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.6 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.5.3 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.5.2 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.5.1 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.5 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.4.2 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.4.1 lib/uploadcare/rails/action_view.rb
uploadcare-rails-0.4 lib/uploadcare/rails/action_view.rb