Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
0e8ac8c4
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
0e8ac8c4
编写于
12月 22, 2017
作者:
E
Eileen M. Uchitelle
提交者:
GitHub
12月 22, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #31544 from mrreynolds/activestorage-combined-minimagick-options
Add support for combined MiniMagick transformations
上级
1389f4b4
7a3a991f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
6 deletion
+30
-6
activestorage/app/models/active_storage/variation.rb
activestorage/app/models/active_storage/variation.rb
+16
-6
activestorage/test/models/variant_test.rb
activestorage/test/models/variant_test.rb
+14
-0
未找到文件。
activestorage/app/models/active_storage/variation.rb
浏览文件 @
0e8ac8c4
...
...
@@ -46,13 +46,15 @@ def initialize(transformations)
# Accepts an open MiniMagick image instance, like what's returned by <tt>MiniMagick::Image.read(io)</tt>,
# and performs the +transformations+ against it. The transformed image instance is then returned.
def
transform
(
image
)
transformations
.
each
do
|
method
,
argument
|
i
mage
.
mogrify
do
|
command
|
i
f
eligible_argument?
(
argument
)
command
.
public_send
(
method
,
argument
)
else
command
.
public_send
(
method
)
transformations
.
each
do
|
(
method
,
argument
)
|
i
f
method
.
to_s
==
"combine_options"
i
mage
.
combine_options
do
|
combination
|
argument
.
each
do
|
(
method
,
argument
)
|
pass_transform_argument
(
combination
,
method
,
argument
)
end
end
else
pass_transform_argument
(
image
,
method
,
argument
)
end
end
end
...
...
@@ -66,4 +68,12 @@ def key
def
eligible_argument?
(
argument
)
argument
.
present?
&&
argument
!=
true
end
def
pass_transform_argument
(
instance
,
method
,
argument
)
if
eligible_argument?
(
argument
)
instance
.
public_send
(
method
,
argument
)
else
instance
.
public_send
(
method
)
end
end
end
activestorage/test/models/variant_test.rb
浏览文件 @
0e8ac8c4
...
...
@@ -25,6 +25,20 @@ class ActiveStorage::VariantTest < ActiveSupport::TestCase
assert_match
(
/Gray/
,
image
.
colorspace
)
end
test
"center-weighted crop of JPEG blob"
do
blob
=
create_file_blob
(
filename:
"racecar.jpg"
)
variant
=
blob
.
variant
(
combine_options:
{
gravity:
"center"
,
resize:
"100x100^"
,
crop:
"100x100+0+0"
,
}).
processed
assert_match
(
/racecar\.jpg/
,
variant
.
service_url
)
image
=
read_image
(
variant
)
assert_equal
100
,
image
.
width
assert_equal
100
,
image
.
height
end
test
"resized variation of PSD blob"
do
blob
=
create_file_blob
(
filename:
"icon.psd"
,
content_type:
"image/vnd.adobe.photoshop"
)
variant
=
blob
.
variant
(
resize:
"20x20"
).
processed
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录