blocknotes / carrierwave-tests

Some tests using Rails 5.1.x with CarrierWave

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project setup

rails g scaffold Post title:string description:text image1:string image2:string image3:string image4:string image5:string image6:string image7:string image8:string image9:string
rails g model Image data:string
# Added polymorphic reference to Image
rails g scaffold News title:string description:text

Experiments

post = Post.find_or_create_by title: 'A post'
post.image1 = File.open Rails.root.join( 'lib', 'image1.jpg' )
post.save

Image Processing

MiniMagick (requires ImageMagick)

uploader sample

gem 'mini_magick'

process resize_to_fit:  [100, 100]  # resize (dimensions may be less than required)
process resize_to_fill: [100, 100]  # crop image
process resize_and_pad: [100, 100]  # extend image

RMagick (requires ImageMagick)

uploader sample

gem 'rmagick'

process resize_to_fit:  [100, 100]  # resize (dimensions may be less than required)
process resize_to_fill: [100, 100]  # crop image
process resize_and_pad: [100, 100]  # extend image

CarrierWave Vips (requires LibVips)

uploader sample

gem 'carrierwave-vips'

def resize_and_pad(new_width, new_height, opts = {})
  manipulate! do |image|
    image = resize_image(image,new_width,new_height)
    image.embed ( new_width - image.width ) / 2, ( new_height - image.height ) / 2, new_width, new_height, opts
  end
end
process resize_to_fit:  [100, 100]  # resize (dimensions may be less than required)
process resize_to_fill: [100, 100]  # crop image
process resize_and_pad: [100, 100, :background => [0, 128, 192]]  # extend image

CarrierWave ImageOptimizer (requires jpegoptim optipng pngquant)

uploader sample

gem 'carrierwave-imageoptimizer'

process optimize: [{ quality: 50 }]

Polymorphic Image

post = Post.find_or_create_by title: 'A post'
post.build_extra_image data: File.open( Rails.root.join( 'lib', 'image1.jpg' ) )
post.save
# post.extra_image.data.url
news = News.find_or_create_by title: 'A news'
news.build_extra_image data: File.open( Rails.root.join( 'lib', 'image1.jpg' ) )
news.save
# news.extra_image.data.url

About

Some tests using Rails 5.1.x with CarrierWave


Languages

Language:Ruby 74.1%Language:HTML 19.3%Language:CSS 4.5%Language:JavaScript 2.2%