Skip to content

Commit

Permalink
initial pass at removing dragonfly references. Also assets are workin…
Browse files Browse the repository at this point in the history
…g with refile and S3 on the assets page
  • Loading branch information
drobin03 committed Apr 9, 2015
1 parent dff3186 commit fe14882
Show file tree
Hide file tree
Showing 17 changed files with 111 additions and 220 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ spec/dummy/public/system/
Gemfile.lock
tmp/
.rbenv-gemsets
.env
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ source "https://rubygems.org"
# Declare your gem's dependencies in smithycms.gemspec.
# Bundler will treat runtime dependencies like base dependencies, and
# development dependencies will be added by default to the :development group.

gemspec

# Declare any dependencies that are still in development here instead of in
Expand Down
1 change: 1 addition & 0 deletions app/controllers/smithy/assets_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def new

def create
@asset = Asset.new(filtered_params)
@asset.set_name(filtered_params)
@asset.save
flash.notice = "Your asset was created" if @asset.persisted?
respond_with @asset do |format|
Expand Down
70 changes: 34 additions & 36 deletions app/models/smithy/asset.rb
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
module Smithy
class Asset < ActiveRecord::Base
validates_presence_of :file, :name
attachment :file

has_many :images, :dependent => :destroy

extend ::Dragonfly::Model
dragonfly_accessor :file
include ::Smithy::Dragonfly::AssetHelper

before_validation :set_name
before_save :set_file_uid_manually
# extend ::Dragonfly::Model
# dragonfly_accessor :file
# include ::Smithy::Dragonfly::AssetHelper
# before_save :set_file_uid_manually

default_scope -> { order(:name) }

def file
# check for the jquery uploaded file first, just in case one got past the manual check. Also keeps backwards-compatibility
if self.uploaded_file_url?
dragonfly_attachments[:file].app.datastore = self.class.dragonfly_remote_datastore
self.file_url = URI.escape(self.uploaded_file_url)
elsif dragonfly_attachments[:file].to_value
dragonfly_attachments[:file].app.datastore = self.class.dragonfly_datastore
end
dragonfly_attachments[:file].to_value
end
# def file
# # check for the jquery uploaded file first, just in case one got past the manual check. Also keeps backwards-compatibility
# # if self.uploaded_file_url?
# # dragonfly_attachments[:file].app.datastore = self.class.dragonfly_remote_datastore
# # self.file_url = URI.escape(self.uploaded_file_url)
# # elsif dragonfly_attachments[:file].to_value
# # dragonfly_attachments[:file].app.datastore = self.class.dragonfly_datastore
# # end
# # dragonfly_attachments[:file].to_value
# end

def file_type
ext = File.extname(file.name).sub(/^\./, '')
ext = File.extname(self.name).sub(/^\./, '')
case ext
when 'jpg', 'jpeg', 'gif', 'png'
:image
Expand Down Expand Up @@ -63,27 +62,26 @@ def to_liquid
}
end

private
def set_content_types
set_content_type(self.file, :content_type)
def set_name(params)
filename = params[:file].original_filename
if filename && !self.name?
self.name = filename
end
end

# this allows dragonfly to take over management of the uploaded file. We are
# assuming that jquery-upload and dragonfly are using the same data storage...
def set_file_uid_manually
if self.uploaded_file_url? # this means it was uploaded via jquery-upload
uri = URI.parse(URI.encode(self.uploaded_file_url))
self.file_uid = self.uploaded_file_url.sub("#{uri.scheme}://#{uri.host}/", '')
self.uploaded_file_url = nil
end
end
private
# def set_content_types
# set_content_type(self.file, :content_type)
# end

def set_name
if self.uploaded_file_url?
self.name = File.basename(self.uploaded_file_url, '.*').titleize unless self.name?
elsif self.file.present?
self.name = File.basename(self.file.name, '.*').titleize unless self.name?
end
end
# # this allows dragonfly to take over management of the uploaded file. We are
# # assuming that jquery-upload and dragonfly are using the same data storage...
# def set_file_uid_manually
# if self.uploaded_file_url? # this means it was uploaded via jquery-upload
# uri = URI.parse(URI.encode(self.uploaded_file_url))
# self.file_uid = self.uploaded_file_url.sub("#{uri.scheme}://#{uri.host}/", '')
# self.uploaded_file_url = nil
# end
# end
end
end
4 changes: 2 additions & 2 deletions app/views/smithy/assets/_asset.html.erb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<div class="col-xs-6 col-md-3">
<div class="thumbnail clearfix">
<%= link_to asset.file.remote_url do %>
<%= link_to attachment_url(asset, :file) do %>
<% if asset.file_type == :image %>
<%= image_tag asset.file.thumb("340x226#").url, width: 170, height: 114, alt: '' %>
<%= attachment_image_tag(asset, :file, :fill, 170, 114) %>
<% elsif asset.file_type == :direct_image %>
<%= image_tag asset.file.remote_url, width: 170, alt: '' %>
<% else %>
Expand Down
7 changes: 5 additions & 2 deletions app/views/smithy/assets/_upload_form.html.erb
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
<%= uploader_form Smithy::Asset.new, post: assets_url, as: "asset[uploaded_file_url]" do %>
<%= semantic_form_for Smithy::Asset.new, post: assets_url do |f| %>
<fieldset class="inputs">
<%= file_field_tag :file, multiple: true %>
<%
#file_field_tag :file, multiple: true
%>
<%= f.attachment_field :file, direct: true %>
<%= submit_tag "Upload File(s)", class: 'btn btn-default' %>
</fieldset>
<% end %>
Expand Down
26 changes: 0 additions & 26 deletions config/initializers/dragonfly.rb

