paperclip-qiniu 0.0.3 → 0.1.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/Gemfile.lock +1 -1
- data/README.md +16 -1
- data/lib/paperclip-qiniu.rb +2 -0
- data/lib/paperclip-qiniu/version.rb +1 -1
- data/lib/paperclip/qiniu.rb +1 -0
- data/lib/paperclip/qiniu/action_view_extensions/qiniu_image_path.rb +34 -0
- data/lib/paperclip/qiniu/action_view_extensions/qiniu_image_tag.rb +31 -0
- metadata +4 -1
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -43,11 +43,21 @@ for more information on `qiniu_host`, read http://docs.qiniutek.com/v2/sdk/ruby/
|
|
43
43
|
```ruby
|
44
44
|
class Image < ActiveRecord::Base
|
45
45
|
attr_accessible :file
|
46
|
-
has_attached_file :file, :
|
46
|
+
has_attached_file :file, :path => ":class/:attachment/:id/:basename.:extension"
|
47
47
|
validates :file, :attachment_presence => true
|
48
48
|
end
|
49
49
|
```
|
50
50
|
|
51
|
+
* show image in your view
|
52
|
+
|
53
|
+
```erb
|
54
|
+
<%= qiniu_image_tag @image.file.url, :thumbnail => '300x300>', :quality => 80 %>
|
55
|
+
or
|
56
|
+
<%= image_tag qiniu_image_path(@image.file.url, :thumbnail => '300x300>', :quality => 80) %>
|
57
|
+
```
|
58
|
+
|
59
|
+
support options: `thumbnail`, `gravity`, `crop`, `quality`, `rotate`, `format`, `auto_orient`. for more information on these options, check the document: http://docs.qiniutek.com/v3/api/foimg/#fo-imageMogr
|
60
|
+
|
51
61
|
## Contributing
|
52
62
|
|
53
63
|
1. Fork it
|
@@ -58,6 +68,11 @@ end
|
|
58
68
|
|
59
69
|
## CHANGELOG
|
60
70
|
|
71
|
+
### 0.1.0 (2012-09-06)
|
72
|
+
|
73
|
+
* add view helper: qiniu_image_tag, qiniu_image_path
|
74
|
+
* update demo code, style is no longer needed.
|
75
|
+
|
61
76
|
### 0.0.3 (2012-09-06)
|
62
77
|
|
63
78
|
* support qiniu api v3.
|
data/lib/paperclip-qiniu.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
require 'paperclip-qiniu'
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Paperclip
|
2
|
+
module Qiniu
|
3
|
+
module ActionViewExtensions
|
4
|
+
module QiniuImagePath
|
5
|
+
def qiniu_image_path(source, options={})
|
6
|
+
options = options.clone
|
7
|
+
thumbnail = options.delete(:thumbnail)
|
8
|
+
gravity = options.delete(:gravity)
|
9
|
+
crop = options.delete(:crop)
|
10
|
+
quality = options.delete(:quality)
|
11
|
+
rotate = options.delete(:rotate)
|
12
|
+
format = options.delete(:format)
|
13
|
+
auto_orient = options.delete(:auto_orient)
|
14
|
+
res = source
|
15
|
+
res += "?imageMogr"
|
16
|
+
res += "/thumbnail/#{CGI.escape thumbnail}" if thumbnail
|
17
|
+
res += "/gravity/#{CGI.escape gravity}" if gravity
|
18
|
+
res += "/crop/#{CGI.escape crop}" if crop
|
19
|
+
res += "/quality/#{CGI.escape quality.to_s}" if quality
|
20
|
+
res += "/rotate/#{CGI.escape rotate.to_s}" if rotate
|
21
|
+
res += "/format/#{CGI.escape format.to_s}" if format
|
22
|
+
res += "/auto-orient" if auto_orient
|
23
|
+
if res.end_with? '?imageMogr'
|
24
|
+
source
|
25
|
+
else
|
26
|
+
res
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
ActionView::Base.send :include, Paperclip::Qiniu::ActionViewExtensions::QiniuImagePath
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Paperclip
|
2
|
+
module Qiniu
|
3
|
+
module ActionViewExtensions
|
4
|
+
module QiniuImageTag
|
5
|
+
def qiniu_image_tag(source, options={})
|
6
|
+
options.symbolize_keys!
|
7
|
+
|
8
|
+
src = path_to_image(source)
|
9
|
+
options[:src] = qiniu_image_path(src, options)
|
10
|
+
|
11
|
+
unless src =~ /^(?:cid|data):/ || src.blank?
|
12
|
+
options[:alt] = options.fetch(:alt){ image_alt(src) }
|
13
|
+
end
|
14
|
+
|
15
|
+
if size = options.delete(:size)
|
16
|
+
options[:width], options[:height] = size.split("x") if size =~ %r{^\d+x\d+$}
|
17
|
+
end
|
18
|
+
|
19
|
+
if mouseover = options.delete(:mouseover)
|
20
|
+
options[:onmouseover] = "this.src='#{path_to_image(mouseover)}'"
|
21
|
+
options[:onmouseout] = "this.src='#{options[:src]}'"
|
22
|
+
end
|
23
|
+
|
24
|
+
tag("img", options)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
ActionView::Base.send :include, Paperclip::Qiniu::ActionViewExtensions::QiniuImageTag
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paperclip-qiniu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -76,6 +76,9 @@ files:
|
|
76
76
|
- lib/paperclip-qiniu.rb
|
77
77
|
- lib/paperclip-qiniu/exceptions.rb
|
78
78
|
- lib/paperclip-qiniu/version.rb
|
79
|
+
- lib/paperclip/qiniu.rb
|
80
|
+
- lib/paperclip/qiniu/action_view_extensions/qiniu_image_path.rb
|
81
|
+
- lib/paperclip/qiniu/action_view_extensions/qiniu_image_tag.rb
|
79
82
|
- lib/paperclip/storage/qiniu.rb
|
80
83
|
- paperclip-qiniu.gemspec
|
81
84
|
- spec/lib/paperclip/storage/qiniu_spec.rb
|