Class: AbAdmin::CarrierWave::BaseUploader

Inherits:
CarrierWave::Uploader::Base
  • Object
show all
Includes:
Utils::EvalHelpers, CarrierWave::MimeTypes, CarrierWave::MiniMagick
Defined in:
lib/ab_admin/carrierwave/base_uploader.rb

Instance Method Summary collapse

Methods included from Utils::EvalHelpers

#call_method_or_proc_on, #evaluate_method

Instance Method Details

#cropper(*geometry) ⇒ Object

Crop image by specific coordinates www.imagemagick.org/script/command-line-processing.php?ImageMagick=6ddk6c680muj4eu2vr54vdveb7#geometry process :cropper => [size, offset] process :cropper => [800, 600, 10, 20]



77
78
79
80
81
82
83
84
85
86
87
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 77

def cropper(*geometry)
  geometry = normalize_param(geometry[0]) if geometry.size == 1

  if geometry && geometry.size == 4
    manipulate! do |img|
      img.crop '%ix%i+%i+%i' % geometry
      img = yield(img) if block_given?
      img
    end
  end
end

#default_urlObject



96
97
98
99
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 96

def default_url
  image_name = [model.class.to_s.underscore, version_name].compact.join('_')
  "/assets/defaults/#{image_name}.png"
end

#dimensionsObject



105
106
107
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 105

def dimensions
  [magick[:width], magick[:height]]
end

#image?(new_file = nil) ⇒ Boolean

Returns:

  • (Boolean)


101
102
103
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 101

def image?(new_file = nil)
  (file || new_file).content_type.include? 'image'
end

#magickObject



109
110
111
112
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 109

def magick
  #@magick ||= ::MiniMagick::Image.new(current_path)
  ::MiniMagick::Image.new(current_path)
end

#quality(percentage) ⇒ Object

Reduces the quality of the image to the percentage given process :quality => 85



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 45

def quality(percentage)
  percentage = normalize_param(percentage)

  unless percentage.blank?
    manipulate! do |img|
      img.quality(percentage.to_s)
      img = yield(img) if block_given?
      img
    end
  end
end

#rotate(degrees = nil) ⇒ Object

Rotate image by degress process :rotate => “-90”



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 60

def rotate(degrees = nil)
  degrees = normalize_param(degrees)

  unless degrees.blank?
    manipulate! do |img|
      img.rotate(degrees.to_s)
      img = yield(img) if block_given?
      img
    end
  end
end

#store_dirObject

default store assets path



27
28
29
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 27

def store_dir
  "uploads/#{model.class.to_s.underscore}/#{model.id}"
end

#stripObject

Strips out all embedded information from the image process :strip



34
35
36
37
38
39
40
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 34

def strip
  manipulate! do |img|
    img.strip
    img = yield(img) if block_given?
    img
  end
end

#watermark(path_to_file, gravity = 'SouthEast') ⇒ Object



89
90
91
92
93
94
# File 'lib/ab_admin/carrierwave/base_uploader.rb', line 89

def watermark(path_to_file, gravity='SouthEast')
  manipulate! do |img|
     = ::MiniMagick::Image.open(path_to_file)
    img.composite() { |c| c.gravity gravity }
  end
end