middleman-simple-thumbnailer 0.0.5
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 +7 -0
- data/.gitignore +5 -0
- data/Gemfile +2 -0
- data/README.md +28 -0
- data/Rakefile +1 -0
- data/lib/middleman-simple-thumbnailer/extension.rb +49 -0
- data/lib/middleman-simple-thumbnailer/version.rb +3 -0
- data/lib/middleman-simple-thumbnailer.rb +4 -0
- data/middleman-simple-thumbnailer.gemspec +20 -0
- metadata +81 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9ec4bedb4c08553c47c88ce504690630e6aa1202
|
4
|
+
data.tar.gz: 8c61b11687af86d0a2eb4d5d083b64a1df93b349
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ba9db6dbba35d96f1513aab959ce94e9c1a49d5a3afd07856d0aa5114bd5f5c2669b5f5d2522831e67480e5227c1f8a2fbcb6e5968fa54a28b6d212b4bd670fd
|
7
|
+
data.tar.gz: 5085784e7445f2cee358981929b4f1a6eea2e3f3287df2b6fcc807f84bca9b113163b6f6dc8f583e74a347e5be4a4558022655f2e738f1efddf7942f470bc38e
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
Middleman Simple Thumbnailer
|
2
|
+
=============
|
3
|
+
|
4
|
+
Middleman Simple Thumbnailer is a [Middleman](http://middlemanapp.com/) extension that allows you to create image thumbnails by providing `resize_to` option to image_tag helper.
|
5
|
+
|
6
|
+
|
7
|
+
Installation
|
8
|
+
-------
|
9
|
+
Put this line into your `Gemfile`:
|
10
|
+
```
|
11
|
+
gem 'middleman-simple-thumbnailer'
|
12
|
+
```
|
13
|
+
|
14
|
+
Usage
|
15
|
+
-----
|
16
|
+
```
|
17
|
+
= image_tag image, resize_to: '50x50', class: 'thumbnail'
|
18
|
+
```
|
19
|
+
|
20
|
+
Build/Development modes
|
21
|
+
-----
|
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 thair originals.
|
24
|
+
|
25
|
+
TODO
|
26
|
+
-----
|
27
|
+
- add caching mechanizm in development mode
|
28
|
+
- add tests
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# add resize_to param to image_tag to create thumbnails
|
3
|
+
#
|
4
|
+
#
|
5
|
+
# Usage:
|
6
|
+
# = image_tag item.image, resize_to: '50x30', class: 'center'
|
7
|
+
#
|
8
|
+
module MiddlemanSimpleThumbnailer
|
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
|
+
|
18
|
+
# config variables
|
19
|
+
middleman_settings = self.config
|
20
|
+
images_dir = middleman_settings[:images_dir]
|
21
|
+
build_dir = middleman_settings[:build_dir]
|
22
|
+
|
23
|
+
# image paths variables
|
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)
|
27
|
+
|
28
|
+
# resize
|
29
|
+
image = Magick::Image.read("./source/#{images_dir}/#{path}").first
|
30
|
+
image.change_geometry!(resize_to) { |cols, rows, img| img.resize!(cols, rows) }
|
31
|
+
|
32
|
+
# rendering
|
33
|
+
if middleman_settings.environment == :development
|
34
|
+
data = Base64.encode64(image.to_blob)
|
35
|
+
super("data:#{image.mime_type};base64,#{data}", options)
|
36
|
+
else
|
37
|
+
image.write("./#{build_dir}/#{images_dir}/#{new_image_path}")
|
38
|
+
super(new_image_path, options)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
end
|
44
|
+
super
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
::Middleman::Extensions.register(:middleman_simple_thumbnailer, MiddlemanSimpleThumbnailer::Extension)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "middleman-simple-thumbnailer/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "middleman-simple-thumbnailer"
|
7
|
+
s.version = MiddlemanSimpleThumbnailer::VERSION
|
8
|
+
s.authors = ["kubenstein"]
|
9
|
+
s.email = ["kubenstein@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/kubenstein/middleman-simple-thumbnailer"
|
11
|
+
s.summary = %q{Middleman extension that allows you to create image thumbnails by providing resize_to option to image_tag helper}
|
12
|
+
s.description = %q{Middleman extension that allows you to create image thumbnails by providing resize_to option to image_tag helper}
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
|
18
|
+
s.add_runtime_dependency("middleman", [">= 3.0.0"])
|
19
|
+
s.add_runtime_dependency("rmagick")
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-simple-thumbnailer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- kubenstein
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: middleman
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rmagick
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Middleman extension that allows you to create image thumbnails by providing
|
42
|
+
resize_to option to image_tag helper
|
43
|
+
email:
|
44
|
+
- kubenstein@gmail.com
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- .gitignore
|
50
|
+
- Gemfile
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- lib/middleman-simple-thumbnailer.rb
|
54
|
+
- lib/middleman-simple-thumbnailer/extension.rb
|
55
|
+
- lib/middleman-simple-thumbnailer/version.rb
|
56
|
+
- middleman-simple-thumbnailer.gemspec
|
57
|
+
homepage: https://github.com/kubenstein/middleman-simple-thumbnailer
|
58
|
+
licenses: []
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 2.1.11
|
77
|
+
signing_key:
|
78
|
+
specification_version: 4
|
79
|
+
summary: Middleman extension that allows you to create image thumbnails by providing
|
80
|
+
resize_to option to image_tag helper
|
81
|
+
test_files: []
|