refinerycms-images 1.0.11 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/controllers/refinery/admin/images_controller.rb +110 -0
- data/app/helpers/refinery/admin/images_helper.rb +24 -0
- data/app/models/refinery/image.rb +96 -0
- data/app/views/refinery/admin/images/_actions.html.erb +15 -0
- data/app/views/{admin → refinery/admin}/images/_existing_image.html.erb +13 -26
- data/app/views/{admin → refinery/admin}/images/_form.html.erb +11 -15
- data/app/views/{admin → refinery/admin}/images/_grid_view.html.erb +7 -5
- data/app/views/refinery/admin/images/_images.html.erb +2 -0
- data/app/views/{admin → refinery/admin}/images/_list_view.html.erb +0 -0
- data/app/views/{admin → refinery/admin}/images/_list_view_image.html.erb +7 -5
- data/app/views/refinery/admin/images/_records.html.erb +18 -0
- data/app/views/refinery/admin/images/edit.html.erb +1 -0
- data/app/views/refinery/admin/images/index.html.erb +6 -0
- data/app/views/{admin → refinery/admin}/images/insert.html.erb +10 -13
- data/app/views/refinery/admin/images/new.html.erb +1 -0
- data/config/locales/bg.yml +37 -36
- data/config/locales/cs.yml +37 -36
- data/config/locales/da.yml +37 -36
- data/config/locales/de.yml +37 -36
- data/config/locales/el.yml +37 -36
- data/config/locales/en.yml +37 -36
- data/config/locales/es.yml +38 -37
- data/config/locales/fi.yml +37 -36
- data/config/locales/fr.yml +37 -36
- data/config/locales/it.yml +47 -45
- data/config/locales/ja.yml +44 -0
- data/config/locales/ko.yml +44 -0
- data/config/locales/lt.yml +37 -36
- data/config/locales/lv.yml +37 -36
- data/config/locales/nb.yml +37 -37
- data/config/locales/nl.yml +36 -35
- data/config/locales/pl.yml +38 -37
- data/config/locales/pt-BR.yml +38 -37
- data/config/locales/rs.yml +37 -37
- data/config/locales/ru.yml +37 -36
- data/config/locales/sk.yml +37 -36
- data/config/locales/sl.yml +36 -35
- data/config/locales/sv.yml +37 -36
- data/config/locales/vi.yml +37 -36
- data/config/locales/zh-CN.yml +37 -36
- data/config/locales/zh-TW.yml +37 -36
- data/config/routes.rb +4 -7
- data/db/migrate/20100913234707_create_refinerycms_images_schema.rb +10 -18
- data/lib/generators/refinery/images/images_generator.rb +10 -0
- data/lib/generators/refinery/images/templates/config/initializers/refinery/images.rb.erb +41 -0
- data/lib/refinery/images.rb +25 -0
- data/lib/refinery/images/configuration.rb +54 -0
- data/lib/refinery/images/dragonfly.rb +54 -0
- data/lib/refinery/images/engine.rb +38 -0
- data/lib/refinery/images/validators.rb +7 -0
- data/lib/refinery/images/validators/image_size_validator.rb +19 -0
- data/lib/refinerycms-images.rb +1 -76
- data/refinerycms-images.gemspec +14 -91
- data/spec/factories/image.rb +5 -0
- data/{features/uploads → spec/fixtures}/beach.jpeg +0 -0
- data/spec/fixtures/fathead.png +0 -0
- data/spec/fixtures/image-with-dashes.jpg +0 -0
- data/spec/lib/generators/refinery/images/images_generator_spec.rb +29 -0
- data/spec/models/refinery/image_spec.rb +158 -0
- data/spec/requests/refinery/admin/images_spec.rb +103 -0
- metadata +116 -106
- data/app/controllers/admin/images_controller.rb +0 -106
- data/app/helpers/admin/images_helper.rb +0 -27
- data/app/models/image.rb +0 -116
- data/app/views/admin/images/_actions.html.erb +0 -16
- data/app/views/admin/images/_images.html.erb +0 -2
- data/app/views/admin/images/_records.html.erb +0 -18
- data/app/views/admin/images/edit.html.erb +0 -1
- data/app/views/admin/images/index.html.erb +0 -6
- data/app/views/admin/images/new.html.erb +0 -1
- data/config/locales/jp.yml +0 -43
- data/config/locales/lolcat.yml +0 -43
- data/features/manage_images.feature +0 -49
- data/features/step_definitions/image_steps.rb +0 -40
- data/features/support/factories.rb +0 -7
- data/features/support/paths.rb +0 -17
- data/features/uploads/id-rather-be-here.jpg +0 -0
- data/features/uploads/refinery_is_awesome.txt +0 -1
- data/lib/gemspec.rb +0 -38
- data/lib/generators/refinerycms_images_generator.rb +0 -8
- data/spec/models/image_spec.rb +0 -115
- data/spec/uploads/beach.jpeg +0 -0
data/config/locales/zh-TW.yml
CHANGED
@@ -1,43 +1,44 @@
|
|
1
1
|
zh-TW:
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
2
|
+
refinery:
|
3
|
+
plugins:
|
4
|
+
refinery_images:
|
5
|
+
title: 圖片
|
6
|
+
description: 管理圖片
|
7
|
+
admin:
|
8
|
+
images:
|
9
|
+
delete: 永遠地移除這張圖片
|
10
|
+
edit: 編輯圖片
|
11
|
+
form:
|
12
|
+
image: 圖片
|
13
|
+
use_current_image: 使用目前圖片
|
14
|
+
or: 或
|
15
|
+
replace_image: " 用這個來取代..."
|
16
|
+
current_image: 目前圖片
|
17
|
+
maximum_image_size: 圖片大小限制為 %{bytes}.
|
18
|
+
actions:
|
19
|
+
create_new_image: 新增圖片
|
20
|
+
records:
|
21
|
+
no_images_yet: 目前沒有任何圖片. 點選 "新增圖片" 來加入您的第一張圖片.
|
22
|
+
index:
|
23
|
+
view:
|
24
|
+
switch_to: 切換到%{view_name}模式
|
25
|
+
list: 列表
|
26
|
+
grid: 格狀
|
27
|
+
grid_view:
|
28
|
+
view_live_html: 瀏覽圖片 <br/><em>在新視窗中開啟</em>
|
29
|
+
existing_image:
|
30
|
+
button_text: 插入
|
31
|
+
resize_image: 調整圖片大小?
|
32
|
+
size: 大小
|
33
|
+
insert:
|
34
|
+
existing_image: 圖片庫
|
35
|
+
new_image: 上傳
|
35
36
|
activerecord:
|
36
37
|
models:
|
37
|
-
image: 圖片
|
38
|
+
refinery/image: 圖片
|
38
39
|
errors:
|
39
40
|
models:
|
40
|
-
image:
|
41
|
+
refinery/image:
|
41
42
|
blank: 您必須指定一張圖片來上傳
|
42
|
-
|
43
|
+
too_big: 圖片必須小於 %{size} MB 這個大小
|
43
44
|
incorrect_format: '您的圖片必須是 JPG, PNG 或是 GIF'
|
data/config/routes.rb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
-
|
1
|
+
Refinery::Core::Engine.routes.draw do
|
2
|
+
match '/system/images/*dragonfly', :to => Dragonfly[:refinery_images]
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
scope(:path => 'refinery', :as => 'admin', :module => 'admin') do
|
4
|
+
namespace :admin, :path => 'refinery' do
|
6
5
|
resources :images, :except => :show do
|
7
|
-
collection
|
8
|
-
get :insert
|
9
|
-
end
|
6
|
+
get :insert, :on => :collection
|
10
7
|
end
|
11
8
|
end
|
12
9
|
end
|
@@ -1,23 +1,15 @@
|
|
1
1
|
class CreateRefinerycmsImagesSchema < ActiveRecord::Migration
|
2
|
-
def
|
3
|
-
create_table
|
4
|
-
t.string
|
5
|
-
t.string
|
6
|
-
t.integer
|
7
|
-
t.integer
|
8
|
-
t.integer
|
9
|
-
t.
|
10
|
-
t.
|
11
|
-
t.string "image_uid"
|
12
|
-
t.string "image_ext"
|
13
|
-
end
|
14
|
-
end
|
2
|
+
def change
|
3
|
+
create_table :refinery_images do |t|
|
4
|
+
t.string :image_mime_type
|
5
|
+
t.string :image_name
|
6
|
+
t.integer :image_size
|
7
|
+
t.integer :image_width
|
8
|
+
t.integer :image_height
|
9
|
+
t.string :image_uid
|
10
|
+
t.string :image_ext
|
15
11
|
|
16
|
-
|
17
|
-
[::Image].reject{|m|
|
18
|
-
!(defined?(m) and m.respond_to?(:table_name))
|
19
|
-
}.each do |model|
|
20
|
-
drop_table model.table_name
|
12
|
+
t.timestamps
|
21
13
|
end
|
22
14
|
end
|
23
15
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module Refinery
|
2
|
+
class ImagesGenerator < Rails::Generators::Base
|
3
|
+
source_root File.expand_path('../templates', __FILE__)
|
4
|
+
|
5
|
+
def generate_images_initializer
|
6
|
+
template "config/initializers/refinery/images.rb.erb", File.join(destination_root, "config", "initializers", "refinery", "images.rb")
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
Refinery::Images.configure do |config|
|
2
|
+
# Configures the maximum allowed upload size (in bytes) for an image
|
3
|
+
# config.max_image_size = <%= Refinery::Images.max_image_size.inspect %>
|
4
|
+
|
5
|
+
# Configure how many images per page should be displayed when a dialog is presented that contains images
|
6
|
+
# config.pages_per_dialog = <%= Refinery::Images.pages_per_dialog.inspect %>
|
7
|
+
|
8
|
+
# Configure how many images per page should be displayed when a dialog is presented that
|
9
|
+
# contains images and image resize options
|
10
|
+
# config.pages_per_dialog_that_have_size_options = <%= Refinery::Images.pages_per_dialog_that_have_size_options.inspect %>
|
11
|
+
|
12
|
+
# Configure how many images per page should be displayed in the list of images in the admin area
|
13
|
+
# config.pages_per_admin_index = <%= Refinery::Images.pages_per_admin_index.inspect %>
|
14
|
+
|
15
|
+
# Configure image sizes
|
16
|
+
# config.user_image_sizes = <%= Refinery::Images.user_image_sizes.inspect %>
|
17
|
+
|
18
|
+
# Configure image view options
|
19
|
+
# config.image_views = <%= Refinery::Images.image_views.inspect %>
|
20
|
+
|
21
|
+
# Configure default image view
|
22
|
+
# config.preferred_image_view = <%= Refinery::Images.preferred_image_view.inspect %>
|
23
|
+
|
24
|
+
# Configure S3 (you can also use ENV for this)
|
25
|
+
# The s3_backend setting by default defers to the core setting for this but can be set just for images.
|
26
|
+
# config.s3_backend = Refinery::Core.s3_backend
|
27
|
+
# config.s3_bucket_name = ENV['S3_BUCKET']
|
28
|
+
# config.s3_access_key_id = ENV['S3_KEY']
|
29
|
+
# config.s3_secret_access_key = ENV['S3_SECRET']
|
30
|
+
# config.s3_region = ENV['S3_REGION]
|
31
|
+
|
32
|
+
# Configure Dragonfly
|
33
|
+
# This is where in the middleware stack to insert the Dragonfly middleware
|
34
|
+
# config.dragonfly_insert_before = <%= Refinery::Images.dragonfly_insert_before.inspect %>
|
35
|
+
# config.dragonfly_secret = <%= Refinery::Images.dragonfly_secret.inspect %>
|
36
|
+
# If you decide to trust file extensions replace :ext below with :format
|
37
|
+
# config.dragonfly_url_format = <%= Refinery::Images.dragonfly_url_format.inspect %>
|
38
|
+
# config.datastore_root_path = <%= Refinery::Images.datastore_root_path.inspect %>
|
39
|
+
# config.trust_file_extensions = <%= Refinery::Images.trust_file_extensions.inspect %>
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'refinerycms-core'
|
2
|
+
require 'dragonfly'
|
3
|
+
require 'rack/cache'
|
4
|
+
|
5
|
+
module Refinery
|
6
|
+
autoload :ImagesGenerator, 'generators/refinery/images/images_generator'
|
7
|
+
|
8
|
+
module Images
|
9
|
+
require 'refinery/images/engine'
|
10
|
+
require 'refinery/images/configuration'
|
11
|
+
|
12
|
+
autoload :Dragonfly, 'refinery/images/dragonfly'
|
13
|
+
autoload :Validators, 'refinery/images/validators'
|
14
|
+
|
15
|
+
class << self
|
16
|
+
def root
|
17
|
+
@root ||= Pathname.new(File.expand_path('../../../', __FILE__))
|
18
|
+
end
|
19
|
+
|
20
|
+
def factory_paths
|
21
|
+
@factory_paths ||= [ root.join("spec/factories").to_s ]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Images
|
3
|
+
include ActiveSupport::Configurable
|
4
|
+
|
5
|
+
config_accessor :dragonfly_insert_before, :dragonfly_secret, :dragonfly_url_format,
|
6
|
+
:max_image_size, :pages_per_dialog, :pages_per_admin_index,
|
7
|
+
:pages_per_dialog_that_have_size_options, :user_image_sizes,
|
8
|
+
:image_views, :preferred_image_view, :datastore_root_path,
|
9
|
+
:s3_backend, :s3_bucket_name, :s3_region,
|
10
|
+
:s3_access_key_id, :s3_secret_access_key, :trust_file_extensions
|
11
|
+
|
12
|
+
self.dragonfly_insert_before = 'ActionDispatch::Callbacks'
|
13
|
+
self.dragonfly_secret = Refinery::Core.dragonfly_secret
|
14
|
+
# If you decide to trust file extensions replace :ext below with :format
|
15
|
+
self.dragonfly_url_format = '/system/images/:job/:basename.:ext'
|
16
|
+
self.trust_file_extensions = false
|
17
|
+
|
18
|
+
self.max_image_size = 5242880
|
19
|
+
self.pages_per_dialog = 18
|
20
|
+
self.pages_per_dialog_that_have_size_options = 12
|
21
|
+
self.pages_per_admin_index = 20
|
22
|
+
self.user_image_sizes = {
|
23
|
+
:small => '110x110>',
|
24
|
+
:medium => '225x255>',
|
25
|
+
:large => '450x450>'
|
26
|
+
}
|
27
|
+
self.image_views = [:grid, :list]
|
28
|
+
self.preferred_image_view = :grid
|
29
|
+
|
30
|
+
# We have to configure these settings after Rails is available.
|
31
|
+
# But a non-nil custom option can still be provided
|
32
|
+
class << self
|
33
|
+
def datastore_root_path
|
34
|
+
config.datastore_root_path || (Rails.root.join('public', 'system', 'refinery', 'images').to_s if Rails.root)
|
35
|
+
end
|
36
|
+
|
37
|
+
def s3_backend
|
38
|
+
config.s3_backend.nil? ? Refinery::Core.s3_backend : config.s3_backend
|
39
|
+
end
|
40
|
+
|
41
|
+
def s3_bucket_name
|
42
|
+
config.s3_bucket_name.nil? ? Refinery::Core.s3_bucket_name : config.s3_bucket_name
|
43
|
+
end
|
44
|
+
|
45
|
+
def s3_access_key_id
|
46
|
+
config.s3_access_key_id.nil? ? Refinery::Core.s3_access_key_id : config.s3_access_key_id
|
47
|
+
end
|
48
|
+
|
49
|
+
def s3_secret_access_key
|
50
|
+
config.s3_secret_access_key.nil? ? Refinery::Core.s3_secret_access_key : config.s3_secret_access_key
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'dragonfly'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
module Images
|
5
|
+
module Dragonfly
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def setup!
|
9
|
+
app_images = ::Dragonfly[:refinery_images]
|
10
|
+
app_images.configure_with(:imagemagick)
|
11
|
+
|
12
|
+
app_images.define_macro(::Refinery::Core::BaseModel, :image_accessor)
|
13
|
+
|
14
|
+
app_images.analyser.register(::Dragonfly::ImageMagick::Analyser)
|
15
|
+
app_images.analyser.register(::Dragonfly::Analysis::FileCommandAnalyser)
|
16
|
+
end
|
17
|
+
|
18
|
+
def configure!
|
19
|
+
app_images = ::Dragonfly[:refinery_images]
|
20
|
+
app_images.configure_with(:rails) do |c|
|
21
|
+
c.datastore.root_path = Refinery::Images.datastore_root_path
|
22
|
+
c.url_format = Refinery::Images.dragonfly_url_format
|
23
|
+
c.secret = Refinery::Images.dragonfly_secret
|
24
|
+
c.trust_file_extensions = Refinery::Images.trust_file_extensions
|
25
|
+
end
|
26
|
+
|
27
|
+
if ::Refinery::Images.s3_backend
|
28
|
+
app_images.datastore = ::Dragonfly::DataStorage::S3DataStore.new
|
29
|
+
app_images.datastore.configure do |s3|
|
30
|
+
s3.bucket_name = Refinery::Images.s3_bucket_name
|
31
|
+
s3.access_key_id = Refinery::Images.s3_access_key_id
|
32
|
+
s3.secret_access_key = Refinery::Images.s3_secret_access_key
|
33
|
+
# S3 Region otherwise defaults to 'us-east-1'
|
34
|
+
s3.region = Refinery::Images.s3_region if Refinery::Images.s3_region
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def attach!(app)
|
40
|
+
### Extend active record ###
|
41
|
+
app.config.middleware.insert_before Refinery::Resources.dragonfly_insert_before,
|
42
|
+
'Dragonfly::Middleware', :refinery_images
|
43
|
+
|
44
|
+
app.config.middleware.insert_before 'Dragonfly::Middleware', 'Rack::Cache', {
|
45
|
+
:verbose => Rails.env.development?,
|
46
|
+
:metastore => "file:#{Rails.root.join('tmp', 'dragonfly', 'cache', 'meta')}",
|
47
|
+
:entitystore => "file:#{Rails.root.join('tmp', 'dragonfly', 'cache', 'body')}"
|
48
|
+
}
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Images
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
include Refinery::Engine
|
5
|
+
|
6
|
+
isolate_namespace Refinery
|
7
|
+
engine_name :refinery_images
|
8
|
+
|
9
|
+
config.autoload_paths += %W( #{config.root}/lib )
|
10
|
+
|
11
|
+
initializer 'setup-refinery-images-with-dragonfly', :before => :load_config_initializers do |app|
|
12
|
+
::Refinery::Images::Dragonfly.setup!
|
13
|
+
end
|
14
|
+
|
15
|
+
initializer 'attach-refinery-images-with-dragonfly', :after => :load_config_initializers do |app|
|
16
|
+
::Refinery::Images::Dragonfly.configure!
|
17
|
+
::Refinery::Images::Dragonfly.attach!(app)
|
18
|
+
end
|
19
|
+
|
20
|
+
initializer "register refinery_images plugin" do
|
21
|
+
Refinery::Plugin.register do |plugin|
|
22
|
+
plugin.pathname = root
|
23
|
+
plugin.name = 'refinery_images'
|
24
|
+
plugin.version = %q{2.0.0}
|
25
|
+
plugin.menu_match = %r{refinery/image(_dialog)?s$}
|
26
|
+
plugin.activity = {
|
27
|
+
:class_name => :'refinery/image'
|
28
|
+
}
|
29
|
+
plugin.url = { :controller => '/refinery/admin/images' }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
config.after_initialize do
|
34
|
+
Refinery.register_extension(Refinery::Images)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Images
|
3
|
+
module Validators
|
4
|
+
class ImageSizeValidator < ActiveModel::Validator
|
5
|
+
|
6
|
+
def validate(record)
|
7
|
+
image = record.image
|
8
|
+
|
9
|
+
if image.respond_to?(:length) && image.length > Images.max_image_size
|
10
|
+
record.errors[:image] << ::I18n.t('too_big',
|
11
|
+
:scope => 'activerecord.errors.models.refinery/image',
|
12
|
+
:size => Images.max_image_size)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/refinerycms-images.rb
CHANGED
@@ -1,76 +1 @@
|
|
1
|
-
require '
|
2
|
-
require 'rack/cache'
|
3
|
-
require 'refinerycms-core'
|
4
|
-
|
5
|
-
module Refinery
|
6
|
-
module Images
|
7
|
-
|
8
|
-
class << self
|
9
|
-
attr_accessor :root
|
10
|
-
def root
|
11
|
-
@root ||= Pathname.new(File.expand_path('../../', __FILE__))
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
class Engine < ::Rails::Engine
|
16
|
-
|
17
|
-
initializer 'serve static assets' do |app|
|
18
|
-
app.middleware.insert_after ::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public"
|
19
|
-
end
|
20
|
-
|
21
|
-
initializer 'images-with-dragonfly' do |app|
|
22
|
-
app_images = Dragonfly[:images]
|
23
|
-
app_images.configure_with(:imagemagick)
|
24
|
-
app_images.configure_with(:rails) do |c|
|
25
|
-
c.datastore.root_path = Rails.root.join('public', 'system', 'images').to_s
|
26
|
-
# This url_format it so that dragonfly urls work in traditional
|
27
|
-
# situations where the filename and extension are required, e.g. lightbox.
|
28
|
-
# What this does is takes the url that is about to be produced e.g.
|
29
|
-
# /system/images/BAhbB1sHOgZmIiMyMDEwLzA5LzAxL1NTQ19DbGllbnRfQ29uZi5qcGdbCDoGcDoKdGh1bWIiDjk0MngzNjAjYw
|
30
|
-
# and adds the filename onto the end (say the image was 'refinery_is_awesome.jpg')
|
31
|
-
# /system/images/BAhbB1sHOgZmIiMyMDEwLzA5LzAxL1NTQ19DbGllbnRfQ29uZi5qcGdbCDoGcDoKdGh1bWIiDjk0MngzNjAjYw/refinery_is_awesome.jpg
|
32
|
-
c.url_format = '/system/images/:job/:basename.:format'
|
33
|
-
c.secret = RefinerySetting.find_or_set(:dragonfly_secret,
|
34
|
-
Array.new(24) { rand(256) }.pack('C*').unpack('H*').first)
|
35
|
-
end
|
36
|
-
|
37
|
-
if Refinery.s3_backend
|
38
|
-
app_images.configure_with(:heroku, ENV['S3_BUCKET'])
|
39
|
-
# Dragonfly doesn't set the S3 region, so we have to do this manually
|
40
|
-
app_images.datastore.configure do |d|
|
41
|
-
d.region = ENV['S3_REGION'] if ENV['S3_REGION'] # otherwise defaults to 'us-east-1'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
app_images.define_macro(ActiveRecord::Base, :image_accessor)
|
46
|
-
app_images.analyser.register(Dragonfly::ImageMagick::Analyser)
|
47
|
-
app_images.analyser.register(Dragonfly::Analysis::FileCommandAnalyser)
|
48
|
-
|
49
|
-
### Extend active record ###
|
50
|
-
|
51
|
-
app.config.middleware.insert_after 'Rack::Lock', 'Dragonfly::Middleware', :images
|
52
|
-
|
53
|
-
app.config.middleware.insert_before 'Dragonfly::Middleware', 'Rack::Cache', {
|
54
|
-
:verbose => Rails.env.development?,
|
55
|
-
:metastore => "file:#{Rails.root.join('tmp', 'dragonfly', 'cache', 'meta')}",
|
56
|
-
:entitystore => "file:#{Rails.root.join('tmp', 'dragonfly', 'cache', 'body')}"
|
57
|
-
}
|
58
|
-
end
|
59
|
-
|
60
|
-
config.after_initialize do
|
61
|
-
::Refinery::Plugin.register do |plugin|
|
62
|
-
plugin.pathname = root
|
63
|
-
plugin.name = 'refinery_images'
|
64
|
-
plugin.directory = 'images'
|
65
|
-
plugin.version = %q{1.0.0}
|
66
|
-
plugin.menu_match = /(refinery|admin)\/image(_dialog)?s$/
|
67
|
-
plugin.activity = {
|
68
|
-
:class => Image
|
69
|
-
}
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
::Refinery.engines << 'dashboard'
|
1
|
+
require 'refinery/images'
|