cloudimage 0.3.0 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -2
- data/README.md +35 -19
- data/lib/cloudimage.rb +0 -1
- data/lib/cloudimage/client.rb +1 -0
- data/lib/cloudimage/refinements.rb +24 -0
- data/lib/cloudimage/uri.rb +15 -3
- metadata +2 -3
- data/lib/cloudimage/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72e83343c301b5b791cd7fa5f88593fd3715cfa01d918e6d473aae4376022594
|
4
|
+
data.tar.gz: '059edd8cd34c45bf7226cd876fb10d64d4cefc93059996d6e12f66a0ccc2d96d'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24d09cd09df390e46f6e9e0035ae3df80eb458a2b80c7f6f39d922c21c333063e4abd95302f63a007dc6da289301875b3bd7ec87c2c21daa2d08dd96799d8b29
|
7
|
+
data.tar.gz: 805d1c5b001cebd0deaf230111785284c69e6759e3d64f18d635df832195495a19afa209a1c0fc45484b44dd7ead82edff532747cfec12a8d838851cfc7607fa
|
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [v0.3.0](https://github.com/scaleflex/cloudimage-rb/tree/v0.3.0) (2020-07-09)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/scaleflex/cloudimage-rb/compare/v0.2.1...
|
5
|
+
[Full Changelog](https://github.com/scaleflex/cloudimage-rb/compare/v0.2.1...v0.3.0)
|
6
6
|
|
7
7
|
**Closed issues:**
|
8
8
|
|
9
|
+
- Add URL sealing [\#12](https://github.com/scaleflex/cloudimage-rb/issues/12)
|
9
10
|
- Add automatic changelog generation [\#11](https://github.com/scaleflex/cloudimage-rb/issues/11)
|
10
11
|
|
11
12
|
**Merged pull requests:**
|
12
13
|
|
13
14
|
- Use changelog generation [\#16](https://github.com/scaleflex/cloudimage-rb/pull/16) ([janklimo](https://github.com/janklimo))
|
15
|
+
- Introduce URL sealing [\#10](https://github.com/scaleflex/cloudimage-rb/pull/10) ([janklimo](https://github.com/janklimo))
|
14
16
|
- Add test coverage with SimpleCov [\#9](https://github.com/scaleflex/cloudimage-rb/pull/9) ([janklimo](https://github.com/janklimo))
|
15
17
|
|
16
18
|
## 0.2.1 (2020-06-29)
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# cloudimage
|
2
2
|
|
3
|
-

|
3
|
+
[](https://badge.fury.io/rb/cloudimage) 
|
4
4
|
|
5
5
|
`cloudimage` is the official Ruby API wrapper for
|
6
6
|
[Cloudimage's API](https://docs.cloudimage.io/go/cloudimage-documentation-v7/en/introduction).
|
@@ -12,15 +12,15 @@ Supports Ruby `2.4` and above, `JRuby`, and `TruffleRuby`.
|
|
12
12
|
- [Usage](#usage)
|
13
13
|
- [Hash of params](#hash-of-params)
|
14
14
|
- [Chainable helpers](#chainable-helpers)
|
15
|
-
- [
|
15
|
+
- [Method aliases](#method-aliases)
|
16
16
|
- [Custom helpers](#custom-helpers)
|
17
|
+
- [URL aliases](#url-aliases)
|
17
18
|
- [Security](#security)
|
18
19
|
- [URL signature](#url-signature)
|
19
20
|
- [URL sealing](#url-sealing)
|
20
21
|
- [Development](#development)
|
21
22
|
- [Contributing](#contributing)
|
22
23
|
- [License](#license)
|
23
|
-
- [Code of Conduct](#code-of-conduct)
|
24
24
|
- [Showcase](#showcase)
|
25
25
|
|
26
26
|
## Installation
|
@@ -55,13 +55,13 @@ client = Cloudimage::Client.new(token: 'mysecrettoken')
|
|
55
55
|
|
56
56
|
Cloudimage client accepts the following options:
|
57
57
|
|
58
|
-
| Option | Required? | Additional info |
|
59
|
-
| ------------------ | --------- | --------------------------------------------------- |
|
60
|
-
| `token` | Yes | |
|
61
|
-
| `salt` | No | See [Security](#security). |
|
62
|
-
| `signature_length` | No | Integer value in the range `6..40`. Defaults to 18. |
|
63
|
-
| `
|
64
|
-
| `
|
58
|
+
| Option | Required? | Type | Additional info |
|
59
|
+
| ------------------ | --------- | ------- | --------------------------------------------------- |
|
60
|
+
| `token` | Yes | string | |
|
61
|
+
| `salt` | No | string | See [Security](#security). |
|
62
|
+
| `signature_length` | No | integer | Integer value in the range `6..40`. Defaults to 18. |
|
63
|
+
| `sign_urls` | No | boolean | Defaults to `true`. See [Security](#security). |
|
64
|
+
| `aliases` | No | hash | See [URL aliases](#url-aliases). |
|
65
65
|
|
66
66
|
Calling `path` on the client object returns an instance of `Cloudimage::URI`.
|
67
67
|
It accepts path to the image as a string and we we will use it to build
|
@@ -104,7 +104,7 @@ uri.heigth(200).to_url
|
|
104
104
|
This is useful for catching typos and identifying deprecated methods in
|
105
105
|
case Cloudimage's API changes.
|
106
106
|
|
107
|
-
###
|
107
|
+
### Method aliases
|
108
108
|
|
109
109
|
The gem comes with a handful of useful aliases. Consult
|
110
110
|
[`Cloudimage::Params`](lib/cloudimage/params.rb) module for their full list.
|
@@ -122,6 +122,29 @@ need to accept arguments and will be translated into `param=1` in the final URL.
|
|
122
122
|
For a list of custom helpers available to you, please consult
|
123
123
|
[`Cloudimage::CustomHelpers`](lib/cloudimage/custom_helpers.rb) module.
|
124
124
|
|
125
|
+
### URL aliases
|
126
|
+
|
127
|
+
Specify [aliases](https://docs.cloudimage.io/go/cloudimage-documentation-v7/en/domains-urls/aliases)
|
128
|
+
to automatically replace parts of path with defined values. Aliases is a hash which
|
129
|
+
maps strings to be replaced with values to be used instead.
|
130
|
+
|
131
|
+
```ruby
|
132
|
+
my_alias = 'https://store.s3-us-west-2.amazonaws.com/uploads'
|
133
|
+
client = Cloudimage::Client.new(token: 'token', aliases: { my_alias => '_uploads_' })
|
134
|
+
client.path('https://store.s3-us-west-2.amazonaws.com/uploads/image.jpg').to_url
|
135
|
+
# => "https://token.cloudimg.io/v7/_uploads_/image.jpg"
|
136
|
+
```
|
137
|
+
|
138
|
+
[URL prefix](https://docs.cloudimage.io/go/cloudimage-documentation-v7/en/domains-urls/origin-url-prefix)
|
139
|
+
is just another form of URL alias. Simply make the target value an empty string:
|
140
|
+
|
141
|
+
```ruby
|
142
|
+
prefix = 'https://store.s3-us-west-2.amazonaws.com/uploads/'
|
143
|
+
client = Cloudimage::Client.new(token: 'token', aliases: { prefix => '' })
|
144
|
+
client.path('https://store.s3-us-west-2.amazonaws.com/uploads/image.jpg').to_url
|
145
|
+
# => "https://token.cloudimg.io/v7/image.jpg"
|
146
|
+
```
|
147
|
+
|
125
148
|
### Security
|
126
149
|
|
127
150
|
#### URL signature
|
@@ -194,14 +217,7 @@ are expected to adhere to the
|
|
194
217
|
|
195
218
|
## License
|
196
219
|
|
197
|
-
|
198
|
-
[MIT License](https://opensource.org/licenses/MIT).
|
199
|
-
|
200
|
-
## Code of Conduct
|
201
|
-
|
202
|
-
Everyone interacting with the project's codebase, issues, and pull
|
203
|
-
requests is expected to follow the
|
204
|
-
[code of conduct](https://github.com/scaleflex/cloudimage-rb/blob/master/CODE_OF_CONDUCT.md).
|
220
|
+
[MIT](https://opensource.org/licenses/MIT)
|
205
221
|
|
206
222
|
## Showcase
|
207
223
|
|
data/lib/cloudimage.rb
CHANGED
data/lib/cloudimage/client.rb
CHANGED
@@ -19,5 +19,29 @@ module Cloudimage
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
|
+
|
23
|
+
unless Kernel.respond_to?(:yield_self)
|
24
|
+
refine Kernel do
|
25
|
+
def yield_self
|
26
|
+
unless block_given?
|
27
|
+
return ::Enumerator.new(1) do |yielder|
|
28
|
+
yielder.yield(self)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
yield(self)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
unless Kernel.respond_to?(:then)
|
38
|
+
refine Kernel do
|
39
|
+
def then
|
40
|
+
return yield_self unless block_given?
|
41
|
+
|
42
|
+
yield_self(&::Proc.new)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
22
46
|
end
|
23
47
|
end
|
data/lib/cloudimage/uri.rb
CHANGED
@@ -18,7 +18,7 @@ module Cloudimage
|
|
18
18
|
@config = config
|
19
19
|
@params = {}
|
20
20
|
@sealed_params = Set.new
|
21
|
-
@path =
|
21
|
+
@path = transform(path)
|
22
22
|
@uri = build_uri
|
23
23
|
end
|
24
24
|
|
@@ -50,8 +50,20 @@ module Cloudimage
|
|
50
50
|
"/#{config[:api_version]}"
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
54
|
-
path
|
53
|
+
def transform(path)
|
54
|
+
path
|
55
|
+
.then { |input| input.start_with?('/') ? input : "/#{input}" }
|
56
|
+
.then(&method(:apply_aliases))
|
57
|
+
end
|
58
|
+
|
59
|
+
def apply_aliases(path)
|
60
|
+
return path if config[:aliases].empty?
|
61
|
+
|
62
|
+
path.dup.tap do |input|
|
63
|
+
config[:aliases].each do |source, target|
|
64
|
+
input.gsub!(source, target)
|
65
|
+
end
|
66
|
+
end
|
55
67
|
end
|
56
68
|
|
57
69
|
def request_uri
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudimage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.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-07-
|
11
|
+
date: 2020-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -72,7 +72,6 @@ files:
|
|
72
72
|
- lib/cloudimage/refinements.rb
|
73
73
|
- lib/cloudimage/security.rb
|
74
74
|
- lib/cloudimage/uri.rb
|
75
|
-
- lib/cloudimage/version.rb
|
76
75
|
homepage: https://github.com/scaleflex/cloudimage-rb
|
77
76
|
licenses:
|
78
77
|
- MIT
|