radiant-assets-extension 0.0.1 → 0.0.2
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/README
CHANGED
@@ -1,5 +1,19 @@
|
|
1
|
-
=
|
1
|
+
= Assets
|
2
2
|
|
3
|
-
|
3
|
+
Provides simple image handling, incl. on-the-fly resizing. Intended as a
|
4
|
+
replacement for paperclipped in the long run, but very barebones right now.
|
4
5
|
|
5
|
-
|
6
|
+
== Radius Tags
|
7
|
+
|
8
|
+
<r:images size="300x" />
|
9
|
+
|
10
|
+
Proportionally resizes an image to 300px width. Supports imagemagick geometry
|
11
|
+
strings to do advanced resizing straight in Radius tags. Resized images are
|
12
|
+
cached in Radiant's built-in cache so they don't have to be re-created on every
|
13
|
+
request.
|
14
|
+
|
15
|
+
== Todo
|
16
|
+
|
17
|
+
- Handling of non-image uploads
|
18
|
+
- Attaching Assets to Pages
|
19
|
+
- Easy/Automatic migration from paperclipped
|
data/app/models/image.rb
CHANGED
data/assets_extension.rb
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
# Uncomment this if you reference any of your controllers in activate
|
2
2
|
# require_dependency 'application_controller'
|
3
3
|
require 'radiant-assets-extension/version'
|
4
|
-
require '
|
4
|
+
require 'radiant-assets-extension/s3_store'
|
5
5
|
|
6
6
|
class AssetsExtension < Radiant::Extension
|
7
7
|
version RadiantAssetsExtension::VERSION
|
8
|
-
description
|
9
|
-
url
|
8
|
+
description 'Simple asset management (images and other uploads) for Radiant.'
|
9
|
+
url 'http://ext.radiantcms.org/extensions/269-assets'
|
10
10
|
|
11
11
|
extension_config do |config|
|
12
12
|
path = '/assets'
|
13
13
|
dragonfly = Dragonfly[:assets]
|
14
14
|
dragonfly.configure_with(:imagemagick)
|
15
15
|
dragonfly.configure_with(:rails)
|
16
|
-
dragonfly.url_path_prefix = path
|
17
16
|
dragonfly.define_macro(ActiveRecord::Base, :image_accessor)
|
17
|
+
dragonfly.url_path_prefix = path
|
18
|
+
if RadiantAssetsExtension::S3Store.enabled?
|
19
|
+
dragonfly.datastore = RadiantAssetsExtension::S3Store.new
|
20
|
+
end
|
21
|
+
|
18
22
|
config.middleware.insert_after 'Rack::Lock', 'Dragonfly::Middleware', :assets, path
|
19
23
|
end
|
20
24
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'dragonfly'
|
2
|
+
|
3
|
+
module RadiantAssetsExtension
|
4
|
+
# Subclass that allows connecting to S3 regions other than US-Standard
|
5
|
+
class S3Store < Dragonfly::DataStorage::S3DataStore
|
6
|
+
def self.enabled?
|
7
|
+
Radiant::Config['assets.storage'] && Radiant::Config['assets.storage'] == 's3'
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.region_hosts
|
11
|
+
{
|
12
|
+
'us-east-1' => 's3.amazonaws.com',
|
13
|
+
'us-west-1' => 's3-us-west-1.amazonaws.com',
|
14
|
+
'eu-west-1' => 's3-eu-west-1.amazonaws.com',
|
15
|
+
'ap-southeast-1' => 's3-ap-southeast-1.amazonaws.com'
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
DEFAULT_BUCKET_NAME = 'radiant-assets-extension'
|
20
|
+
|
21
|
+
def initialize(opts={})
|
22
|
+
# HACK: AWS::S3 doesn't support S3 international regions properly
|
23
|
+
# https://github.com/marcel/aws-s3/issues#issue/4/comment/411302
|
24
|
+
# we monkey-patch the default host
|
25
|
+
AWS::S3::DEFAULT_HOST.replace Radiant::Config['s3.host'] || self.class.s3_region_hosts['us-east-1']
|
26
|
+
super({
|
27
|
+
:bucket_name => Radiant::Config['s3.bucket'] || DEFAULT_BUCKET_NAME,
|
28
|
+
:access_key_id => Radiant::Config['s3.key'],
|
29
|
+
:secret_access_key => Radiant::Config['s3.secret']
|
30
|
+
}.merge(opts))
|
31
|
+
end
|
32
|
+
|
33
|
+
def connect!
|
34
|
+
AWS::S3::Base.establish_connection!(
|
35
|
+
:server => "#{bucket_name}.s3.amazonaws.com",
|
36
|
+
:access_key_id => access_key_id,
|
37
|
+
:secret_access_key => secret_access_key
|
38
|
+
)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
namespace :radiant do
|
2
2
|
namespace :extensions do
|
3
|
-
namespace :
|
3
|
+
namespace :assets do
|
4
4
|
|
5
5
|
desc "Runs the migration of the Images extension"
|
6
6
|
task :migrate => :environment do
|
7
7
|
require 'radiant/extension_migrator'
|
8
8
|
if ENV["VERSION"]
|
9
|
-
|
9
|
+
AssetsExtension.migrator.migrate(ENV["VERSION"].to_i)
|
10
10
|
Rake::Task['db:schema:dump'].invoke
|
11
11
|
else
|
12
|
-
|
12
|
+
AssetsExtension.migrator.migrate
|
13
13
|
Rake::Task['db:schema:dump'].invoke
|
14
14
|
end
|
15
15
|
end
|
@@ -18,17 +18,17 @@ namespace :radiant do
|
|
18
18
|
task :update => :environment do
|
19
19
|
is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) }
|
20
20
|
puts "Copying assets from ImagesExtension"
|
21
|
-
Dir[
|
22
|
-
path = file.sub(
|
21
|
+
Dir[AssetsExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file|
|
22
|
+
path = file.sub(AssetsExtension.root, '')
|
23
23
|
directory = File.dirname(path)
|
24
24
|
mkdir_p RAILS_ROOT + directory, :verbose => false
|
25
25
|
cp file, RAILS_ROOT + path, :verbose => false
|
26
26
|
end
|
27
|
-
unless
|
27
|
+
unless AssetsExtension.root.starts_with? RAILS_ROOT # don't need to copy vendored tasks
|
28
28
|
puts "Copying rake tasks from ImagesExtension"
|
29
29
|
local_tasks_path = File.join(RAILS_ROOT, %w(lib tasks))
|
30
30
|
mkdir_p local_tasks_path, :verbose => false
|
31
|
-
Dir[File.join
|
31
|
+
Dir[File.join AssetsExtension.root, %w(lib tasks *.rake)].each do |file|
|
32
32
|
cp file, local_tasks_path, :verbose => false
|
33
33
|
end
|
34
34
|
end
|
@@ -37,7 +37,7 @@ namespace :radiant do
|
|
37
37
|
desc "Syncs all available translations for this ext to the English ext master"
|
38
38
|
task :sync => :environment do
|
39
39
|
# The main translation root, basically where English is kept
|
40
|
-
language_root =
|
40
|
+
language_root = AssetsExtension.root + "/config/locales"
|
41
41
|
words = TranslationSupport.get_translation_keys(language_root)
|
42
42
|
|
43
43
|
Dir["#{language_root}/*.yml"].each do |filename|
|
@@ -52,4 +52,4 @@ namespace :radiant do
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
55
|
-
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radiant-assets-extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gerrit Kaiser
|
@@ -81,8 +81,9 @@ files:
|
|
81
81
|
- features/support/env.rb
|
82
82
|
- features/support/paths.rb
|
83
83
|
- lib/radiant-assets-extension.rb
|
84
|
+
- lib/radiant-assets-extension/s3_store.rb
|
84
85
|
- lib/radiant-assets-extension/version.rb
|
85
|
-
- lib/tasks/
|
86
|
+
- lib/tasks/assets_extension_tasks.rake
|
86
87
|
- public/stylesheets/admin/extensions/assets/assets.css
|
87
88
|
- radiant-assets-extension.gemspec
|
88
89
|
- spec/spec.opts
|
@@ -91,7 +92,7 @@ has_rdoc: true
|
|
91
92
|
homepage: http://ext.radiantcms.org/extensions/269-assets
|
92
93
|
licenses: []
|
93
94
|
|
94
|
-
post_install_message: "\n Add this to your radiant project with:\n config.gem 'radiant-assets-extension', :version => '0.0.
|
95
|
+
post_install_message: "\n Add this to your radiant project with:\n config.gem 'radiant-assets-extension', :version => '0.0.2'\n "
|
95
96
|
rdoc_options: []
|
96
97
|
|
97
98
|
require_paths:
|