middleman-simple-thumbnailer 0.0.5 → 0.0.7
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/README.md +2 -2
- data/lib/middleman-simple-thumbnailer.rb +2 -1
- data/lib/middleman-simple-thumbnailer/extension.rb +21 -30
- data/lib/middleman-simple-thumbnailer/image.rb +78 -0
- data/lib/middleman-simple-thumbnailer/version.rb +1 -1
- data/middleman-simple-thumbnailer.gemspec +11 -10
- metadata +15 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a029a01dea0919da0ca8df40c240028c7e4ba594
|
4
|
+
data.tar.gz: ed75c2c1c1c6b4cf71ccc05ee73efc5945829aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3151a7706156e5352e11911f8a7618ff4b4028506d0cbe3054452d228fe7515d19afa921b0fbca1528bf1c7e1c2fe6f7357e1b625dc7d272baf027a086b28320
|
7
|
+
data.tar.gz: 031831ec30df21887ca84d915da7dfcd58e5f43c4b1f445beda70616c4fe9678b26d7110c07511b4143cc111c589cb95ec4ac829f40cc8e6ae138ddb398bcd97
|
data/README.md
CHANGED
@@ -20,9 +20,9 @@ Usage
|
|
20
20
|
Build/Development modes
|
21
21
|
-----
|
22
22
|
During development thumbnails will be created on fly and presented as a base64 strings.
|
23
|
-
During build thumbnails will be created as normal files and stored in same dir as
|
23
|
+
During build thumbnails will be created as normal files and stored in same dir as their originals.
|
24
24
|
|
25
25
|
TODO
|
26
26
|
-----
|
27
27
|
- add caching mechanizm in development mode
|
28
|
-
- add tests
|
28
|
+
- add tests
|
@@ -3,45 +3,36 @@
|
|
3
3
|
#
|
4
4
|
#
|
5
5
|
# Usage:
|
6
|
-
# = image_tag item.image, resize_to: '50x30', class: '
|
6
|
+
# = image_tag item.image, resize_to: '50x30', class: 'thumbnail'
|
7
7
|
#
|
8
8
|
module MiddlemanSimpleThumbnailer
|
9
9
|
class Extension < Middleman::Extension
|
10
|
-
def initialize(app, options_hash={}, &block)
|
11
|
-
app.helpers do
|
12
|
-
|
13
|
-
|
14
|
-
def image_tag(path, options={})
|
15
|
-
resize_to = options.delete(:resize_to)
|
16
|
-
return super(path, options) unless resize_to
|
17
10
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
def initialize(app, options_hash={}, &block)
|
12
|
+
super
|
13
|
+
app.after_build do |builder|
|
14
|
+
MiddlemanSimpleThumbnailer::Image.all_objects.each do |image|
|
15
|
+
builder.say_status :create, "#{image.resized_img_path}"
|
16
|
+
image.save!
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
22
20
|
|
23
|
-
|
24
|
-
image_basename = File.basename(path)
|
25
|
-
new_image_basename = image_basename.split('.').tap { |a| a.insert(-2, resize_to) }.join('.')
|
26
|
-
new_image_path = path.gsub(image_basename, new_image_basename)
|
21
|
+
helpers do
|
27
22
|
|
28
|
-
|
29
|
-
|
30
|
-
|
23
|
+
def image_tag(path, options={})
|
24
|
+
resize_to = options.delete(:resize_to)
|
25
|
+
return super(path, options) unless resize_to
|
31
26
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
super(new_image_path, options)
|
39
|
-
end
|
27
|
+
image = MiddlemanSimpleThumbnailer::Image.new(path, self.config)
|
28
|
+
image.resize!(resize_to)
|
29
|
+
if environment == :development
|
30
|
+
super("data:#{image.mime_type};base64,#{image.base64_data}", options)
|
31
|
+
else
|
32
|
+
super(image.resized_img_path, options)
|
40
33
|
end
|
41
|
-
|
42
|
-
|
43
34
|
end
|
44
|
-
|
35
|
+
|
45
36
|
end
|
46
37
|
end
|
47
38
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module MiddlemanSimpleThumbnailer
|
2
|
+
class Image
|
3
|
+
@@all_objects = []
|
4
|
+
attr_accessor :img_path, :middleman_config, :resize_to
|
5
|
+
|
6
|
+
def initialize(img_path, middleman_config)
|
7
|
+
@@all_objects << self
|
8
|
+
|
9
|
+
@img_path = img_path
|
10
|
+
@middleman_config = middleman_config
|
11
|
+
end
|
12
|
+
|
13
|
+
def mime_type
|
14
|
+
image.mime_type
|
15
|
+
end
|
16
|
+
|
17
|
+
def resized_img_path
|
18
|
+
img_path.gsub(image_name, resized_image_name)
|
19
|
+
end
|
20
|
+
|
21
|
+
def base64_data
|
22
|
+
Base64.encode64(image.to_blob)
|
23
|
+
end
|
24
|
+
|
25
|
+
def resize!(resize_to)
|
26
|
+
self.resize_to = resize_to
|
27
|
+
image.resize(resize_to)
|
28
|
+
end
|
29
|
+
|
30
|
+
def save!
|
31
|
+
image.write(resized_img_abs_path)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.all_objects
|
35
|
+
@@all_objects
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def image
|
42
|
+
@image ||= MiniMagick::Image.open(abs_path)
|
43
|
+
end
|
44
|
+
|
45
|
+
def image_name
|
46
|
+
File.basename(abs_path)
|
47
|
+
end
|
48
|
+
|
49
|
+
def resized_image_name
|
50
|
+
image_name.split('.').tap { |a| a.insert(-2, resize_to) }.join('.')
|
51
|
+
end
|
52
|
+
|
53
|
+
def abs_path
|
54
|
+
File.join(source_dir, middleman_abs_path)
|
55
|
+
end
|
56
|
+
|
57
|
+
def middleman_abs_path
|
58
|
+
img_path.start_with?('/') ? img_path : File.join(images_dir, img_path)
|
59
|
+
end
|
60
|
+
|
61
|
+
def resized_img_abs_path
|
62
|
+
File.join(build_dir, middleman_abs_path).gsub(image_name, resized_image_name)
|
63
|
+
end
|
64
|
+
|
65
|
+
def source_dir
|
66
|
+
middleman_config[:source]
|
67
|
+
end
|
68
|
+
|
69
|
+
def images_dir
|
70
|
+
middleman_config[:images_dir]
|
71
|
+
end
|
72
|
+
|
73
|
+
def build_dir
|
74
|
+
middleman_config[:build_dir]
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
end
|
@@ -1,20 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path(
|
3
|
-
require
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'middleman-simple-thumbnailer/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name =
|
6
|
+
s.name = 'middleman-simple-thumbnailer'
|
7
7
|
s.version = MiddlemanSimpleThumbnailer::VERSION
|
8
|
-
s.authors = [
|
9
|
-
s.email = [
|
10
|
-
s.homepage =
|
8
|
+
s.authors = ['kubenstein']
|
9
|
+
s.email = ['kubenstein@gmail.com']
|
10
|
+
s.homepage = 'https://github.com/kubenstein/middleman-simple-thumbnailer'
|
11
|
+
s.license = 'MIT'
|
11
12
|
s.summary = %q{Middleman extension that allows you to create image thumbnails by providing resize_to option to image_tag helper}
|
12
13
|
s.description = %q{Middleman extension that allows you to create image thumbnails by providing resize_to option to image_tag helper}
|
13
14
|
|
14
15
|
s.files = `git ls-files`.split("\n")
|
15
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split(
|
16
|
-
s.require_paths = [
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split('\n')
|
17
|
+
s.require_paths = ['lib']
|
17
18
|
|
18
|
-
s.add_runtime_dependency
|
19
|
-
s.add_runtime_dependency
|
19
|
+
s.add_runtime_dependency 'middleman', '~> 3'
|
20
|
+
s.add_runtime_dependency 'mini_magick', '~> 4'
|
20
21
|
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-simple-thumbnailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kubenstein
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3
|
19
|
+
version: '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: 3
|
26
|
+
version: '3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: mini_magick
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '4'
|
41
41
|
description: Middleman extension that allows you to create image thumbnails by providing
|
42
42
|
resize_to option to image_tag helper
|
43
43
|
email:
|
@@ -52,10 +52,12 @@ files:
|
|
52
52
|
- Rakefile
|
53
53
|
- lib/middleman-simple-thumbnailer.rb
|
54
54
|
- lib/middleman-simple-thumbnailer/extension.rb
|
55
|
+
- lib/middleman-simple-thumbnailer/image.rb
|
55
56
|
- lib/middleman-simple-thumbnailer/version.rb
|
56
57
|
- middleman-simple-thumbnailer.gemspec
|
57
58
|
homepage: https://github.com/kubenstein/middleman-simple-thumbnailer
|
58
|
-
licenses:
|
59
|
+
licenses:
|
60
|
+
- MIT
|
59
61
|
metadata: {}
|
60
62
|
post_install_message:
|
61
63
|
rdoc_options: []
|
@@ -73,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
75
|
version: '0'
|
74
76
|
requirements: []
|
75
77
|
rubyforge_project:
|
76
|
-
rubygems_version: 2.
|
78
|
+
rubygems_version: 2.4.5
|
77
79
|
signing_key:
|
78
80
|
specification_version: 4
|
79
81
|
summary: Middleman extension that allows you to create image thumbnails by providing
|