refinerycms-images 4.0.1 → 4.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/app/controllers/refinery/admin/images_controller.rb +2 -1
- data/lib/generators/refinery/images/templates/config/initializers/refinery/images.rb.erb +31 -14
- data/lib/refinery/images.rb +3 -3
- data/lib/refinery/images/configuration.rb +13 -52
- data/lib/refinery/images/engine.rb +2 -2
- data/lib/refinerycms-images.rb +1 -0
- data/refinerycms-images.gemspec +2 -2
- data/spec/factories/image.rb +1 -1
- data/spec/features/refinery/admin/dialog_spec.rb +25 -0
- data/spec/lib/refinery/images/engine_spec.rb +8 -0
- data/spec/models/refinery/image_spec.rb +10 -9
- data/spec/support/shared_contexts/many_images.rb +3 -3
- data/spec/support/shared_contexts/no_images.rb +1 -1
- data/spec/support/shared_contexts/one_image.rb +1 -1
- metadata +12 -18
- metadata.gz.sig +0 -0
- data/lib/refinery/images/dragonfly.rb +0 -68
- data/spec/lib/refinery/images/dragonfly_spec.rb +0 -34
- data/test.html +0 -126
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e530f00ba3ed998c7f43c6d5486baa84c822101a
|
4
|
+
data.tar.gz: 7a93ee66b9add42f2972a6fbcc1cd9fdb13fb184
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 376c8d157b7d636cbda1f5099fd70b45b87cb78e647b18cc4930b0be08ac15eacba056f871b0c0eb7a575d6446a96dca53b0ba78bf6b259d83c96a85a2ff4edc
|
7
|
+
data.tar.gz: ff1d884d7ba504e0ca1c5abc1b0f4e829c9a3d0c2a49cccea06dea8ed9d7cf8a88b4df02295af12351997a7b661af3cbb459410abf03610ab450178e69d95ad9
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
@@ -116,6 +116,7 @@ module Refinery
|
|
116
116
|
@app_dialog = params[:app_dialog].present?
|
117
117
|
@field = params[:field]
|
118
118
|
@update_image = params[:update_image]
|
119
|
+
@image_id = params[:selected_image].to_i if params[:selected_image].present?
|
119
120
|
@thumbnail = params[:thumbnail]
|
120
121
|
@callback = params[:callback]
|
121
122
|
@multiple = params[:multiple]
|
@@ -148,7 +149,7 @@ module Refinery
|
|
148
149
|
|
149
150
|
def permitted_image_params
|
150
151
|
[
|
151
|
-
|
152
|
+
:image, :image_size, :image_title, :image_alt
|
152
153
|
]
|
153
154
|
end
|
154
155
|
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
Refinery::Images.configure do |config|
|
3
|
+
|
4
|
+
# Refinery::Images configuration
|
5
|
+
|
3
6
|
# Configures the maximum allowed upload size (in bytes) for an image
|
4
7
|
# config.max_image_size = <%= Refinery::Images.max_image_size.inspect %>
|
5
8
|
|
@@ -25,24 +28,38 @@ Refinery::Images.configure do |config|
|
|
25
28
|
# Configure default image view
|
26
29
|
# config.preferred_image_view = <%= Refinery::Images.preferred_image_view.inspect %>
|
27
30
|
|
31
|
+
# Configure Dragonfly.
|
32
|
+
# Refer to config/initializers/refinery/dragonfly.rb for the full list of dragonfly configurations which can be used.
|
33
|
+
# This includes all dragonfly config for Dragonfly v 1.1.1
|
34
|
+
|
35
|
+
config.dragonfly_name = :refinery_images
|
36
|
+
# config.dragonfly_verify_urls = <%= Refinery::Images.dragonfly_verify_urls.inspect %>
|
37
|
+
# config.dragonfly_secret = <%= Refinery::Images.dragonfly_secret.inspect %>
|
38
|
+
# config.dragonfly_url_host = <%= Refinery::Images.dragonfly_url_host.inspect %>
|
39
|
+
# config.dragonfly_datastore_root_path = <%= Refinery::Images.dragonfly_datastore_root_path.inspect %>
|
40
|
+
# config.dragonfly_url_format = <%= Refinery::Images.dragonfly_url_format.inspect %>
|
41
|
+
|
42
|
+
|
43
|
+
# Configure Dragonfly custom datastore
|
44
|
+
# The custom_datastore setting by default defers to the Refinery::Images setting for this but can be set just for images.
|
45
|
+
# config.dragonfly_custom_datastore_class = <%= Refinery::Images.dragonfly_custom_datastore_class.inspect %>
|
46
|
+
# config.dragonfly_custom_datastore_opts = <%= Refinery::Images.dragonfly_custom_datastore_opts.inspect %>
|
47
|
+
|
28
48
|
# Configure S3 (you can also use ENV for this)
|
29
|
-
# The
|
30
|
-
# config.
|
49
|
+
# The s3_datastore setting by default defers to the Refinery::Dragonfly setting for this but can be set just for images.
|
50
|
+
# config.s3_datastore = Refinery::Dragonfly.s3_datastore
|
31
51
|
# config.s3_bucket_name = ENV['S3_BUCKET']
|
32
52
|
# config.s3_access_key_id = ENV['S3_KEY']
|
33
53
|
# config.s3_secret_access_key = ENV['S3_SECRET']
|
34
54
|
# config.s3_region = ENV['S3_REGION']
|
35
|
-
|
36
|
-
#
|
37
|
-
# config.
|
38
|
-
config.
|
39
|
-
# config.
|
40
|
-
# config.
|
41
|
-
# config.
|
42
|
-
|
43
|
-
#
|
44
|
-
# The custom_backend setting by default defers to the core setting for this but can be set just for images.
|
45
|
-
# config.custom_backend_class = <%= Refinery::Images.custom_backend_class.inspect %>
|
46
|
-
# config.custom_backend_opts = <%= Refinery::Images.custom_backend_opts.inspect %>
|
55
|
+
#
|
56
|
+
# further S3 configuration options
|
57
|
+
# config.s3_fog_storage_options = <%= Refinery::Images.s3_fog_storage_options.inspect %>
|
58
|
+
# config.s3_root_path = <%= Refinery::Images.s3_root_path.inspect %>
|
59
|
+
# config.s3_storage_path = <%= Refinery::Images.s3_storage_path.inspect %>
|
60
|
+
# config.s3_storage_headers = <%= Refinery::Images.s3_storage_headers.inspect %>
|
61
|
+
# config.s3_url_host = <%= Refinery::Images.s3_url_host.inspect %>
|
62
|
+
# config.s3_url_scheme = <%= Refinery::Images.s3_url_scheme.inspect %>
|
63
|
+
# config.s3_use_iam_profile = <%= Refinery::Images.s3_use_iam_profile.inspect %>
|
47
64
|
|
48
65
|
end
|
data/lib/refinery/images.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'refinerycms-core'
|
2
|
-
require 'dragonfly'
|
2
|
+
require 'refinerycms-dragonfly'
|
3
3
|
|
4
4
|
module Refinery
|
5
5
|
autoload :ImagesGenerator, 'generators/refinery/images/images_generator'
|
6
6
|
|
7
7
|
module Images
|
8
8
|
require 'refinery/images/engine'
|
9
|
+
require 'refinery/dragonfly/extension_configuration'
|
9
10
|
require 'refinery/images/configuration'
|
10
11
|
|
11
|
-
autoload :Dragonfly, 'refinery/images/dragonfly'
|
12
12
|
autoload :Validators, 'refinery/images/validators'
|
13
13
|
|
14
14
|
class << self
|
@@ -25,4 +25,4 @@ end
|
|
25
25
|
|
26
26
|
ActiveSupport.on_load(:active_record) do
|
27
27
|
require 'globalize'
|
28
|
-
end
|
28
|
+
end
|
@@ -1,20 +1,13 @@
|
|
1
1
|
module Refinery
|
2
2
|
module Images
|
3
|
+
|
4
|
+
extend Refinery::Dragonfly::ExtensionConfiguration
|
3
5
|
include ActiveSupport::Configurable
|
4
6
|
|
5
|
-
config_accessor :
|
6
|
-
:max_image_size, :pages_per_dialog, :pages_per_admin_index,
|
7
|
+
config_accessor :max_image_size, :pages_per_dialog, :pages_per_admin_index,
|
7
8
|
:pages_per_dialog_that_have_size_options, :user_image_sizes,
|
8
|
-
:image_views, :preferred_image_view,
|
9
|
-
:
|
10
|
-
:s3_access_key_id, :s3_secret_access_key,
|
11
|
-
:whitelisted_mime_types,
|
12
|
-
:custom_backend_class, :custom_backend_opts
|
13
|
-
|
14
|
-
self.dragonfly_secret = Core.dragonfly_secret
|
15
|
-
self.dragonfly_url_format = '/system/images/:job/:basename.:ext'
|
16
|
-
self.dragonfly_url_host = ''
|
17
|
-
self.dragonfly_verify_urls = true
|
9
|
+
:image_views, :preferred_image_view,
|
10
|
+
:whitelisted_mime_types
|
18
11
|
|
19
12
|
self.max_image_size = 5_242_880
|
20
13
|
self.pages_per_dialog = 18
|
@@ -25,51 +18,19 @@ module Refinery
|
|
25
18
|
:medium => '225x255>',
|
26
19
|
:large => '450x450>'
|
27
20
|
}
|
28
|
-
|
29
21
|
self.whitelisted_mime_types = %w[image/jpeg image/png image/gif image/tiff]
|
30
|
-
|
31
22
|
self.image_views = [:grid, :list]
|
32
23
|
self.preferred_image_view = :grid
|
33
24
|
|
34
|
-
#
|
35
|
-
|
36
|
-
|
37
|
-
def datastore_root_path
|
38
|
-
config.datastore_root_path || (Rails.root.join('public', 'system', 'refinery', 'images').to_s if Rails.root)
|
39
|
-
end
|
40
|
-
|
41
|
-
def s3_backend
|
42
|
-
config.s3_backend.presence || Core.s3_backend
|
43
|
-
end
|
44
|
-
|
45
|
-
def s3_bucket_name
|
46
|
-
config.s3_bucket_name.presence || Core.s3_bucket_name
|
47
|
-
end
|
48
|
-
|
49
|
-
def s3_access_key_id
|
50
|
-
config.s3_access_key_id.presence || Core.s3_access_key_id
|
51
|
-
end
|
52
|
-
|
53
|
-
def s3_secret_access_key
|
54
|
-
config.s3_secret_access_key.presence || Core.s3_secret_access_key
|
55
|
-
end
|
56
|
-
|
57
|
-
def s3_region
|
58
|
-
config.s3_region.presence || Core.s3_region
|
59
|
-
end
|
60
|
-
|
61
|
-
def custom_backend?
|
62
|
-
config.custom_backend_class.nil? ? Core.dragonfly_custom_backend? : config.custom_backend_class.present?
|
63
|
-
end
|
64
|
-
|
65
|
-
def custom_backend_class
|
66
|
-
config.custom_backend_class.nil? ? Core.dragonfly_custom_backend_class : config.custom_backend_class.constantize
|
67
|
-
end
|
25
|
+
# Images should always use these changes to the dragonfly defaults
|
26
|
+
self.dragonfly_name = :refinery_images
|
27
|
+
self.dragonfly_plugin = :imagemagick
|
68
28
|
|
69
|
-
|
70
|
-
|
71
|
-
|
29
|
+
# Dragonfly processor to strip image of all profiles and comments (imagemagick conversion -strip)
|
30
|
+
self.dragonfly_processors = [{
|
31
|
+
name: :strip,
|
32
|
+
block: -> (content) { content.process!(:convert, '-strip') }
|
33
|
+
}]
|
72
34
|
|
73
|
-
end
|
74
35
|
end
|
75
36
|
end
|
@@ -9,8 +9,8 @@ module Refinery
|
|
9
9
|
config.autoload_paths += %W( #{config.root}/lib )
|
10
10
|
|
11
11
|
initializer 'attach-refinery-images-with-dragonfly', :before => :finisher_hook do |app|
|
12
|
-
::Refinery::
|
13
|
-
::Refinery::
|
12
|
+
::Refinery::Dragonfly.configure!(::Refinery::Images)
|
13
|
+
::Refinery::Dragonfly.attach!(app, ::Refinery::Images)
|
14
14
|
end
|
15
15
|
|
16
16
|
before_inclusion do
|
data/lib/refinerycms-images.rb
CHANGED
data/refinerycms-images.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.summary = %q{Images extension for Refinery CMS}
|
11
11
|
s.description = %q{Handles all image upload and processing functionality in Refinery CMS.}
|
12
12
|
s.email = %q{refinerycms@p.arndt.io}
|
13
|
-
s.homepage = %q{
|
13
|
+
s.homepage = %q{https://www.refinerycms.com}
|
14
14
|
s.rubyforge_project = %q{refinerycms}
|
15
15
|
s.authors = ['Philip Arndt', 'Uģis Ozols', 'Rob Yurkowski']
|
16
16
|
s.license = %q{MIT}
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = `git ls-files`.split("\n")
|
20
20
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
21
21
|
|
22
|
-
s.add_dependency 'dragonfly',
|
22
|
+
s.add_dependency 'refinerycms-dragonfly', '~> 1.0'
|
23
23
|
s.add_dependency 'globalize', ['>= 5.1.0.beta1', '< 5.2']
|
24
24
|
s.add_dependency 'activemodel-serializers-xml', '~> 1.0', '>= 1.0.1'
|
25
25
|
s.add_dependency 'refinerycms-core', version
|
data/spec/factories/image.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
describe "dialog", :type => :feature do
|
5
|
+
refinery_login
|
6
|
+
|
7
|
+
context 'When there are many images' do
|
8
|
+
include_context 'many images'
|
9
|
+
|
10
|
+
it "does not have selected an image" do
|
11
|
+
visit refinery.insert_admin_images_path
|
12
|
+
|
13
|
+
expect(page).to_not have_selector("li[class='selected']")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "only selects the provided image" do
|
17
|
+
visit refinery.insert_admin_images_path(selected_image: image.id)
|
18
|
+
|
19
|
+
expect(page).to have_selector("li[class='selected'] img[data-id='#{image.id}']")
|
20
|
+
expect(page).to_not have_selector("li[class='selected'] img[data-id='#{alt_image.id}']")
|
21
|
+
expect(page).to_not have_selector("li[class='selected'] img[data-id='#{another_image.id}']")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,14 +1,15 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'uri'
|
2
3
|
|
3
4
|
module Refinery
|
4
5
|
describe Image, :type => :model do
|
5
6
|
|
6
|
-
let(:image) {
|
7
|
-
let(:created_image) {
|
8
|
-
let(:titled_image) {
|
9
|
-
let(:image_with_alt_text) {
|
10
|
-
let(:image_with_sha) {
|
11
|
-
let(:image_without_sha) {
|
7
|
+
let(:image) { FactoryBot.build(:image) }
|
8
|
+
let(:created_image) { FactoryBot.create(:image) }
|
9
|
+
let(:titled_image) { FactoryBot.create(:image, image_title: 'Image Title')}
|
10
|
+
let(:image_with_alt_text) { FactoryBot.create(:image, image_alt: 'Alt Text')}
|
11
|
+
let(:image_with_sha) {FactoryBot.create(:image)}
|
12
|
+
let(:image_without_sha) {FactoryBot.create(:image)}
|
12
13
|
|
13
14
|
describe "validations" do
|
14
15
|
describe "valid #image" do
|
@@ -71,8 +72,8 @@ module Refinery
|
|
71
72
|
expect(image).to respond_to(:thumbnail)
|
72
73
|
end
|
73
74
|
|
74
|
-
it "contains its filename
|
75
|
-
expect(created_image.url
|
75
|
+
it "contains its filename" do
|
76
|
+
expect(File.basename(URI.parse(created_image.url).path)).to match(/\A#{created_image.image_name}/)
|
76
77
|
end
|
77
78
|
|
78
79
|
it "becomes different when supplying geometry" do
|
@@ -201,7 +202,7 @@ module Refinery
|
|
201
202
|
end
|
202
203
|
|
203
204
|
describe '#thumbnail_dimensions returns correctly with' do
|
204
|
-
let(:created_alternate_image) {
|
205
|
+
let(:created_alternate_image) { FactoryBot.create(:alternate_image) }
|
205
206
|
|
206
207
|
it 'nil' do
|
207
208
|
expect(created_alternate_image.thumbnail_dimensions(nil)).to eq({ :width => 376, :height => 184 })
|
@@ -1,5 +1,5 @@
|
|
1
1
|
shared_context 'many images' do
|
2
|
-
let!(:image) {
|
3
|
-
let!(:alt_image) {
|
4
|
-
let!(:another_image) {
|
2
|
+
let!(:image) { FactoryBot.create(:image) }
|
3
|
+
let!(:alt_image) { FactoryBot.create(:alternate_image) }
|
4
|
+
let!(:another_image) { FactoryBot.create(:another_image) }
|
5
5
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-images
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Arndt
|
@@ -32,28 +32,22 @@ cert_chain:
|
|
32
32
|
jOQmH9VbgbfUrXYM1YOKdlwW5sPR1f4PKLDlvEE+bppIUgKOgLOIv3i7KwrGvFOq
|
33
33
|
5r7Wz/HY31SM47mkK21saPJG4NvUFEycf0wlpzP657Pl9aVo47aKKbxX
|
34
34
|
-----END CERTIFICATE-----
|
35
|
-
date:
|
35
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
36
36
|
dependencies:
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name: dragonfly
|
38
|
+
name: refinerycms-dragonfly
|
39
39
|
requirement: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - "~>"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '1.
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 1.1.0
|
43
|
+
version: '1.0'
|
47
44
|
type: :runtime
|
48
45
|
prerelease: false
|
49
46
|
version_requirements: !ruby/object:Gem::Requirement
|
50
47
|
requirements:
|
51
48
|
- - "~>"
|
52
49
|
- !ruby/object:Gem::Version
|
53
|
-
version: '1.
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: 1.1.0
|
50
|
+
version: '1.0'
|
57
51
|
- !ruby/object:Gem::Dependency
|
58
52
|
name: globalize
|
59
53
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,14 +94,14 @@ dependencies:
|
|
100
94
|
requirements:
|
101
95
|
- - '='
|
102
96
|
- !ruby/object:Gem::Version
|
103
|
-
version: 4.0.
|
97
|
+
version: 4.0.2
|
104
98
|
type: :runtime
|
105
99
|
prerelease: false
|
106
100
|
version_requirements: !ruby/object:Gem::Requirement
|
107
101
|
requirements:
|
108
102
|
- - '='
|
109
103
|
- !ruby/object:Gem::Version
|
110
|
-
version: 4.0.
|
104
|
+
version: 4.0.2
|
111
105
|
description: Handles all image upload and processing functionality in Refinery CMS.
|
112
106
|
email: refinerycms@p.arndt.io
|
113
107
|
executables: []
|
@@ -172,7 +166,6 @@ files:
|
|
172
166
|
- lib/generators/refinery/images/templates/config/initializers/refinery/images.rb.erb
|
173
167
|
- lib/refinery/images.rb
|
174
168
|
- lib/refinery/images/configuration.rb
|
175
|
-
- lib/refinery/images/dragonfly.rb
|
176
169
|
- lib/refinery/images/engine.rb
|
177
170
|
- lib/refinery/images/validators.rb
|
178
171
|
- lib/refinery/images/validators/image_size_validator.rb
|
@@ -181,6 +174,7 @@ files:
|
|
181
174
|
- license.md
|
182
175
|
- refinerycms-images.gemspec
|
183
176
|
- spec/factories/image.rb
|
177
|
+
- spec/features/refinery/admin/dialog_spec.rb
|
184
178
|
- spec/features/refinery/admin/images_spec.rb
|
185
179
|
- spec/fixtures/beach-alternate.jpeg
|
186
180
|
- spec/fixtures/beach.jpeg
|
@@ -188,7 +182,7 @@ files:
|
|
188
182
|
- spec/fixtures/fathead.png
|
189
183
|
- spec/fixtures/image-with-dashes.jpg
|
190
184
|
- spec/lib/generators/refinery/images/images_generator_spec.rb
|
191
|
-
- spec/lib/refinery/images/
|
185
|
+
- spec/lib/refinery/images/engine_spec.rb
|
192
186
|
- spec/models/refinery/image_spec.rb
|
193
187
|
- spec/models/refinery/thumbnail_dimensions_spec.rb
|
194
188
|
- spec/support/shared_contexts/admin_images_tab.rb
|
@@ -204,8 +198,7 @@ files:
|
|
204
198
|
- spec/support/shared_examples/image_translator.rb
|
205
199
|
- spec/support/shared_examples/image_uploader.rb
|
206
200
|
- spec/support/spec_helper.rb
|
207
|
-
|
208
|
-
homepage: http://refinerycms.com
|
201
|
+
homepage: https://www.refinerycms.com
|
209
202
|
licenses:
|
210
203
|
- MIT
|
211
204
|
metadata: {}
|
@@ -231,6 +224,7 @@ specification_version: 4
|
|
231
224
|
summary: Images extension for Refinery CMS
|
232
225
|
test_files:
|
233
226
|
- spec/factories/image.rb
|
227
|
+
- spec/features/refinery/admin/dialog_spec.rb
|
234
228
|
- spec/features/refinery/admin/images_spec.rb
|
235
229
|
- spec/fixtures/beach-alternate.jpeg
|
236
230
|
- spec/fixtures/beach.jpeg
|
@@ -238,7 +232,7 @@ test_files:
|
|
238
232
|
- spec/fixtures/fathead.png
|
239
233
|
- spec/fixtures/image-with-dashes.jpg
|
240
234
|
- spec/lib/generators/refinery/images/images_generator_spec.rb
|
241
|
-
- spec/lib/refinery/images/
|
235
|
+
- spec/lib/refinery/images/engine_spec.rb
|
242
236
|
- spec/models/refinery/image_spec.rb
|
243
237
|
- spec/models/refinery/thumbnail_dimensions_spec.rb
|
244
238
|
- spec/support/shared_contexts/admin_images_tab.rb
|
metadata.gz.sig
CHANGED
Binary file
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'dragonfly'
|
2
|
-
|
3
|
-
module Refinery
|
4
|
-
module Images
|
5
|
-
module Dragonfly
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def configure!
|
9
|
-
ActiveRecord::Base.extend ::Dragonfly::Model
|
10
|
-
ActiveRecord::Base.extend ::Dragonfly::Model::Validations
|
11
|
-
|
12
|
-
app_images = ::Dragonfly.app(:refinery_images)
|
13
|
-
|
14
|
-
app_images.configure do
|
15
|
-
plugin :imagemagick
|
16
|
-
datastore :file, {
|
17
|
-
:root_path => Refinery::Images.datastore_root_path
|
18
|
-
}
|
19
|
-
url_format Refinery::Images.dragonfly_url_format
|
20
|
-
url_host Refinery::Images.dragonfly_url_host
|
21
|
-
verify_urls Refinery::Images.dragonfly_verify_urls
|
22
|
-
if Refinery::Images.dragonfly_verify_urls
|
23
|
-
secret Refinery::Images.dragonfly_secret
|
24
|
-
end
|
25
|
-
dragonfly_url nil
|
26
|
-
processor :strip do |content|
|
27
|
-
content.process!(:convert, '-strip')
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
if ::Refinery::Images.s3_backend
|
32
|
-
require 'dragonfly/s3_data_store'
|
33
|
-
options = {
|
34
|
-
bucket_name: Refinery::Images.s3_bucket_name,
|
35
|
-
access_key_id: Refinery::Images.s3_access_key_id,
|
36
|
-
secret_access_key: Refinery::Images.s3_secret_access_key
|
37
|
-
}
|
38
|
-
# S3 Region otherwise defaults to 'us-east-1'
|
39
|
-
options.update(region: Refinery::Images.s3_region) if Refinery::Images.s3_region
|
40
|
-
app_images.use_datastore :s3, options
|
41
|
-
end
|
42
|
-
|
43
|
-
if Images.custom_backend?
|
44
|
-
app_images.datastore = Images.custom_backend_class.new(Images.custom_backend_opts)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
##
|
49
|
-
# Injects Dragonfly::Middleware for Refinery::Images into the stack
|
50
|
-
def attach!(app)
|
51
|
-
if defined?(::Rack::Cache)
|
52
|
-
unless app.config.action_controller.perform_caching && app.config.action_dispatch.rack_cache
|
53
|
-
app.config.middleware.insert 0, ::Rack::Cache, {
|
54
|
-
verbose: true,
|
55
|
-
metastore: URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/meta"), # URI encoded in case of spaces
|
56
|
-
entitystore: URI.encode("file:#{Rails.root}/tmp/dragonfly/cache/body")
|
57
|
-
}
|
58
|
-
end
|
59
|
-
app.config.middleware.insert_after ::Rack::Cache, ::Dragonfly::Middleware, :refinery_images
|
60
|
-
else
|
61
|
-
app.config.middleware.use ::Dragonfly::Middleware, :refinery_images
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Refinery
|
4
|
-
|
5
|
-
describe Dragonfly do
|
6
|
-
def configure_dragonfly(name, verify)
|
7
|
-
app = ::Dragonfly.app(name)
|
8
|
-
|
9
|
-
app.configure do
|
10
|
-
verify_urls verify
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
context 'when verify_urls is true' do
|
15
|
-
before do
|
16
|
-
configure_dragonfly(:app1, true)
|
17
|
-
end
|
18
|
-
it 'it is reflected in the dragonfly configuration' do
|
19
|
-
expect(Dragonfly.app(:app1).server.verify_urls).to be(true)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context 'when verify_urls is false' do
|
24
|
-
before do
|
25
|
-
configure_dragonfly(:app2, false)
|
26
|
-
end
|
27
|
-
it 'it is reflected in the dragonfly configuration' do
|
28
|
-
expect(Dragonfly.app(:app2).server.verify_urls).to be(false)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
data/test.html
DELETED
@@ -1,126 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
|
3
|
-
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
|
4
|
-
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
|
5
|
-
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
|
6
|
-
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
|
7
|
-
<!--[if (gt IE 9)|!(IE)]><!-->
|
8
|
-
<html lang="en" class="no-js">
|
9
|
-
<!--<![endif]-->
|
10
|
-
|
11
|
-
<head>
|
12
|
-
<meta charset='utf-8' />
|
13
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
14
|
-
<meta refinerycms='3.0.0' />
|
15
|
-
<title>Company Name - Refinery</title>
|
16
|
-
|
17
|
-
<link rel="stylesheet" media="screen" href="/assets/refinery/refinery.css" />
|
18
|
-
<link rel="stylesheet" media="screen" href="/assets/wymeditor.css" />
|
19
|
-
<link rel="stylesheet" media="screen" href="/assets/wymeditor/skins/refinery/skin.css" />
|
20
|
-
|
21
|
-
<script type="text/javascript" >
|
22
|
-
var refinery = window.refinery || {};
|
23
|
-
refinery.current_admin_locale = 'en';
|
24
|
-
</script>
|
25
|
-
<script src="/assets/admin.js"></script><script src="/assets/refinery/refinery.js"></script><script src="/assets/refinery/application.js"></script>
|
26
|
-
<script src="/assets/refi
|
27
|
-
nery/wymeditor.js"></script>
|
28
|
-
<script src="/assets/wymeditor/lang/en.js"></script>
|
29
|
-
<script src="/assets/wymeditor/skins/refinery/skin.js"></script>
|
30
|
-
|
31
|
-
</head>
|
32
|
-
|
33
|
-
<body class="index en">
|
34
|
-
<div id='site_bar'>
|
35
|
-
<div id='site_bar_content' class='clearfix'>
|
36
|
-
|
37
|
-
<div id='editor_switch'>
|
38
|
-
<a data-turbolinks="false" href="/">Switch to your website</a>
|
39
|
-
</div>
|
40
|
-
|
41
|
-
<a id="site_bar_refinery_cms_logo" target="_blank" href="http://refinerycms.com"> <span>Refinery CMS™</span> </a>
|
42
|
-
<div id='site_bar_branding'>
|
43
|
-
<span id='site_bar_company_name'> Company Name </span>
|
44
|
-
|
45
|
-
<a id="logout" href="/refinery/logout">Log out</a>
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
</div>
|
49
|
-
|
50
|
-
<div id='tooltip_container'></div>
|
51
|
-
<div id="admin_container" class="clearfix">
|
52
|
-
<header id="header">
|
53
|
-
<nav id="menu">
|
54
|
-
<a id="plugin_refinery_users" href="/refinery/users">Users</a>
|
55
|
-
<a class="active" id="plugin_refinery_images" href="/refinery/images">Images</a>
|
56
|
-
<a id="plugin_refinery_files" href="/refinery/resources">Files</a>
|
57
|
-
<a id="plugin_refinery_pages" href="/refinery/pages">Pages</a>
|
58
|
-
|
59
|
-
<a id="menu_reorder" title="Reorder menu" class=" reorder_icon" href=""></a>
|
60
|
-
<a id="menu_reorder_done" title="i18n: Reorder Done" class=" reorder_done_icon hidden" href=""></a>
|
61
|
-
|
62
|
-
</nav>
|
63
|
-
|
64
|
-
</header>
|
65
|
-
<div id="page_container">
|
66
|
-
<div id="page">
|
67
|
-
<div id="content" class="clearfix">
|
68
|
-
<div id="flash_container">
|
69
|
-
<noscript>
|
70
|
-
<div class='flash flash_error'>
|
71
|
-
For full functionality of this page it is necessary to enable JavaScript.
|
72
|
-
Here are the
|
73
|
-
<a target="_blank" href="http://www.enable-javascript.com">instructions for how to enable JavaScript in your web browser</a>
|
74
|
-
</div>
|
75
|
-
</noscript>
|
76
|
-
|
77
|
-
</div>
|
78
|
-
<section id="records" class="images">
|
79
|
-
|
80
|
-
<div class="pagination_container">
|
81
|
-
|
82
|
-
<div class="clearfix pagination_frame frame_center">
|
83
|
-
<h3>March 04, 2015</h3>
|
84
|
-
<ul class='images_list'>
|
85
|
-
<li id="sortable_1" class="clearfix record on">
|
86
|
-
<span class="title"> Beach </span>
|
87
|
-
<span class='alt'> <a title="Title: Beach Alt text: Beach" class=" info_icon" href="#"></a> </span>
|
88
|
-
|
89
|
-
<span class="preview"> </span>
|
90
|
-
<span class="actions"> <a title="View this image <br/><em>Opens in a new window</em>" class=" preview_icon" target="_blank" href="/system/images/W1siZiIsIjIwMTUvMDMvMDQvNmhleWpqcDJvZF9iZWFjaC5q
|
91
|
-
cGVnIl1d/beach.jpeg?sha=9fd966feb5fd57e4"></a> <a title="Edit this image" class=" edit_icon" href="/refinery/images/1/edit"></a> <a data-confirm="Are you sure you want to remove 'Beach'?" title="Remove this image forever" class=" delete_icon cancel confirm-delete" rel="nofollow" data-method
|
92
|
-
="delete" href="/refinery/images/1"></a> </span>
|
93
|
-
</li>
|
94
|
-
|
95
|
-
</ul>
|
96
|
-
</div>
|
97
|
-
|
98
|
-
</div>
|
99
|
-
|
100
|
-
</section>
|
101
|
-
<section id="actions">
|
102
|
-
<ul>
|
103
|
-
<li>
|
104
|
-
<form method='GET' action='/refinery/images' class='search_form'>
|
105
|
-
<input id="search" type="search" name="search" title="Put here a string of at least 3 characters containing what you are looking for." />
|
106
|
-
|
107
|
-
<input type="submit" value="Search" />
|
108
|
-
</form>
|
109
|
-
|
110
|
-
</li>
|
111
|
-
<li>
|
112
|
-
<a title="Add new image" class=" add_icon" href="/refinery/images/new?dialog=true">Add new image</a>
|
113
|
-
</li>
|
114
|
-
<li>
|
115
|
-
<a title="Switch to grid view" class=" switch_view_grid_icon" href="/refinery/images?view=grid">Switch to grid view</a>
|
116
|
-
</li>
|
117
|
-
</ul>
|
118
|
-
|
119
|
-
</section>
|
120
|
-
|
121
|
-
</div>
|
122
|
-
</div>
|
123
|
-
</div>
|
124
|
-
</div>
|
125
|
-
</body>
|
126
|
-
</html>
|