Sha256: 22ff538595dc024a8e0bce73aaadc443b7bb68e0346b8657687775b7ba99619f

Contents?: true

Size: 1.62 KB

Versions: 2

Compression:

Stored size: 1.62 KB

Contents

module RailsAdminJcrop
  module AssetEngine
    class <<self
      def thumbnail_names(obj, field)
        obj.class.uploaders[field.to_sym].versions.keys
      end

      def crop!(obj, field)
        obj.send(field).recreate_versions!
      end
    end

    module CarrierWave
      def rails_admin_crop
        return unless model.rails_admin_cropping?
        manipulate! do |img|
          geometry = "#{model.crop_w}x#{model.crop_h}+#{model.crop_x}+#{model.crop_y}"
          img.crop geometry
          img
        end
      end
    end
  end
end

module CarrierWave
  module Mount
    module Extension
      def self.included(base)
        base.uploaders.each do |name, klass|
          klass.send :include, RailsAdminJcrop::AssetEngine::CarrierWave
        end
      end
    end
  end
end

module RailsAdmin
  module Config
    module Fields
      module Types
        module UploaderMethods

          def self.included(base)
            base.register_instance_option(:cache_method) do
              "#{name}_cache"
            end

            base.register_instance_option(:thumb_method) do
              @thumb_method ||= ((versions = bindings[:object].send(name).versions.keys).find{|k| k.in?([:thumb, :thumbnail, 'thumb', 'thumbnail'])} || versions.first.to_s)
            end

            base.register_instance_option(:delete_method) do
              "remove_#{name}"
            end
          end

          def resource_url(thumb = false)
            return nil unless (uploader = bindings[:object].send(name)).present?
            thumb.present? ? uploader.send(thumb).url : uploader.url
          end

        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails_admin_jcrop-0.2.1 lib/rails_admin_jcrop/asset_engine/carrier_wave.rb
rails_admin_jcrop-0.2.0 lib/rails_admin_jcrop/asset_engine/carrier_wave.rb