An open API service indexing awesome lists of open source software.

https://github.com/katanacode/carrierwave-blitline

Integrates Blitline with Carrierwave
https://github.com/katanacode/carrierwave-blitline

blitline carrierwave gem rails ruby

Last synced: about 2 months ago
JSON representation

Integrates Blitline with Carrierwave

Awesome Lists containing this project

README

          

[![Latest Version](https://img.shields.io/gem/v/carrierwave-blitline.svg)](https://rubygems.org/gems/carrierwave-blitline)
[![CircleCI](https://circleci.com/gh/KatanaCode/carrierwave-blitline.svg?style=svg)](https://circleci.com/gh/KatanaCode/carrierwave-blitline)
[![Downloads](https://img.shields.io/github/downloads/katanacode/carrierwave-blitline/total.svg)](https://img.shields.io/github/downloads/katanacode/carrierwave-blitline/total.svg)
[![Maintainability](https://api.codeclimate.com/v1/badges/fdd8cffc25d6002a68df/maintainability)](https://codeclimate.com/github/KatanaCode/carrierwave-blitline/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/fdd8cffc25d6002a68df/test_coverage)](https://codeclimate.com/github/KatanaCode/carrierwave-blitline/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](https://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](http://opensource.org/licenses/MIT).

## Created by

[Katana — web developers based in Edinburgh, Scotland](https://katanacode.com/)