middleman-simple-thumbnailer 1.0.1 → 1.0.2
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/features/generate_image_thumbnails.feature +4 -3
- data/features/support/image_thumbnails_steps.rb +9 -0
- data/lib/middleman-simple-thumbnailer/extension.rb +1 -2
- data/lib/middleman-simple-thumbnailer/image.rb +16 -15
- data/lib/middleman-simple-thumbnailer/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8fcbef0d63780a552248c4a83a2450abdacb456
|
4
|
+
data.tar.gz: 0dba15673827e0da8cbe89d9ee4f49dc844d29a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcbfcc6a3f1373bb78c578c522a002fc265971d701dc9fc98efd7c40d9c8cc599be47a4fd05d3cb3463f105769a1134a901448f1c4fd0eec89a0af657bd76bf0
|
7
|
+
data.tar.gz: cd5abd6b19674cbab8273324022711d3cda865f70e3cf3df484cfd8273a1a7b51cdeb20d706ce60429b1155111539a478cdeace265f30edb35825108c2e554f7
|
@@ -20,8 +20,9 @@ Feature: Generate image thumbnails
|
|
20
20
|
Given a fixture app "basic-app"
|
21
21
|
And a successfully built app at "basic-app"
|
22
22
|
When I cd to "build"
|
23
|
-
Then the following
|
24
|
-
|
|
25
|
-
| images/original.
|
23
|
+
Then the following images should exist:
|
24
|
+
| filename | dimensions |
|
25
|
+
| images/original.10x10gt.jpg | 10x5 |
|
26
|
+
| images/original.5x5.jpg | 5x2 |
|
26
27
|
And the file "page-with-images-to-resize.html" should contain '<img class="image-resized-to10x10" src="/images/original.10x10gt.jpg" />'
|
27
28
|
And the file "page-with-images-to-resize.html" should contain '<img class="image-resized-to5x5" src="/images/original.5x5.jpg" />'
|
@@ -25,3 +25,12 @@ Then(/^I should see base64ed data of the cached thumbnails$/) do
|
|
25
25
|
step %Q{I should see '#{image10x10}'}
|
26
26
|
step %Q{I should see '#{image5x5}'}
|
27
27
|
end
|
28
|
+
|
29
|
+
Then(/^the following images should exist:$/) do |table|
|
30
|
+
table.hashes.each do |row|
|
31
|
+
in_current_dir do
|
32
|
+
image = MiniMagick::Image.open(row["filename"])
|
33
|
+
expect(image.dimensions).to eq row["dimensions"].split("x").map(&:to_i)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -30,8 +30,7 @@ module MiddlemanSimpleThumbnailer
|
|
30
30
|
resize_to = options.delete(:resize_to)
|
31
31
|
return super(path, options) unless resize_to
|
32
32
|
|
33
|
-
image = MiddlemanSimpleThumbnailer::Image.new(path, self.config)
|
34
|
-
image.resize!(resize_to)
|
33
|
+
image = MiddlemanSimpleThumbnailer::Image.new(path, resize_to, self.config)
|
35
34
|
if environment == :development
|
36
35
|
super("data:#{image.mime_type};base64,#{image.base64_data}", options)
|
37
36
|
else
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require "digest"
|
2
|
-
require 'fileutils'
|
3
2
|
|
4
3
|
module MiddlemanSimpleThumbnailer
|
5
4
|
class Image
|
@@ -8,10 +7,11 @@ module MiddlemanSimpleThumbnailer
|
|
8
7
|
|
9
8
|
attr_accessor :img_path, :middleman_config, :resize_to
|
10
9
|
|
11
|
-
def initialize(img_path, middleman_config)
|
10
|
+
def initialize(img_path, resize_to, middleman_config)
|
12
11
|
@@all_objects << self
|
13
12
|
|
14
13
|
@img_path = img_path
|
14
|
+
@resize_to = resize_to
|
15
15
|
@middleman_config = middleman_config
|
16
16
|
end
|
17
17
|
|
@@ -24,22 +24,16 @@ module MiddlemanSimpleThumbnailer
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def base64_data
|
27
|
+
unless cached_thumbnail_available?
|
28
|
+
resize!
|
29
|
+
save_cached_thumbnail
|
30
|
+
end
|
27
31
|
Base64.encode64(File.read(cached_resized_img_abs_path))
|
28
32
|
end
|
29
33
|
|
30
|
-
def resize!(resize_to)
|
31
|
-
self.resize_to = resize_to
|
32
|
-
return if cached_thumbnail_available?
|
33
|
-
image.resize(resize_to)
|
34
|
-
save_cached_thumbnail
|
35
|
-
end
|
36
|
-
|
37
34
|
def save!
|
38
|
-
|
39
|
-
|
40
|
-
else
|
41
|
-
image.write(resized_img_abs_path)
|
42
|
-
end
|
35
|
+
resize!
|
36
|
+
image.write(resized_img_abs_path)
|
43
37
|
end
|
44
38
|
|
45
39
|
def self.all_objects
|
@@ -52,6 +46,13 @@ module MiddlemanSimpleThumbnailer
|
|
52
46
|
|
53
47
|
|
54
48
|
private
|
49
|
+
|
50
|
+
def resize!
|
51
|
+
unless @already_resized
|
52
|
+
image.resize(resize_to)
|
53
|
+
@already_resized = true
|
54
|
+
end
|
55
|
+
end
|
55
56
|
|
56
57
|
def image
|
57
58
|
@image ||= MiniMagick::Image.open(abs_path)
|
@@ -67,7 +68,7 @@ module MiddlemanSimpleThumbnailer
|
|
67
68
|
|
68
69
|
def resized_image_name
|
69
70
|
image_name.split('.').tap { |a| a.insert(-2, resize_to) }.join('.') # add resize_to sufix
|
70
|
-
.gsub(/[
|
71
|
+
.gsub(/[%@!<>^]/, '>' => 'gt', '<' => 'lt', '^' => 'c') # sanitize file name
|
71
72
|
end
|
72
73
|
|
73
74
|
def abs_path
|
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.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Niewczas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|