shrine-cloudimage 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +32 -2
- data/lib/shrine/plugins/cloudimage.rb +15 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a276745ba3cbba20a4a04c21cd3920ececf68924ce41583a4be2f2968507eaab
|
4
|
+
data.tar.gz: e3b43a01bfd7013e1469970346536b336dd70c364b0a1e6ae41a5ca63c81a84f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef40813ee89adbffaab70059e4c98d16fa67994d2841f8352782af10eac6516966b4c78216467ad8aa528864bfb3a45a2ca01f55cc7baa478edeee0bc70a4bef
|
7
|
+
data.tar.gz: 8b61a11ac7328fa8ad04d04f3d0f0383a2569e87f8c3e84d61c01f9cc9e69830a1ae6527f39a873e1b4c1429207547fe17013db6e3f860170f9f0b2eb8ce4dcf
|
data/README.md
CHANGED
@@ -10,6 +10,7 @@ Supports Ruby `2.4` and above, `JRuby`, and `TruffleRuby`.
|
|
10
10
|
- [Installation](#installation)
|
11
11
|
- [Configuration](#configuration)
|
12
12
|
- [Usage](#usage)
|
13
|
+
- [Invalidation API](#invalidation-api)
|
13
14
|
- [Development](#development)
|
14
15
|
- [Contributing](#contributing)
|
15
16
|
- [License](#license)
|
@@ -50,8 +51,7 @@ Shrine.plugin :cloudimage, Cloudimage::Client.new(
|
|
50
51
|
)
|
51
52
|
```
|
52
53
|
|
53
|
-
See [`cloudimage`]
|
54
|
-
of available options.
|
54
|
+
See [`cloudimage`][cloudimage] for a list of available options.
|
55
55
|
|
56
56
|
## Usage
|
57
57
|
|
@@ -63,6 +63,33 @@ photo.image.cloudimage_url(w: 300, h: 300, blur: 5)
|
|
63
63
|
# => "https://token.cloudimg.io/v7/https://my-bucket.s3.us-east-1.amazonaws.com/assets/image.jpg?blur=5&h=300&w=300"
|
64
64
|
```
|
65
65
|
|
66
|
+
Cloudimage client can also be accessed directly. This way you can centralize your
|
67
|
+
config in Shrine initializer and reuse it across your codebase:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
uri = Shrine.cloudimage_client.path('/assets/image.png')
|
71
|
+
uri.w(200).h(400).to_url
|
72
|
+
# => "https://token.cloudimg.io/v7/assets/image.png?h=400&w=200"
|
73
|
+
```
|
74
|
+
|
75
|
+
### Invalidation API
|
76
|
+
|
77
|
+
Set `:invalidate` to `true` if you want images to be automatically
|
78
|
+
[purged][invalidation] from Cloudimage on deletion:
|
79
|
+
|
80
|
+
```rb
|
81
|
+
Shrine.plugin :cloudimage, client: { token: 'token', api_key: 'key' }, invalidate: true
|
82
|
+
```
|
83
|
+
|
84
|
+
You can also invalidate all cached transformations of the given image manually with
|
85
|
+
`Shrine::UploadedFile#cloudimage_invalidate`:
|
86
|
+
|
87
|
+
```rb
|
88
|
+
photo.image.cloudimage_invalidate
|
89
|
+
```
|
90
|
+
|
91
|
+
Note that invalidation requires passing the `:api_key` option to your Cloudimage client.
|
92
|
+
|
66
93
|
## Development
|
67
94
|
|
68
95
|
After checking out the repo, run `bundle install` to install dependencies.
|
@@ -78,3 +105,6 @@ are expected to adhere to the
|
|
78
105
|
## License
|
79
106
|
|
80
107
|
[MIT](https://opensource.org/licenses/MIT)
|
108
|
+
|
109
|
+
[invalidation]: https://docs.cloudimage.io/go/cloudimage-documentation-v7/en/caching-acceleration/invalidation-api
|
110
|
+
[cloudimage]: https://github.com/scaleflex/cloudimage-rb
|
@@ -10,7 +10,7 @@ class Shrine
|
|
10
10
|
opts[:client] = ::Cloudimage::Client.new(**opts[:client])
|
11
11
|
end
|
12
12
|
|
13
|
-
uploader.opts[:cloudimage] ||= {}
|
13
|
+
uploader.opts[:cloudimage] ||= { invalidate: false }
|
14
14
|
uploader.opts[:cloudimage].merge!(**opts)
|
15
15
|
|
16
16
|
return if uploader.cloudimage_client
|
@@ -29,11 +29,25 @@ class Shrine
|
|
29
29
|
cloudimage_client.path(url).to_url(**options)
|
30
30
|
end
|
31
31
|
|
32
|
+
def delete
|
33
|
+
super
|
34
|
+
cloudimage_invalidate if cloudimage_invalidate?
|
35
|
+
end
|
36
|
+
|
37
|
+
def cloudimage_invalidate
|
38
|
+
path = URI.parse(cloudimage_url).path
|
39
|
+
cloudimage_client.invalidate_original(path)
|
40
|
+
end
|
41
|
+
|
32
42
|
private
|
33
43
|
|
34
44
|
def cloudimage_client
|
35
45
|
shrine_class.cloudimage_client
|
36
46
|
end
|
47
|
+
|
48
|
+
def cloudimage_invalidate?
|
49
|
+
shrine_class.opts[:cloudimage][:invalidate]
|
50
|
+
end
|
37
51
|
end
|
38
52
|
end
|
39
53
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shrine-cloudimage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Klimo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cloudimage
|