middleman-simple-thumbnailer 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +5 -5
  2. data/.devcontainer/Dockerfile +20 -0
  3. data/.devcontainer/devcontainer.json +35 -0
  4. data/.github/workflows/ci.yml +22 -0
  5. data/.gitignore +4 -1
  6. data/README.md +6 -3
  7. data/config/cucumber.yml +1 -0
  8. data/features/caching_thumbnails_in_development.feature +28 -0
  9. data/features/generate_image_thumbnails.feature +15 -1
  10. data/features/generate_image_thumbnails_image_path.feature +10 -0
  11. data/features/generate_image_thumbnails_relative_assets.feature +12 -1
  12. data/features/support/image_thumbnails_steps.rb +33 -12
  13. data/fixtures/basic-app-image-path-use-cache/config.rb +1 -0
  14. data/fixtures/{cached-thumbnails-image-path → basic-app-image-path-use-cache}/source/images/original.jpg +0 -0
  15. data/fixtures/basic-app-image-path-use-cache/source/page-with-images-to-resize.html.erb +16 -0
  16. data/fixtures/basic-app-image-path-use-cache/source/page-with-untouched-image.html.erb +12 -0
  17. data/fixtures/basic-app-image-path/source/page-with-images-to-resize.html.erb +2 -2
  18. data/fixtures/basic-app-image-path/source/page-with-untouched-image.html.erb +1 -1
  19. data/fixtures/basic-app-no-resize/config.rb +1 -0
  20. data/fixtures/basic-app-no-resize/source/images/original.jpg +0 -0
  21. data/fixtures/basic-app-no-resize/source/page-with-untouched-image.html.erb +9 -0
  22. data/fixtures/basic-app-relative-assets-use-cache/config.rb +2 -0
  23. data/fixtures/basic-app-relative-assets-use-cache/source/images/original.jpg +0 -0
  24. data/fixtures/{cached-thumbnails-image-path → basic-app-relative-assets-use-cache}/source/page-with-images-to-resize.html.erb +3 -3
  25. data/fixtures/basic-app-relative-assets-use-cache/source/page-with-untouched-image.html.erb +9 -0
  26. data/fixtures/basic-app-relative-assets/source/page-with-images-to-resize.html.erb +2 -2
  27. data/fixtures/basic-app-relative-assets/source/page-with-untouched-image.html.erb +1 -1
  28. data/fixtures/basic-app-use-cache/config.rb +1 -0
  29. data/fixtures/basic-app-use-cache/source/images/original.jpg +0 -0
  30. data/fixtures/basic-app-use-cache/source/page-with-images-to-resize.html.erb +10 -0
  31. data/fixtures/basic-app-use-cache/source/page-with-untouched-image.html.erb +9 -0
  32. data/fixtures/basic-app/source/page-with-images-to-resize.html.erb +2 -2
  33. data/fixtures/basic-app/source/page-with-untouched-image.html.erb +1 -1
  34. data/fixtures/cached-thumbnails-use-cache/config.rb +1 -0
  35. data/fixtures/cached-thumbnails-use-cache/source/images/original.jpg +0 -0
  36. data/fixtures/cached-thumbnails-use-cache/source/page-with-images-to-resize.html.erb +10 -0
  37. data/fixtures/custom-cache-dir-use-cache/config.rb +3 -0
  38. data/fixtures/custom-cache-dir-use-cache/source/images/original.jpg +0 -0
  39. data/fixtures/custom-cache-dir-use-cache/source/page-with-images-to-resize.html.erb +10 -0
  40. data/lib/middleman-simple-thumbnailer.rb +1 -0
  41. data/lib/middleman-simple-thumbnailer/extension.rb +24 -15
  42. data/lib/middleman-simple-thumbnailer/image.rb +10 -9
  43. data/lib/middleman-simple-thumbnailer/image_store.rb +2 -1
  44. data/lib/middleman-simple-thumbnailer/rack.rb +42 -0
  45. data/lib/middleman-simple-thumbnailer/version.rb +1 -1
  46. data/middleman-simple-thumbnailer.gemspec +5 -5
  47. metadata +40 -68
  48. data/.travis.yml +0 -16
  49. data/fixtures/cached-thumbnails-image-path/config.rb +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f738be722cfd75602105485c2d54b3b4ff3b20d2
4
- data.tar.gz: 6ac6bd63e0f0edca8da22098fd592a9561815830
2
+ SHA256:
3
+ metadata.gz: 7d26882da6c2c6bc7b27f6b2ea10a6d87190f2eb36d2f1365294860fd747966c
4
+ data.tar.gz: b1b99d9f8dd8955a040475de9554b2e610f91d6867969d1fb3ab00c3b95a3f28
5
5
  SHA512:
