middleman-simple-thumbnailer 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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: []