This file was deleted.

21 changes: 21 additions & 0 deletions config/initializers/refile.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
require "refile/rails"
require "refile/image_processing"
require "refile/backend/s3"

# Manually mount Refile before Smithy Engine
Refile.automount = false
Rails.application.routes.prepend do
mount Refile.app, at: Refile.mount_point, as: :refile_app
end

if ENV['AWS_ACCESS_KEY_ID'].present? && ENV['AWS_SECRET_ACCESS_KEY'].present? && ENV['AWS_S3_BUCKET'].present?
aws = {
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
bucket: ENV['AWS_S3_BUCKET'],
}
Refile.cache = Refile::Backend::S3.new(prefix: "cache", **aws)
Refile.store = Refile::Backend::S3.new(prefix: "store", **aws)
else
Refile.store = Refile::Backend::FileSystem.new(Rails.root.join('public/system/refile', Rails.env))
end
1 change: 0 additions & 1 deletion lib/smithy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
require 'smithy/dependencies'
# config
require 'smithy/logger'
require 'smithy/dragonfly'
require 'smithy/liquid'
# content formatting
require 'smithy/formatter'
Expand Down
3 changes: 2 additions & 1 deletion lib/smithy/dependencies.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
require 'awesome_nested_set'
require 'bootstrap-sass'
require 'awesome_nested_set'
require 'dragonfly'
require 'fog'
require 'font-awesome-sass'
require 'formtastic'
Expand All @@ -14,5 +13,7 @@
require 'jquery-fileupload-rails'
require 'jquery/rails'
require 'liquid'
require 'refile/rails'
require 'refile/image_processing'
require 'sass-rails'
require 'slodown'
30 changes: 0 additions & 30 deletions lib/smithy/dragonfly.rb

This file was deleted.

67 changes: 0 additions & 67 deletions lib/smithy/dragonfly/asset_helper.rb

This file was deleted.

27 changes: 0 additions & 27 deletions lib/smithy/dragonfly/remote_data_store.rb

This file was deleted.

2 changes: 1 addition & 1 deletion lib/smithy/liquid/filters/resize.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module Liquid
module Filters
module Resize
def resize(input, resize_string)
Smithy::Dragonfly.resize_url(input, resize_string)
# Smithy::Dragonfly.resize_url(input, resize_string)
end
end
::Liquid::Template.register_filter(Resize)
Expand Down
9 changes: 7 additions & 2 deletions smithycms.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ Gem::Specification.new do |s|

s.add_dependency 'autoprefixer-rails' # for bootstrap-sass
s.add_dependency 'awesome_nested_set', '~> 3.0.1'
s.add_dependency 'aws-sdk', '< 2' # for refile
s.add_dependency 'bootstrap-sass', '~> 3.2.0'
s.add_dependency 'dragonfly', '~> 1.0.7'
s.add_dependency 'dragonfly-s3_data_store', '~> 1.0.4'
# s.add_dependency 'dragonfly', '~> 1.0.7'
# s.add_dependency 'dragonfly-s3_data_store', '~> 1.0.4'
s.add_dependency 'font-awesome-sass', '~> 4.2'
s.add_dependency 'fog', '~> 1.20.0'
s.add_dependency 'formtastic', '~> 2.3.1' # as of writing, formtastic-bootstrap is only compatible with 2.3.x
Expand All @@ -38,13 +39,17 @@ Gem::Specification.new do |s|
s.add_dependency 'kaminari', '~> 0.16.1'
s.add_dependency 'liquid', '~> 2.6.1'
s.add_dependency 'sass-rails'
s.add_dependency 'coffee-rails'
s.add_dependency 'slodown'
s.add_dependency 'rack-cache'
s.add_dependency 'mini_magick'
s.add_dependency 'refile'

s.add_development_dependency 'byebug'
s.add_development_dependency 'capybara'
s.add_development_dependency 'coveralls'
s.add_development_dependency 'database_cleaner'
s.add_development_dependency 'dotenv-rails'
s.add_development_dependency 'factory_girl_rails'
s.add_development_dependency 'fakeweb'
s.add_development_dependency 'ffaker'
Expand Down
10 changes: 10 additions & 0 deletions spec/dummy/db/migrate/20150409174750_convert_assets_to_refile.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
class ConvertAssetsToRefile < ActiveRecord::Migration
def change
# remove_column :smithy_assets, :uploaded_file_url
# remove_column :smithy_assets, :file_uid
# file_name
# file_size
# file_width
add_column :smithy_assets, :file_id, :string
end
end

0 comments on commit fe14882

Please sign in to comment.