Socket
Book a DemoInstallSign in
Socket

carrierwave-blitline

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

carrierwave-blitline

0.3.4
bundlerRubygems
Version published
Maintainers
1
Created
Source

Latest Version CircleCI Downloads Maintainability Test Coverage

Carrierwave::Blitline

This gem is still under construction but it basically works in its current form.

Installation

Install it with these other Carrierwave gems:

gem "carrierwave"

gem "carrierwave-aws"

gem "carrierwave-blitline"

Then execute

 $ bundle install

Add this to your Carrierwave Uploader files:

class ImageUploader < CarrierWave::Uploader::Base

  # NOTE: We're using MiniMagick here...
  include CarrierWave::MiniMagick

  require "carrierwave/blitline"
  include CarrierWave::Blitline


  # This macro lets your uploader know you're using Carrierwave
  process_via_blitline


  # other stuff ...

end

CONFIGURE

Your Carrierwave setup should be something like this

CarrierWave.configure do |config|

  if Rails.env.test?
    config.storage           = :file
    config.enable_processing = false
    config.asset_host        = 'http://test.host'

  else
    config.aws_credentials = {
      :access_key_id     => ENV["AWS_ACCESS_KEY"],
      :secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
      :region            => ENV["S3_BUCKET_REGION"]
    }
    config.storage            :aws
    config.aws_bucket                       = ENV["S3_BUCKET_NAME"]
    config.aws_acl                          = 'public-read'
    config.aws_attributes                   = {
      expires: 1.week.from_now.httpdate, cache_control: 'max-age=315576000' }

    config.asset_host = "https://%s" % ENV["ASSET_HOST"]
    config.enable_processing                = true
    config.aws_authenticated_url_expiration = 60 * 60 * 24 * 7
  end

end

Configuration

The following config attributes must be set for this to work properly.

CarrierWave::Blitline.s3_bucket_name          = ENV["S3_BUCKET_NAME"]
CarrierWave::Blitline.s3_bucket_region        = ENV["S3_BUCKET_REGION"]
CarrierWave::Blitline.blitline_application_id = ENV["BLITLINE_APPLICATION_ID"]

Usage

Define your carrierwave versions as you normally would.

Basic functions (resize_to_fit, resize_to_fill, etc.) are dealt with automagically.

For other functions, you need to write two methods in your uploader: 1) The local processing method, 2) the params for Blitline. For example

# Images will be cropped, and then resized to fill
version :cropped do
  process :crop
  process :resize_to_fill => [200, 200]
end

# Use this when processing locally
def crop
  manipulate! do |img|
    img = img.crop "#{model.photo_crop_x}x#{model.photo_crop_y}+#{model.photo_crop_width}+#{model.photo_crop_height}"
    img
  end
end

# Use this when processing on Blitline
def params_for_crop(*)
  return {
    x: model.photo_crop_x,
    y: model.photo_crop_y,
    width: model.photo_crop_width,
    height: model.photo_crop_height
  }
end

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/katanacode/carrierwave-blitline.

License

The gem is available as open source under the terms of the MIT License.

Created by

Katana — web developers based in Edinburgh, Scotland

FAQs

Package last updated on 26 May 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.