image_vise 0.2.4 → 0.2.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a71e26e83e715290293b8e512fe6f72aaa39098
4
- data.tar.gz: 4dd57c319fe8728e0bc8cf0e2fdd67ab41bc028b
3
+ metadata.gz: 037b10ccb40b25cf245f7751d99085e67cca8552
4
+ data.tar.gz: 43a7c0779a8ee07bc6a1da19bf98e1ca41c091c1
5
5
  SHA512:
6
- metadata.gz: 8c53127c2ef018e94200a23281d6923497d5466d19ae63b8d18ad0a292f3eb6e6615baccee577d01cee774e50b32fa04e6c5e910d2e9a9cd445fc47f5bfb814f
7
- data.tar.gz: f0fbe07c4fb401161714862fff8833300821d51f710140a0f16f6336251243ae48679a4ff5ac9df48970baaed97c4ba4080e0562fcb4c5cf7dbe3b6be437cbc9
6
+ metadata.gz: 9b9e8e91a62ccabe54fe2fa12c24dc2ef6e2b8c64f63e2f7d90d62ace373e7cef776c3fab84d0823ab3577340a6eb202e4077acc8ebbbabb26e2f5dc168b6138
7
+ data.tar.gz: 51b7013be378b9e72faa23f6d9c94895ce11915622509459406da9814ba5388d1c1ef99d8d0b183c5ab9c04a2359d01ce40fc350fe9738d18cd4f5c9b09dadbd
data/README.md CHANGED
@@ -20,6 +20,18 @@ A request to `ImageVise` might look like this:
20
20
  The URL that gets generated is best composed with the included `ImageVise.image_params` method. This method will
21
21
  take care of encoding the source URL and the commands in the right way, as well as signing.
22
22
 
23
+ ## ImageMagick version workaround
24
+
25
+ As specified in [this StackOverflow answer](https://stackoverflow.com/questions/41647979/imagemagick-7-with-rmagick-2-16-on-macos-sierra-cant-find-magickwand-h/41747901#41747901) you need to install ImageMagick 6 from keg on OSX since RMagick cannot yet cope with ImageMagick 7.
26
+
27
+ ```
28
+ $ brew rm imagemagick
29
+ $ brew install imagemagick@6 --with-little-cms --with-little-cms2
30
+ $ brew link imagemagick@6 --force
31
+ $ export PATH=$PATH:$(brew --prefix imagemagick@6)/bin
32
+ bundle install
33
+ ```
34
+
23
35
  ## Using ImageVise within a Rails application
24
36
 
25
37
  Mount ImageVise in your `routes.rb`:
@@ -211,4 +223,4 @@ The licensing terms also apply to the `waterside_magic_hour.jpg` test image.
211
223
  The `worker_in_tube.jpg` is used with permission from Arcadis Nederland B.V.
212
224
 
213
225
  The sRGB color profiles are [downloaded from the ICC](http://www.color.org/srgbprofiles.xalter) and it's
214
- use is governed by the terms present in the LICENSE.txt
226
+ use is governed by the terms present in the LICENSE.txt
data/image_vise.gemspec CHANGED
@@ -31,12 +31,12 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'rmagick', '~> 2.15'
32
32
  spec.add_dependency 'ks'
33
33
  spec.add_dependency 'magic_bytes', '~> 1'
34
- spec.add_dependency 'rack', '~> 1'
34
+ spec.add_dependency 'rack', '>= 1', '< 3'
35
35
 
36
36
  spec.add_development_dependency "bundler", "~> 1.7"
37
- spec.add_development_dependency "rake", "~> 10.0"
37
+ spec.add_development_dependency "rake", "~> 12.2"
38
38
  spec.add_development_dependency "rack-test"
39
- spec.add_development_dependency "rspec", "~> 3.0"
39
+ spec.add_development_dependency "rspec", "~> 3"
40
40
  spec.add_development_dependency "addressable"
41
41
  spec.add_development_dependency "strenv"
42
42
  spec.add_development_dependency "simplecov"
@@ -109,9 +109,12 @@
109
109
  # Prevent cache bypass DOS attacks by only permitting :sig and :q
110
110
  bail(400, 'Query strings are not supported') if rack_request.params.any?
111
111
 
112
- # Extract the tail (signature) and the front (the Base64-encoded request).
113
- # Slashes within :q are masked by ImageRequest already, so we don't have
114
- # to worry about them.
112
+ # Take the last two path components of the request URI.
113
+ # The second-to-last is the Base64-encoded image request, the last is the signature.
114
+ # Slashes within the image request are masked out already, no need to worry about them.
115
+ # Parameters are passed in the path so that ImageVise integrates easier with CDNs and so that
116
+ # it becomes harder to blow the cache by appending spurious query string parameters and/or
117
+ # reordering query string parameters at will.
115
118
  *, q_from_path, sig_from_path = rack_request.path_info.split('/')
116
119
 
117
120
  # Raise if any of them are empty or blank
@@ -1,3 +1,3 @@
1
1
  class ImageVise
2
- VERSION = '0.2.4'
2
+ VERSION = '0.2.6'
3
3
  end
@@ -5,6 +5,9 @@ describe ImageVise::RenderEngine do
5
5
  include Rack::Test::Methods
6
6
 
7
7
  let(:app) { ImageVise::RenderEngine.new }
8
+ before :each do
9
+ ImageVise.reset_cache_lifetime_seconds!
10
+ end
8
11
 
9
12
  context 'when the subclass is configured to raise exceptions' do
10
13
  after :each do
@@ -37,7 +40,6 @@ describe ImageVise::RenderEngine do
37
40
  after :each do
38
41
  ImageVise.reset_allowed_hosts!
39
42
  ImageVise.reset_secret_keys!
40
- ImageVise.reset_cache_lifetime_seconds!
41
43
  end
42
44
 
43
45
  it 'halts with 400 when the requested image cannot be opened by ImageMagick' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_vise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik Tarkhanov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-21 00:00:00.000000000 Z
11
+ date: 2017-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: patron
@@ -70,16 +70,22 @@ dependencies:
70
70
  name: rack
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '3'
76
79
  type: :runtime
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
80
- - - "~>"
83
+ - - ">="
81
84
  - !ruby/object:Gem::Version
82
85
  version: '1'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '3'
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: bundler
85
91
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +106,14 @@ dependencies:
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '10.0'
109
+ version: '12.2'
104
110
  type: :development
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: '10.0'
116
+ version: '12.2'
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: rack-test
113
119
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +134,14 @@ dependencies:
128
134
  requirements:
129
135
  - - "~>"
130
136
  - !ruby/object:Gem::Version
131
- version: '3.0'
137
+ version: '3'
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
142
  - - "~>"
137
143
  - !ruby/object:Gem::Version
138
- version: '3.0'
144
+ version: '3'
139
145
  - !ruby/object:Gem::Dependency
140
146
  name: addressable
141
147
  requirement: !ruby/object:Gem::Requirement
@@ -282,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
282
288
  version: '0'
283
289
  requirements: []
284
290
  rubyforge_project:
285
- rubygems_version: 2.5.2
291
+ rubygems_version: 2.6.11
286
292
  signing_key:
287
293
  specification_version: 4
288
294
  summary: Runtime thumbnailing proxy