6
- metadata.gz: 79a5a651236dbb42beb6ebeb1eb0d121ab37f58436b2c830a943d49f55ed07ebf20288e28cb38955a964e3b678cc0ae6bd3df4ca960841b812995261974829c3
7
- data.tar.gz: 9f136cefaf74ed148b79cd1e8e7de2347d10e8eeb6b60e7f22e682ed5faee63b8ee2b72e442cd0223b1a65793a95f7eb03348deedf8ddf4ef73e665578a044fc
6
+ metadata.gz: 78184f4ad682582dec4b790c08829527013f5cc451ec5cc41de0644341c07da1a609f2ffd20c5dc54bc85945bdc44abe30b7167c9764ecbc1ce7c31d5a445d74
7
+ data.tar.gz: cf26509202cff72228f4c4babd5f48f67c5c40f93c17f8608e7f91af7ff970affc04b86019c7a5d8093cf31e182e0390bc7acde77f9b7f76270e813c809bf49e
@@ -0,0 +1,20 @@
1
+ # See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.158.0/containers/ruby/.devcontainer/base.Dockerfile
2
+
3
+ # [Choice] Ruby version: 3, 3.0, 2, 2.7, 2.6, 2.5
4
+ ARG VARIANT="3"
5
+ FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
6
+
7
+ # [Option] Install Node.js
8
+ ARG INSTALL_NODE="true"
9
+ ARG NODE_VERSION="lts/*"
10
+ RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
11
+
12
+ # [Optional] Uncomment this section to install additional OS packages.
13
+ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
14
+ && apt-get -y install --no-install-recommends imagemagick
15
+
16
+ # [Optional] Uncomment this line to install additional gems.
17
+ # RUN gem install <your-gem-names-here>
18
+
19
+ # [Optional] Uncomment this line to install global node packages.
20
+ # RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
@@ -0,0 +1,35 @@
1
+ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
2
+ // https://github.com/microsoft/vscode-dev-containers/tree/v0.158.0/containers/ruby
3
+ {
4
+ "name": "Ruby",
5
+ "build": {
6
+ "dockerfile": "Dockerfile",
7
+ "args": {
8
+ // Update 'VARIANT' to pick a Ruby version: 3, 3.0, 2, 2.7, 2.6, 2.5
9
+ "VARIANT": "2.7",
10
+ // Options
11
+ "INSTALL_NODE": "false",
12
+ "NODE_VERSION": "lts/*"
13
+ }
14
+ },
15
+
16
+ // Set *default* container specific settings.json values on container create.
17
+ "settings": {
18
+ "terminal.integrated.shell.linux": "/bin/bash"
19
+ },
20
+
21
+ // Add the IDs of extensions you want installed when the container is created.
22
+ "extensions": [
23
+ "rebornix.Ruby"
24
+ ],
25
+
26
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
27
+ // "forwardPorts": [],
28
+
29
+ // Use 'postCreateCommand' to run commands after the container is created.
30
+ "postCreateCommand": "sudo apt-get update && sudo apt-get install -y ripgrep && gem install bundler && bundle install",
31
+
32
+ // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
33
+ "remoteUser": "vscode"
34
+
35
+ }
@@ -0,0 +1,22 @@
1
+ name: CI
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ runs-on: ubuntu-latest
8
+ continue-on-error: ${{ matrix.experimental == true }}
9
+ name: ubuntu-ruby-${{ matrix.ruby-version }}
10
+ strategy:
11
+ matrix:
12
+ ruby-version: ['2.7']
13
+ steps:
14
+ - uses: actions/checkout@v2
15
+ - name: Set up Ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: ${{ matrix.ruby-version }}
19
+ bundler-cache: true
20
+ - name: Runs tests
21
+ run: bundle exec cucumber
22
+
data/.gitignore CHANGED
@@ -4,4 +4,7 @@ Gemfile.lock
4
4
  pkg/*
5
5
  .rvmrc
6
6
  tmp
7
- .ruby-version
7
+ .ruby-version
8
+ .direnv
9
+ .envrc
10
+ .vscode
data/README.md CHANGED
@@ -77,8 +77,9 @@ In this mode if a resizing specification found in an `image_tag` or `image_path`
77
77
 
78
78
  Option | default value | Description
79
79
  ------------------------------|----------------------------------|-------------
80
- :cache_dir | `'tmp/simple-thumbnailer-cache'` | Directory (relative to project root) for cached thumbnails.
81
- :use_specs | `false` | Wether or not use resize specfication data file
80
+ :use\_cache\_dev | `true` | In development, add a Rack middleware to serve the resized image from cache
81
+ :cache\_dir | `'tmp/simple-thumbnailer-cache'` | Directory (relative to project root) for cached thumbnails.
82
+ :use\_specs | `false` | Wether or not use resize specfication data file
82
83
  :specs\_data | `'simple_thumbnailer'` | name of the specification data file. It must follow the Middleman data file name convention.
83
84
  :specs\_data\_default\_format | `'yaml'` | defaut specification format (and extension). Can be 'yml', 'yaml', 'json'
84
85
  :specs\_data\_save\_old | `true` | save previous specification data file
@@ -92,7 +93,9 @@ In the dynamic mode, this extension is unable to update the [sitemap](https://mi
92
93
 
93
94
  ## Build/Development modes
94
95
 
95
- During development thumbnails will be created on fly and presented as a base64 strings.
96
+ During development:
97
+ - if option `use_cache_dev` is set to `true` thumbnails will be created when accessed, and are served with a rack middleware from the cache folder.
98
+ - Otherwise thumbnails will be created on fly and presented as a base64 strings.
96
99
 
97
100
  During build thumbnails will be created as normal files and stored in same dir as their originals.
98
101
 
@@ -0,0 +1 @@
1
+ default: --publish-quiet
@@ -4,18 +4,46 @@ Feature: Caching thumbnails in development
4
4
  Given the Server is running at "basic-app"
5
5
  And there is no cache directory yet
6
6
  When I go to "/page-with-images-to-resize.html"
7
+ And I visit all images
7
8
  Then the cache directory should exist with the following files
8
9
  | images/original.10x10gt.eb4e78fd2554225b2.jpg |
9
10
  | images/original.5x5.eb4e78fd2554225b2.jpg |
10
11
 
12
+ Scenario: Cached thumbnails are created use cache dev
13
+ Given the Server is running at "basic-app-use-cache"
14
+ And there is no cache directory yet
15
+ When I go to "/page-with-images-to-resize.html"
16
+ And I visit all images
17
+ Then the cache directory should exist with the following files
18
+ | images/original.10x10gt.eb4e78fd2554225b2.jpg |
19
+ | images/original.5x5.eb4e78fd2554225b2.jpg |
20
+
21
+
11
22
  Scenario: Cached thumbnails are used, if present
12
23
  Given the Server is running at "cached-thumbnails"
13
24
  When I go to "/page-with-images-to-resize.html"
14
25
  Then I should see base64ed data of the cached thumbnails
15
26
 
27
+ Scenario: Cached thumbnails are used, if present use cache dev
28
+ Given the Server is running at "cached-thumbnails-use-cache"
29
+ When I go to "/page-with-images-to-resize.html"
30
+ Then I should see urls for the following cached thumbnails:
31
+ | type | size | class | relative |
32
+ | img | 10x10 | 10x10 | false |
33
+ | img | 5x5 | 5x5 | false |
34
+
16
35
  Scenario: Manually setting the cache directory
17
36
  Given the Server is running at "custom-cache-dir"
18
37
  When I go to "/page-with-images-to-resize.html"
38
+ And I visit all images
39
+ Then the cache directory should exist at "tmp/xxx" with the following files
40
+ | images/original.10x10.eb4e78fd2554225b2.jpg |
41
+ | images/original.5x5.eb4e78fd2554225b2.jpg |
42
+
43
+ Scenario: Manually setting the cache directory use cache
44
+ Given the Server is running at "custom-cache-dir-use-cache"
45
+ When I go to "/page-with-images-to-resize.html"
46
+ And I visit all images
19
47
  Then the cache directory should exist at "tmp/xxx" with the following files
20
48
  | images/original.10x10.eb4e78fd2554225b2.jpg |
21
49
  | images/original.5x5.eb4e78fd2554225b2.jpg |
@@ -11,6 +11,14 @@ Feature: Generate image thumbnails
11
11
  When I cd to "build"
12
12
  Then the file "page-with-untouched-image.html" should contain '<img src="/images/original.jpg" alt="Original" />'
13
13
 
14
+ Scenario: Generate base64 thumbnail of image with resize_to param given use cache dev
15
+ Given the Server is running at "basic-app-use-cache"
16
+ When I go to "/page-with-images-to-resize.html"
17
+ Then I should see urls for the following cached thumbnails:
18
+ | type | size | class | relative | alt |
19
+ | img | 10x10> | 10x10 | false | Original.10x10gt |
20
+ | img | 5x5 | 5x5 | false | Original.5x5 |
21
+
14
22
  Scenario: Generate base64 thumbnail of image with resize_to param given
15
23
  Given the Server is running at "basic-app"
16
24
  When I go to "/page-with-images-to-resize.html"
@@ -25,4 +33,10 @@ Feature: Generate image thumbnails
25
33
  | images/original.10x10gt.jpg | 10x5 |
26
34
  | images/original.5x5.jpg | 5x2 |
27
35
  And the file "page-with-images-to-resize.html" should contain '<img src="/images/original.10x10gt.jpg" class="image-resized-to10x10" alt="Original.10x10gt" />'
28
- And the file "page-with-images-to-resize.html" should contain '<img src="/images/original.5x5.jpg" class="image-resized-to5x5" alt="Original.5x5" />'
36
+ And the file "page-with-images-to-resize.html" should contain '<img src="/images/original.5x5.jpg" class="image-resized-to5x5" alt="Original.5x5" />'
37
+
38
+ Scenario: Not using resize_to should nt fail the build
39
+ Given a fixture app "basic-app-no-resize"
40
+ And a successfully built app at "basic-app-no-resize"
41
+ When I cd to "build"
42
+ Then the file "page-with-untouched-image.html" should contain '<img src="/images/original.jpg" alt="Original" />'
@@ -13,11 +13,21 @@ Feature: Generate image thumbnails with image path
13
13
  Then the file "page-with-untouched-image.html" should contain '<img src="/images/original.jpg" alt="Original" />'
14
14
  And the file "page-with-untouched-image.html" should contain '<source srcset="/images/original.jpg" media="(min-width: 900px)">'
15
15
 
16
+
17
+ Scenario: Generate url thumbnail of image with resize_to param given use cache dev
18
+ Given the Server is running at "basic-app-image-path-use-cache"
19
+ When I go to "/page-with-images-to-resize.html"
20
+ Then I should see urls for the following cached thumbnails:
21
+ | type | size | class | relative | alt |
22
+ | img | 10x10> | 10x10 | false | Original.10x10gt |
23
+ | img | 5x5 | 5x5 | false | Original.5x5 |
24
+
16
25
  Scenario: Generate base64 thumbnail of image with resize_to param given
17
26
  Given the Server is running at "basic-app-image-path"
18
27
  When I go to "/page-with-images-to-resize.html"
19
28
  Then I should see base64ed thumbnails and srcset of the images
20
29
 
30
+
21
31
  Scenario: After build server resized images
22
32
  Given a fixture app "basic-app-image-path"
23
33
  And a successfully built app at "basic-app-image-path"
@@ -11,6 +11,17 @@ Feature: Generate image thumbnails
11
11
  When I cd to "build"
12
12
  Then the file "page-with-untouched-image.html" should contain '<img src="images/original.jpg" alt="Original" />'
13
13
 
14
+
15
+ Scenario: Generate url thumbnail of image with resize_to param given
16
+ Given the Server is running at "basic-app-relative-assets-use-cache"
17
+ When I go to "/page-with-images-to-resize.html"
18
+ Then I should see urls for the following cached thumbnails:
19
+ | type | size | class | relative | alt |
20
+ | img | 10x10 | 10x10 | true | Original.10x10gt |
21
+ | img | 5x5 | 5x5 | true | Original.5x5 |
22
+ | srcset | 20x20> | | true | |
23
+ | srcset | 15x15> | | true | |
24
+
14
25
  Scenario: Generate base64 thumbnail of image with resize_to param given
15
26
  Given the Server is running at "basic-app-relative-assets"
16
27
  When I go to "/page-with-images-to-resize.html"
@@ -26,7 +37,7 @@ Feature: Generate image thumbnails
26
37
  | images/original.5x5.jpg | 5x2 |
27
38
  | images/original.20x20gt.jpg | 20x9 |
28
39
  | images/original.15x15gt.jpg | 15x7 |
29
- And the file "page-with-images-to-resize.html" should contain '<img src="images/original.10x10.jpg" class="image-resized-to10x10" alt="Original.10x10" />'
40
+ And the file "page-with-images-to-resize.html" should contain '<img src="images/original.10x10.jpg" class="image-resized-to10x10" alt="Original.10x10gt" />'
30
41
  And the file "page-with-images-to-resize.html" should contain '<source srcset="images/original.20x20gt.jpg" media="(min-width: 900px)">'
31
42
  And the file "page-with-images-to-resize.html" should contain '<img src="images/original.5x5.jpg" class="image-resized-to5x5" alt="Original.5x5" />'
32
43
  And the file "page-with-images-to-resize.html" should contain '<source srcset="images/original.15x15gt.jpg" media="(min-width: 900px)">'
@@ -1,5 +1,6 @@
1
1
  require 'base64'
2
2
  require 'yaml'
3
+ require 'uri'
3
4
 
4
5
  def calculate_resized_image_b64(resize_str)
5
6
  base_image = MiniMagick::Image.open(File.expand_path("../../fixtures/basic-app/source/images/original.jpg", __dir__))
@@ -7,26 +8,19 @@ def calculate_resized_image_b64(resize_str)
7
8
  Base64.strict_encode64(base_image.to_blob)
8
9
  end
9
10
 
10
- image10x10 = "<img src=\"data:image/jpeg;base64,"+calculate_resized_image_b64("10x10>")+"\" class=\"image-resized-to10x10\" />"
11
+ image10x10 = "<img src=\"data:image/jpeg;base64,"+calculate_resized_image_b64("10x10>")+"\" class=\"image-resized-to10x10\" alt=\"Original.10x10gt\" />"
11
12
 
12
- image5x5 = "<img src=\"data:image/jpeg;base64,"+calculate_resized_image_b64("5x5")+"\" class=\"image-resized-to5x5\" />"
13
+ image5x5 = "<img src=\"data:image/jpeg;base64,"+calculate_resized_image_b64("5x5")+"\" class=\"image-resized-to5x5\" alt=\"Original.5x5\" />"
13
14
 
14
15
  srcset20x20 = "<source srcset=\"data:image/jpeg;base64,"+calculate_resized_image_b64("20x20")+"\" media=\"(min-width: 900px)\">"
15
16
 
16
17
  srcset15x15 = "<source srcset=\"data:image/jpeg;base64,"+calculate_resized_image_b64("15x15")+"\" media=\"(min-width: 900px)\">"
17
18
 
18
- Given(/^there is no cache directory yet$/) do
19
- if directory? MiddlemanSimpleThumbnailer::Extension.config.cache_dir
20
- remove MiddlemanSimpleThumbnailer::Extension.config.cache_dir
21
- end
22
- end
23
-
24
19
  Then(/^I should see base64ed thumbnails of the images$/) do
25
20
  step %Q{I should see '#{image10x10}'}
26
21
  step %Q{I should see '#{image5x5}'}
27
22
  end
28
23
 
29
-
30
24
  Then(/^I should see base64ed thumbnails and srcset of the images$/) do
31
25
  step %Q{I should see '#{image10x10}'}
32
26
  step %Q{I should see '#{image5x5}'}
@@ -34,6 +28,12 @@ Then(/^I should see base64ed thumbnails and srcset of the images$/) do
34
28
  step %Q{I should see '#{srcset15x15}'}
35
29
  end
36
30
 
31
+ Given(/^there is no cache directory yet$/) do
32
+ if directory? MiddlemanSimpleThumbnailer::Extension.config.cache_dir
33
+ remove MiddlemanSimpleThumbnailer::Extension.config.cache_dir
34
+ end
35
+ end
36
+
37
37
 
38
38
  Then(/^the cache directory should exist (?:at "([^"]+)" )?with the following files$/) do |cache_dir, files|
39
39
  cache_dir ||= MiddlemanSimpleThumbnailer::Extension.config.cache_dir
@@ -57,17 +57,32 @@ Then(/^I should see base64ed data of the cached thumbnails with image path$/) do
57
57
  step %Q{I should see '#{cachedsrcset20x20}'}
58
58
  step %Q{I should see '#{cachedsrcset15x15}'}
59
59
  end
60
-
60
+
61
61
  Then(/^I should see base64ed data of the cached thumbnails$/) do
62
62
  # data that won't ever be generated by resizing an actual image
63
63
  cached_10x10_data = "foo"
64
64
  cached_5x5_data = "bar"
65
- cachedimage10x10 = "<img src=\"data:image/jpeg;base64,#{Base64.strict_encode64(cached_10x10_data)}\" class=\"image-resized-to10x10\" />"
66
- cachedimage5x5 = "<img src=\"data:image/jpeg;base64,#{Base64.strict_encode64(cached_5x5_data)}\" class=\"image-resized-to5x5\" />"
65
+ cachedimage10x10 = "<img src=\"data:image/jpeg;base64,#{Base64.strict_encode64(cached_10x10_data)}\" class=\"image-resized-to10x10\" alt=\"\" />"
66
+ cachedimage5x5 = "<img src=\"data:image/jpeg;base64,#{Base64.strict_encode64(cached_5x5_data)}\" class=\"image-resized-to5x5\" alt=\"\" />"
67
67
  step %Q{I should see '#{cachedimage10x10}'}
68
68
  step %Q{I should see '#{cachedimage5x5}'}
69
69
  end
70
70
 
71
+ Then(/^I should see urls for the following cached thumbnails:$/) do |table|
72
+ table.hashes.each do |row|
73
+ isRelative = (row['relative'].to_s == "true")
74
+ urlPrefix = isRelative ? '' : '/'
75
+ if(row['type'] == "img")
76
+ imagedef = "<img src=\"#{urlPrefix}images/original.jpg?simple-thumbnailer=original.jpg%7C#{URI.encode_www_form_component(row['size'])}\" class=\"image-resized-to#{row['class']}\" alt=\"#{row['alt']}\" />"
77
+ else
78
+ imagedef = "<source srcset=\"#{urlPrefix}images/original.jpg?simple-thumbnailer=original.jpg%7C#{URI.encode_www_form_component(row['size'])}\" media=\"(min-width: 900px)\">"
79
+ end
80
+
81
+ step %Q{I should see '#{imagedef}'}
82
+ end
83
+ end
84
+
85
+
71
86
  Then(/^the following images should exist:$/) do |table|
72
87
  table.hashes.each do |row|
73
88
  cd('.') do
@@ -91,3 +106,9 @@ end
91
106
  Then(/^the file "([^"]*)" should not contain '([^']*)'$/) do |file, partial_content|
92
107
  expect(file).not_to have_file_content(Regexp.new(Regexp.escape(partial_content)), true)
93
108
  end
109
+
110
+ When(/^I visit all images$/) do
111
+ page.body.scan(/\<img src=\"(.*?)\"[^>]*\>/) do |m|
112
+ visit(m[0]) if !m[0].start_with?('data:')
113
+ end
114
+ end
@@ -0,0 +1 @@
1
+ activate :middleman_simple_thumbnailer, use_cache_dev: true
@@ -0,0 +1,16 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <picture>
8
+ <source srcset="<%= image_path 'original.jpg', resize_to: '20x20' %>" media="(min-width: 900px)">
9
+ <%= image_tag 'original.jpg', resize_to: '10x10>', class: 'image-resized-to10x10', alt: 'Original.10x10gt' %>
10
+ </picture>
11
+ <picture>
12
+ <source srcset="<%= image_path 'original.jpg', resize_to: '15x15' %>" media="(min-width: 900px)">
13
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5', alt: 'Original.5x5' %>
14
+ </picture>
15
+ </body>
16
+ </html>
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <picture>
8
+ <source srcset="<%= image_path 'original.jpg' %>" media="(min-width: 900px)">
9
+ <%= image_tag 'original.jpg', alt: 'Original' %>
10
+ </picture>
11
+ </body>
12
+ </html>
@@ -6,11 +6,11 @@
6
6
  <body>
7
7
  <picture>
8
8
  <source srcset="<%= image_path 'original.jpg', resize_to: '20x20' %>" media="(min-width: 900px)">
9
- <%= image_tag 'original.jpg', resize_to: '10x10>', class: 'image-resized-to10x10' %>
9
+ <%= image_tag 'original.jpg', resize_to: '10x10>', class: 'image-resized-to10x10', alt: 'Original.10x10gt' %>
10
10
  </picture>
11
11
  <picture>
12
12
  <source srcset="<%= image_path 'original.jpg', resize_to: '15x15' %>" media="(min-width: 900px)">
13
- <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5' %>
13
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5', alt: 'Original.5x5' %>
14
14
  </picture>
15
15
  </body>
16
16
  </html>
@@ -6,7 +6,7 @@
6
6
  <body>
7
7
  <picture>
8
8
  <source srcset="<%= image_path 'original.jpg' %>" media="(min-width: 900px)">
9
- <%= image_tag 'original.jpg' %>
9
+ <%= image_tag 'original.jpg', alt: 'Original' %>
10
10
  </picture>
11
11
  </body>
12
12
  </html>
@@ -0,0 +1 @@
1
+ activate :middleman_simple_thumbnailer
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <%= image_tag 'original.jpg', alt:"Original" %>
8
+ </body>
9
+ </html>
@@ -0,0 +1,2 @@
1
+ activate :middleman_simple_thumbnailer, use_cache_dev: true
2
+ activate :relative_assets
@@ -6,11 +6,11 @@
6
6
  <body>
7
7
  <picture>
8
8
  <source srcset="<%= image_path 'original.jpg', resize_to: '20x20>'%>" media="(min-width: 900px)">
9
- <%= image_tag 'original.jpg', resize_to: '10x10', class: 'image-resized-to10x10' %>
9
+ <%= image_tag 'original.jpg', resize_to: '10x10', class: 'image-resized-to10x10', alt:'Original.10x10gt' %>
10
10
  </picture>
11
11
  <picture>
12
12
  <source srcset="<%= image_path 'original.jpg', resize_to: '15x15>'%>" media="(min-width: 900px)">
13
- <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5' %>
13
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5', alt:'Original.5x5' %>
14
14
  </picture>
15
15
  </body>
16
- </html>
16
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <%= image_tag 'original.jpg', alt: 'Original' %>
8
+ </body>
9
+ </html>
@@ -6,11 +6,11 @@
6
6
  <body>
7
7
  <picture>
8
8
  <source srcset="<%= image_path 'original.jpg', resize_to: '20x20>'%>" media="(min-width: 900px)">
9
- <%= image_tag 'original.jpg', resize_to: '10x10', class: 'image-resized-to10x10' %>
9
+ <%= image_tag 'original.jpg', resize_to: '10x10', class: 'image-resized-to10x10', alt:'Original.10x10gt' %>
10
10
  </picture>
11
11
  <picture>
12
12
  <source srcset="<%= image_path 'original.jpg', resize_to: '15x15>'%>" media="(min-width: 900px)">
13
- <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5' %>
13
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5', alt:'Original.5x5' %>
14
14
  </picture>
15
15
  </body>
16
16
  </html>
@@ -4,6 +4,6 @@
4
4
  <title>Hello World</title>
5
5
  </head>
6
6
  <body>
7
- <%= image_tag 'original.jpg' %>
7
+ <%= image_tag 'original.jpg', alt: 'Original' %>
8
8
  </body>
9
9
  </html>
@@ -0,0 +1 @@
1
+ activate :middleman_simple_thumbnailer, use_cache_dev: true
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <%= image_tag 'original.jpg', resize_to: '10x10>', class: 'image-resized-to10x10', alt: 'Original.10x10gt' %>
8
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5', alt: 'Original.5x5' %>
9
+ </body>
10
+ </html>
@@ -0,0 +1,9 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <%= image_tag 'original.jpg', alt:"Original" %>
8
+ </body>
9
+ </html>
@@ -4,7 +4,7 @@
4
4
  <title>Hello World</title>
5
5
  </head>
6
6
  <body>
7
- <%= image_tag 'original.jpg', resize_to: '10x10>', class: 'image-resized-to10x10' %>
8
- <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5' %>
7
+ <%= image_tag 'original.jpg', resize_to: '10x10>', class: 'image-resized-to10x10', alt: 'Original.10x10gt' %>
8
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5', alt: 'Original.5x5' %>
9
9
  </body>
10
10
  </html>
@@ -4,6 +4,6 @@
4
4
  <title>Hello World</title>
5
5
  </head>
6
6
  <body>
7
- <%= image_tag 'original.jpg' %>
7
+ <%= image_tag 'original.jpg', alt:"Original" %>
8
8
  </body>
9
9
  </html>
@@ -0,0 +1 @@
1
+ activate :middleman_simple_thumbnailer, use_cache_dev: true
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <%= image_tag 'original.jpg', resize_to: '10x10', class: 'image-resized-to10x10' %>
8
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5' %>
9
+ </body>
10
+ </html>
@@ -0,0 +1,3 @@
1
+ activate :middleman_simple_thumbnailer, use_cache_dev: true do |thumbnails|
2
+ thumbnails.cache_dir = 'tmp/xxx'
3
+ end
@@ -0,0 +1,10 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <title>Hello World</title>
5
+ </head>
6
+ <body>
7
+ <%= image_tag 'original.jpg', resize_to: '10x10', class: 'image-resized-to10x10' %>
8
+ <%= image_tag 'original.jpg', resize_to: '5x5', class: 'image-resized-to5x5' %>
9
+ </body>
10
+ </html>
@@ -5,3 +5,4 @@ require "middleman-simple-thumbnailer/image"
5
5
  require "middleman-simple-thumbnailer/image_store"
6
6
  require "middleman-simple-thumbnailer/extension"
7
7
  require "middleman-simple-thumbnailer/resource"
8
+ require "middleman-simple-thumbnailer/rack"
@@ -2,6 +2,7 @@ require 'tmpdir'
2
2
  require 'yaml'
3
3
  require 'json'
4
4
  require 'tempfile'
5
+ require 'uri'
5
6
  # add resize_to param to image_tag to create thumbnails
6
7
  #
7
8
  #
@@ -17,6 +18,7 @@ module MiddlemanSimpleThumbnailer
17
18
  option :specs_data_default_format, 'yaml', 'defaut specification file format (and extension). Can be yaml, yml or json'
18
19
  option :specs_data_save_old, true, 'save previous specification data file '
19
20
  option :update_specs, true, 'Warn about missing image file in specification and add them to teh spec file'
21
+ option :use_cache_dev, false, 'In development, add a Rack middleware to serve the resized image from cache'
20
22
 
21
23
  def initialize(app, options_hash={}, &block)
22
24
  super
@@ -30,14 +32,16 @@ module MiddlemanSimpleThumbnailer
30
32
  end
31
33
  end
32
34
 
35
+ def after_configuration
36
+ if app.development? && options.use_cache_dev
37
+ app.use MiddlemanSimpleThumbnailer::Rack, options, app, options
38
+ end
39
+ end
40
+
33
41
  def store_resized_image(img_path, resize_to)
34
42
  @images_store.store(img_path, resize_to)
35
43
  end
36
44
 
37
- # def after_configuration
38
- # MiddlemanSimpleThumbnailer::Image.options = options
39
- # end
40
-
41
45
  def check_image_in_specs(img_path, resize_to)
42
46
  @resize_specs.each do |resize_spec|
43
47
  if resize_to == resize_spec.resize_to && File.fnmatch(resize_spec.path, img_path)
@@ -47,12 +51,6 @@ module MiddlemanSimpleThumbnailer
47
51
  return false
48
52
  end
49
53
 
50
-
51
- # def source_dir
52
- # File.absolute_path(app.config[:source], app.root)
53
- # end
54
-
55
-
56
54
  def manipulate_resource_list(resources)
57
55
  return resources unless options.use_specs
58
56
  resources + @resize_specs.reduce([]) do |res, resize_spec|
@@ -135,23 +133,34 @@ module MiddlemanSimpleThumbnailer
135
133
 
136
134
  image = MiddlemanSimpleThumbnailer::Image.new(path, resize_to, app, ext.options)
137
135
  if app.development?
138
- "data:#{image.mime_type};base64,#{image.base64_data}"
136
+ if ext.options.use_cache_dev
137
+ [path, {"simple-thumbnailer" => "#{path}|#{resize_to}"}]
138
+ else
139
+ ["data:#{image.mime_type};base64,#{image.base64_data}", {}]
140
+ end
139
141
  else
140
142
  ext.store_resized_image(path, resize_to)
141
- image.resized_img_path
143
+ [image.resized_img_path, {}]
142
144
  end
143
145
  end
144
146
 
145
147
  def image_tag(path, options={})
146
148
  resize_to = options.delete(:resize_to)
147
- new_path = resize_to ? resized_image_path(path, resize_to) : path
149
+ new_path, query_params = resize_to ? resized_image_path(path, resize_to) : [path, {}]
150
+ if(!query_params.empty?)
151
+ new_path = "#{new_path}?#{URI.encode_www_form(query_params)}"
152
+ end
148
153
  super(new_path, options)
149
154
  end
150
155
 
151
156
  def image_path(path, options={})
152
157
  resize_to = options.delete(:resize_to)
153
- new_path = resize_to ? resized_image_path(path, resize_to) : path
154
- super(new_path)
158
+ new_path, query_params = resize_to ? resized_image_path(path, resize_to) : [path, {}]
159
+ res = super(new_path)
160
+ if(!query_params.empty?)
161
+ res = "#{res}?#{URI.encode_www_form(query_params)}"
162
+ end
163
+ res
155
164
  end
156
165
 
157
166
  end
@@ -22,6 +22,11 @@ module MiddlemanSimpleThumbnailer
22
22
  img_path.gsub(image_name, resized_image_name)
23
23
  end
24
24
 
25
+ def base64_data
26
+ prepare_thumbnail
27
+ Base64.strict_encode64(File.read(cached_resized_img_abs_path))
28
+ end
29
+
25
30
  def prepare_thumbnail
26
31
  unless cached_thumbnail_available?
27
32
  resize!
@@ -29,11 +34,6 @@ module MiddlemanSimpleThumbnailer
29
34
  end
30
35
  end
31
36
 
32
- def base64_data
33
- prepare_thumbnail
34
- Base64.strict_encode64(File.read(cached_resized_img_abs_path))
35
- end
36
-
37
37
  def render
38
38
  prepare_thumbnail
39
39
  File.read(cached_resized_img_abs_path)
@@ -45,10 +45,6 @@ module MiddlemanSimpleThumbnailer
45
45
  FileUtils.copy_file(cached_resized_img_abs_path, resized_img_abs_path)
46
46
  end
47
47
 
48
- # def self.options=(options)
49
- # @@options = options
50
- # end
51
-
52
48
  def resized_img_abs_path
53
49
  File.join(build_dir, middleman_abs_path).gsub(image_name, resized_image_name)
54
50
  end
@@ -88,6 +84,10 @@ module MiddlemanSimpleThumbnailer
88
84
  File.basename(abs_path)
89
85
  end
90
86
 
87
+ def original_mtime
88
+ File.mtime abs_path
89
+ end
90
+
91
91
  def resized_image_name
92
92
  image_name.split('.').tap { |a| a.insert(-2, resize_to) }.join('.') # add resize_to sufix
93
93
  .gsub(/[%@!<>^]/, '>' => 'gt', '<' => 'lt', '^' => 'c') # sanitize file name
@@ -104,6 +104,7 @@ module MiddlemanSimpleThumbnailer
104
104
  def save_cached_thumbnail
105
105
  FileUtils.mkdir_p(File.dirname(cached_resized_img_abs_path))
106
106
  image.write(cached_resized_img_abs_path)
107
+ File.utime(original_mtime, original_mtime, cached_resized_img_abs_path)
107
108
  end
108
109
 
109
110
  def source_dir
@@ -24,6 +24,7 @@ module MiddlemanSimpleThumbnailer
24
24
  end
25
25
 
26
26
  def each
27
+ return unless File.exist?(@tmp_path)
27
28
  File.open(@tmp_path, "r") do |f|
28
29
  f.flock(File::LOCK_SH)
29
30
  resized_images = f.size > 0 ? Marshal.load(f) : {}
@@ -34,7 +35,7 @@ module MiddlemanSimpleThumbnailer
34
35
  end
35
36
 
36
37
  def delete
37
- File.delete(@tmp_path)
38
+ File.delete(@tmp_path) if File.exist?(@tmp_path)
38
39
  end
39
40
 
40
41
  end
@@ -0,0 +1,42 @@
1
+ require 'rack/utils'
2
+ require 'cgi'
3
+
4
+ module MiddlemanSimpleThumbnailer
5
+ class Rack
6
+ def initialize(app, options= {}, middleman_app, config)
7
+ @app = app
8
+ @options = options
9
+ @config = config
10
+ @middleman_app = middleman_app
11
+ end
12
+
13
+ def call(env)
14
+ path_info = env["PATH_INFO"]
15
+ query_str = env["QUERY_STRING"]
16
+ environment = @middleman_app.config[:environment]
17
+ status = -1
18
+
19
+ if(environment === :development && !query_str.empty?)
20
+ query_hash = CGI::parse(query_str)
21
+ if(query_hash.key?('simple-thumbnailer'))
22
+ path, resize_to = query_hash['simple-thumbnailer'][0].split('|')
23
+ image = MiddlemanSimpleThumbnailer::Image.new(path, resize_to, @middleman_app, @config)
24
+ status = 200
25
+ file_data = image.render
26
+ headers = {
27
+ "Content-Length" => file_data.bytesize.to_s,
28
+ "Content-Type" => image.mime_type
29
+ }
30
+ response = [file_data]
31
+ end
32
+ end
33
+
34
+ if status === -1
35
+ status, headers, response = @app.call(env)
36
+ end
37
+
38
+ [status, headers, response]
39
+ end
40
+
41
+ end
42
+ end
@@ -1,3 +1,3 @@
1
1
  module MiddlemanSimpleThumbnailer
2
- VERSION = '1.3.1'
2
+ VERSION = '1.4.0'
3
3
  end
@@ -16,12 +16,12 @@ Gem::Specification.new do |s|
16
16
  s.test_files = `git ls-files -- {fixtures,features}/*`.split("\n")
17
17
  s.require_paths = ['lib']
18
18
 
19
- s.add_runtime_dependency 'middleman-core', '~> 4'
19
+ s.add_runtime_dependency 'middleman-core', '~> 4.3'
20
20
  s.add_runtime_dependency 'mini_magick', '~> 4'
21
21
 
22
22
  s.add_development_dependency 'middleman-cli', '~> 4'
23
- s.add_development_dependency 'rake', '~> 12'
24
- s.add_development_dependency 'aruba', '~> 0.14.2'
25
- s.add_development_dependency 'cucumber', '~> 2.4'
26
- s.add_development_dependency 'capybara', '~> 2.15'
23
+ s.add_development_dependency 'rake', '~> 13'
24
+ s.add_development_dependency 'aruba', '~> 0.14'
25
+ s.add_development_dependency 'cucumber', '~> 5'
26
+ s.add_development_dependency 'capybara', '~> 3'
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-simple-thumbnailer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakub Niewczas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-01 00:00:00.000000000 Z
11
+ date: 2021-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4'
19
+ version: '4.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4'
26
+ version: '4.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mini_magick
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,56 +58,56 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '12'
61
+ version: '13'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '12'
68
+ version: '13'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: aruba
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.14.2
75
+ version: '0.14'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.14.2
82
+ version: '0.14'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: cucumber
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '2.4'
89
+ version: '5'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '2.4'
96
+ version: '5'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: capybara
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2.15'
103
+ version: '3'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2.15'
110
+ version: '3'
111
111
  description: Middleman extension that allows you to create image thumbnails by providing
112
112
  resize_to option to image_tag helper
113
113
  email:
@@ -116,12 +116,15 @@ executables: []
116
116
  extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
+ - ".devcontainer/Dockerfile"
120
+ - ".devcontainer/devcontainer.json"
121
+ - ".github/workflows/ci.yml"
119
122
  - ".gitignore"
120
- - ".travis.yml"
121
123
  - Gemfile
122
124
  - MIT-LICENSE
123
125
  - README.md
124
126
  - Rakefile
127
+ - config/cucumber.yml
125
128
  - features/caching_thumbnails_in_development.feature
126
129
  - features/generate_image_thumbnails.feature
127
130
  - features/generate_image_thumbnails_image_path.feature
@@ -140,30 +143,44 @@ files:
140
143
  - fixtures/basic-app-data-file/source/page-with-images-to-resize.html.erb
141
144
  - fixtures/basic-app-data-file/source/page-with-untouched-image.html.erb
142
145
  - fixtures/basic-app-data-file/source/sitemap.html.erb
146
+ - fixtures/basic-app-image-path-use-cache/config.rb
147
+ - fixtures/basic-app-image-path-use-cache/source/images/original.jpg
148
+ - fixtures/basic-app-image-path-use-cache/source/page-with-images-to-resize.html.erb
149
+ - fixtures/basic-app-image-path-use-cache/source/page-with-untouched-image.html.erb
143
150
  - fixtures/basic-app-image-path/config.rb
144
151
  - fixtures/basic-app-image-path/source/images/original.jpg
145
152
  - fixtures/basic-app-image-path/source/page-with-images-to-resize.html.erb
146
153
  - fixtures/basic-app-image-path/source/page-with-untouched-image.html.erb
154
+ - fixtures/basic-app-no-resize/config.rb
155
+ - fixtures/basic-app-no-resize/source/images/original.jpg
156
+ - fixtures/basic-app-no-resize/source/page-with-untouched-image.html.erb
157
+ - fixtures/basic-app-relative-assets-use-cache/config.rb
158
+ - fixtures/basic-app-relative-assets-use-cache/source/images/original.jpg
159
+ - fixtures/basic-app-relative-assets-use-cache/source/page-with-images-to-resize.html.erb
160
+ - fixtures/basic-app-relative-assets-use-cache/source/page-with-untouched-image.html.erb
147
161
  - fixtures/basic-app-relative-assets/config.rb
148
162
  - fixtures/basic-app-relative-assets/source/images/original.jpg
149
163
  - fixtures/basic-app-relative-assets/source/page-with-images-to-resize.html.erb
150
164
  - fixtures/basic-app-relative-assets/source/page-with-untouched-image.html.erb
165
+ - fixtures/basic-app-use-cache/config.rb
166
+ - fixtures/basic-app-use-cache/source/images/original.jpg
167
+ - fixtures/basic-app-use-cache/source/page-with-images-to-resize.html.erb
168
+ - fixtures/basic-app-use-cache/source/page-with-untouched-image.html.erb
151
169
  - fixtures/basic-app/config.rb
152
170
  - fixtures/basic-app/source/images/original.jpg
153
171
  - fixtures/basic-app/source/page-with-images-to-resize.html.erb
154
172
  - fixtures/basic-app/source/page-with-untouched-image.html.erb
155
- - fixtures/cached-thumbnails-image-path/config.rb
156
- - fixtures/cached-thumbnails-image-path/source/images/original.jpg
157
- - fixtures/cached-thumbnails-image-path/source/page-with-images-to-resize.html.erb
158
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.10x10.eb4e78fd2554225b2.jpg
159
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.15x15.eb4e78fd2554225b2.jpg
160
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.20x20.eb4e78fd2554225b2.jpg
161
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.5x5.eb4e78fd2554225b2.jpg
173
+ - fixtures/cached-thumbnails-use-cache/config.rb
174
+ - fixtures/cached-thumbnails-use-cache/source/images/original.jpg
175
+ - fixtures/cached-thumbnails-use-cache/source/page-with-images-to-resize.html.erb
162
176
  - fixtures/cached-thumbnails/config.rb
163
177
  - fixtures/cached-thumbnails/source/images/original.jpg
164
178
  - fixtures/cached-thumbnails/source/page-with-images-to-resize.html.erb
165
179
  - fixtures/cached-thumbnails/tmp/simple-thumbnailer-cache/images/original.10x10.eb4e78fd2554225b2.jpg
166
180
  - fixtures/cached-thumbnails/tmp/simple-thumbnailer-cache/images/original.5x5.eb4e78fd2554225b2.jpg
181
+ - fixtures/custom-cache-dir-use-cache/config.rb
182
+ - fixtures/custom-cache-dir-use-cache/source/images/original.jpg
183
+ - fixtures/custom-cache-dir-use-cache/source/page-with-images-to-resize.html.erb
167
184
  - fixtures/custom-cache-dir/config.rb
168
185
  - fixtures/custom-cache-dir/source/images/original.jpg
169
186
  - fixtures/custom-cache-dir/source/page-with-images-to-resize.html.erb
@@ -171,6 +188,7 @@ files:
171
188
  - lib/middleman-simple-thumbnailer/extension.rb
172
189
  - lib/middleman-simple-thumbnailer/image.rb
173
190
  - lib/middleman-simple-thumbnailer/image_store.rb
191
+ - lib/middleman-simple-thumbnailer/rack.rb
174
192
  - lib/middleman-simple-thumbnailer/resource.rb
175
193
  - lib/middleman-simple-thumbnailer/version.rb
176
194
  - middleman-simple-thumbnailer.gemspec
@@ -193,54 +211,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
211
  - !ruby/object:Gem::Version
194
212
  version: '0'
195
213
  requirements: []
196
- rubyforge_project:
197
- rubygems_version: 2.6.8
214
+ rubygems_version: 3.1.4
198
215
  signing_key:
199
216
  specification_version: 4
200
217
  summary: Middleman extension that allows you to create image thumbnails
201
- test_files:
202
- - features/caching_thumbnails_in_development.feature
203
- - features/generate_image_thumbnails.feature
204
- - features/generate_image_thumbnails_image_path.feature
205
- - features/generate_image_thumbnails_relative_assets.feature
206
- - features/generate_new_data_file.feature
207
- - features/given_data_file.feature
208
- - features/support/env.rb
209
- - features/support/image_thumbnails_steps.rb
210
- - fixtures/basic-app-data-file-generate/config.rb
211
- - fixtures/basic-app-data-file-generate/source/images/original.jpg
212
- - fixtures/basic-app-data-file-generate/source/page-with-images-to-resize.html.erb
213
- - fixtures/basic-app-data-file-generate/source/page-with-untouched-image.html.erb
214
- - fixtures/basic-app-data-file/config.rb
215
- - fixtures/basic-app-data-file/data/simple_thumbnailer.yml
216
- - fixtures/basic-app-data-file/source/images/original.jpg
217
- - fixtures/basic-app-data-file/source/page-with-images-to-resize.html.erb
218
- - fixtures/basic-app-data-file/source/page-with-untouched-image.html.erb
219
- - fixtures/basic-app-data-file/source/sitemap.html.erb
220
- - fixtures/basic-app-image-path/config.rb
221
- - fixtures/basic-app-image-path/source/images/original.jpg
222
- - fixtures/basic-app-image-path/source/page-with-images-to-resize.html.erb
223
- - fixtures/basic-app-image-path/source/page-with-untouched-image.html.erb
224
- - fixtures/basic-app-relative-assets/config.rb
225
- - fixtures/basic-app-relative-assets/source/images/original.jpg
226
- - fixtures/basic-app-relative-assets/source/page-with-images-to-resize.html.erb
227
- - fixtures/basic-app-relative-assets/source/page-with-untouched-image.html.erb
228
- - fixtures/basic-app/config.rb
229
- - fixtures/basic-app/source/images/original.jpg
230
- - fixtures/basic-app/source/page-with-images-to-resize.html.erb
231
- - fixtures/basic-app/source/page-with-untouched-image.html.erb
232
- - fixtures/cached-thumbnails-image-path/config.rb
233
- - fixtures/cached-thumbnails-image-path/source/images/original.jpg
234
- - fixtures/cached-thumbnails-image-path/source/page-with-images-to-resize.html.erb
235
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.10x10.eb4e78fd2554225b2.jpg
236
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.15x15.eb4e78fd2554225b2.jpg
237
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.20x20.eb4e78fd2554225b2.jpg
238
- - fixtures/cached-thumbnails-image-path/tmp/simple-thumbnailer-cache/images/original.5x5.eb4e78fd2554225b2.jpg
239
- - fixtures/cached-thumbnails/config.rb
240
- - fixtures/cached-thumbnails/source/images/original.jpg
241
- - fixtures/cached-thumbnails/source/page-with-images-to-resize.html.erb
242
- - fixtures/cached-thumbnails/tmp/simple-thumbnailer-cache/images/original.10x10.eb4e78fd2554225b2.jpg
243
- - fixtures/cached-thumbnails/tmp/simple-thumbnailer-cache/images/original.5x5.eb4e78fd2554225b2.jpg
244
- - fixtures/custom-cache-dir/config.rb
245
- - fixtures/custom-cache-dir/source/images/original.jpg
246
- - fixtures/custom-cache-dir/source/page-with-images-to-resize.html.erb
218
+ test_files: []
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- before_install:
2
- - gem install bundler
3
- script:
4
- - bundle exec cucumber
5
- rvm:
6
- - ruby-head
7
- - 2.4.0
8
- - 2.3.1
9
- - 2.2.4
10
- matrix:
11
- allow_failures:
12
- - rvm: ruby-head
13
- notifications:
14
- email:
15
- on_success: always
16
- on_failure: always
@@ -1 +0,0 @@
1
- activate :middleman_simple_thumbnailer