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 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/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .rvmrc
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
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,3 @@
1
+ module MiddlemanSimpleThumbnailer
2
+ VERSION = '0.0.5'
3
+ end
@@ -0,0 +1,4 @@
1
+ require 'RMagick'
2
+ require "middleman-core"
3
+ require "middleman-simple-thumbnailer/version"
4
+ require "middleman-simple-thumbnailer/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: []