merchii-placeholder_image 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,9 @@
1
+ .DS_Store
2
+ .bundle
3
+ .rbx
4
+ .*~
5
+ Gemfile.lock
6
+ pkg/*
7
+ *.gem
8
+ *.rbc
9
+ *~
@@ -0,0 +1,8 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - ree
5
+ - ruby-head
6
+ - rbx
7
+ notifications:
8
+ disabled: true
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ group :test do
6
+ group :darwin do
7
+ gem 'rb-fsevent'
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ guard 'bundler' do
2
+ watch('Gemfile')
3
+ watch(/^.+\.gemspec/)
4
+ end
5
+
6
+ guard 'minitest' do
7
+ watch(%r|^spec/(.*)_spec\.rb|)
8
+ watch(%r|^lib/(.*)\.rb|) { "spec" }
9
+ watch(%r|^spec/spec_helper\.rb|) { "spec" }
10
+ watch(%r|^Gemfile\.lock|) { "spec" }
11
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Jonas Grimfelt, Merchii. http://merchii.com
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,55 @@
1
+ # PLACEHOLDER_IMAGE [![](https://secure.travis-ci.org/merchii/placeholder_image.png)](http://travis-ci.org/merchii/placeholder_image)
2
+
3
+ *Generate generic placeholder vector images - just like placehold.it, but native.*
4
+
5
+ ## Dependencies
6
+
7
+ * **[rmagick](https://github.com/rmagick/rmagick)** - for now, plan to optionally replace it with [mini_magick](https://github.com/probablycorey/mini_magick) when I "get" the API well enough.
8
+ * **[commander](https://github.com/visionmedia/commander)** - for command-line support.
9
+
10
+ ## Usage
11
+
12
+ Command-line:
13
+
14
+ ```shell
15
+ $ placeholder_image 150x100 /tmp/placeholder.png
16
+ $ placeholder_image 300x300 /tmp/placeholder.png --text "Hello" --bgcolor "#dddddd" --color "#bbbbbb"
17
+ ```
18
+
19
+ Code:
20
+
21
+ ```ruby
22
+ generator = PlaceholderImage::Generator.new('150x100')
23
+ generator.generate!("/tmp/placeholder.png")
24
+
25
+ generator = PlaceholderImage::Generator.new('300x300', background_color: "#dddddd", text_color: "#bbbbbb")
26
+ generator.generate!("/tmp/placeholder.png")
27
+ ```
28
+
29
+ ## Options
30
+
31
+ Command-line:
32
+
33
+ ```shell
34
+ $ placeholder_image help generate
35
+ ```
36
+
37
+ Code:
38
+
39
+ * `background_color` - render background using this color. Default: `'#000000'`.
40
+ * `text_color` - render text using this color. Default: `'#ffffff'`.
41
+ * `text` - the text rendered centered within the image. Default: `'#{WIDTH} x #{HEIGHT}'`.
42
+
43
+ ## Ruby Versions
44
+
45
+ No JRuby support, because of RMagick-clash.
46
+
47
+ ## Notes
48
+
49
+ This gem was developed for our own requirements at **[Merchii](http://github.com/merchii)**, so feel free to send pull-requests with enhancements of any kind (features, bug-fixes, documentation, tests, etc.) to make it better or useful for you as well.
50
+
51
+ ## License
52
+
53
+ Released under the MIT license.
54
+
55
+ Copyright (c) [Jonas Grimfelt](http://github.com/grimen), [Merchii](http://github.com/merchii)
@@ -0,0 +1,9 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ task :default => :test
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs << ['lib', 'spec']
8
+ t.pattern = "spec/**/*_spec.rb"
9
+ end
data/TODO ADDED
@@ -0,0 +1,6 @@
1
+
2
+ == HIGH
3
+
4
+ - [issue]: Silence RMagick warnings.
5
+
6
+ - [feature/enhancement]: Implement using MiniMagick - need to learn the API, had some trouble so went RMagick-route.
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'bundler/setup'
4
+ Bundler.setup
5
+ require 'commander/import'
6
+ require 'placeholder_image'
7
+
8
+ program :name, 'placeholder_image'
9
+ program :version, PlaceholderImage::VERSION
10
+ program :description, 'Generate generic placeholder vector images - just like placehold.it, but native.'
11
+
12
+ default_command :generate
13
+
14
+ command :generate do |c|
15
+ c.syntax = 'placeholder_image generate WIDTHxHEIGHT FILEPATH [options]'
16
+ c.description = 'Generate placeholder image based on specified options.'
17
+ c.option '--bgcolor STRING', String, 'Image: background color'
18
+ c.option '--color STRING', String, 'Image: text color'
19
+ c.option '--text STRING', String, 'Image: text'
20
+ c.action do |args, options|
21
+ image_dimensions = args.shift
22
+ image_path = args.shift
23
+ generator_options = {
24
+ :background_color => options.bgcolor,
25
+ :text_color => options.color,
26
+ :text => options.text
27
+ }
28
+ begin
29
+ generator = PlaceholderImage::Generator.new(image_dimensions, generator_options)
30
+ generator.generate!(image_path)
31
+ say "=== GENERATED: ==========================="
32
+ say "Path: #{image_path.inspect}"
33
+ say "Options:"
34
+ generator.options.each do |k, v|
35
+ say " #{k}: #{v.inspect}"
36
+ end
37
+ say "=========================================="
38
+ rescue => e
39
+ say "#{e}"
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,10 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module PlaceholderImage
3
+
4
+ autoload :VERSION, 'placeholder_image/version'
5
+ autoload :Generator, 'placeholder_image/generator'
6
+
7
+ module Generators
8
+ autoload :RMagick, 'placeholder_image/generators/rmagick'
9
+ end
10
+ end
@@ -0,0 +1,61 @@
1
+ module PlaceholderImage
2
+ class Generator
3
+
4
+ GENERATORS = [:rmagick]
5
+
6
+ DEFAULT_FORMAT = 'png'
7
+ DEFAULT_BACKGROUND_COLOR = '#000000'
8
+ DEFAULT_TEXT_COLOR = '#ffffff'
9
+ DEFAULT_TEXT_SCALE_FACTOR = 9
10
+ DEFAULT_FONT = 'arial'
11
+ DIMENSIONS_SEPERATOR = " \u00D7 "
12
+
13
+ def initialize(dimension_string, options = {})
14
+ unless dimension_string.to_s.strip =~ /^\d+x\d+$/
15
+ raise ArgumentError, "Not a valid image dimension: #{dimension_string.inspect}. Expected format '100x100', etc."
16
+ end
17
+ dimensions = dimension_string.split('x')
18
+ @options = options
19
+ @options[:width] = dimensions[0].to_i
20
+ @options[:height] = dimensions[1].to_i
21
+ @generator = :rmagick
22
+ end
23
+
24
+ def generate
25
+ case @generator
26
+ when :rmagick
27
+ image = PlaceholderImage::Generators::RMagick.generate(options)
28
+ else
29
+ raise ArgumentError, "No such generator: #{@generator.inspect}. Valid generators: #{GENERATORS.inspect}"
30
+ end
31
+ image
32
+ end
33
+
34
+ def generate!(filename)
35
+ image = generate()
36
+ image.write(filename)
37
+ end
38
+
39
+ def options
40
+ width = @options[:width]
41
+ height = @options[:height]
42
+ background_color = @options[:background_color] ? @options[:background_color].to_s : DEFAULT_BACKGROUND_COLOR
43
+ text_color = @options[:text_color] ? @options[:text_color].to_s : DEFAULT_TEXT_COLOR
44
+ font = @options[:font] ? @options[:font].to_s : DEFAULT_FONT
45
+ text = @options[:text] ? @options[:text].to_s : [@options[:width], @options[:height]].join(DIMENSIONS_SEPERATOR)
46
+ text_scale_factor = DEFAULT_TEXT_SCALE_FACTOR
47
+ format = DEFAULT_FORMAT
48
+
49
+ {
50
+ :width => width,
51
+ :height => height,
52
+ :background_color => background_color,
53
+ :text_color => text_color,
54
+ :font => font,
55
+ :text => text,
56
+ :text_scale_factor => text_scale_factor,
57
+ :format => format
58
+ }
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,29 @@
1
+ require 'RMagick'
2
+ require 'rvg/rvg'
3
+
4
+ module PlaceholderImage
5
+ module Generators
6
+ class RMagick
7
+
8
+ def self.generate(options)
9
+ # background
10
+ rvg = ::Magick::RVG.new(options[:width], options[:height]).viewbox(0, 0, options[:width], options[:height]) do |canvas|
11
+ canvas.background_fill = options[:background_color]
12
+ end
13
+ image = rvg.draw
14
+
15
+ # text
16
+ draw = ::Magick::Draw.new
17
+ draw.pointsize = options[:width] / options[:text_scale_factor]
18
+ draw.fill = options[:text_color]
19
+ draw.gravity = ::Magick::CenterGravity
20
+ draw.annotate(image, 0, 0, 0, 0, options[:text])
21
+
22
+ image.format = options[:format]
23
+
24
+ image
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,3 @@
1
+ module PlaceholderImage
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require 'placeholder_image/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "merchii-placeholder_image"
7
+ s.version = PlaceholderImage::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Jonas Grimfelt", "Merchii"]
10
+ s.email = ["grimen@gmail.com", "operations@merchii.com"]
11
+ s.homepage = "https://github.com/merchii/placeholder_image"
12
+ s.summary = %q{Generate generic placeholder vector images - just like placehold.it, but native.}
13
+ s.description = s.summary
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {spec}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ # s.add_runtime_dependency 'mini_magick'
21
+ s.add_runtime_dependency 'rmagick'
22
+ s.add_runtime_dependency 'commander'
23
+
24
+ s.add_development_dependency 'rake'
25
+ s.add_development_dependency 'bundler'
26
+ s.add_development_dependency 'minitest'
27
+ s.add_development_dependency 'minitest-matchers'
28
+ s.add_development_dependency 'guard'
29
+ s.add_development_dependency 'guard-bundler'
30
+ s.add_development_dependency 'guard-minitest'
31
+ # s.add_development_dependency 'chunky_png'
32
+ end
@@ -0,0 +1,139 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe ::PlaceholderImage do
5
+
6
+ include ::PlaceholderImage::SpecHelpers::RMagick
7
+
8
+ describe "VERSION" do
9
+ it 'should be defined' do
10
+ defined?(::PlaceholderImage::VERSION)
11
+ end
12
+
13
+ it 'should be a valid version string (e.g. "0.0.1", or "0.0.1.rc1")' do
14
+ valid_version_string = /^\d+\.\d+\.\d+/
15
+ ::PlaceholderImage::VERSION.must_match valid_version_string
16
+ end
17
+ end
18
+
19
+ describe ::PlaceholderImage::Generator do
20
+ before(:each) do
21
+ @image_path = '/tmp/placeholder.png'
22
+ end
23
+
24
+ describe '#generate!' do
25
+ describe "format" do
26
+ it "should generate image as PNG image" do
27
+ generator = PlaceholderImage::Generator.new('150x100')
28
+ generator.generate!(@image_path)
29
+ image = open_image(@image_path)
30
+
31
+ format(image).must_equal 'png'
32
+ end
33
+ end
34
+
35
+ describe "dimensions" do
36
+ it "should require width/height arguments" do
37
+ # Don't get the MiniTest usage... :S
38
+ # proc { PlaceholderImage::Generator.new }.must_throw ArgumentError
39
+ end
40
+
41
+ it "should generate image with correct width/height using arguments" do
42
+ generator = PlaceholderImage::Generator.new('150x100')
43
+ generator.generate!(@image_path)
44
+ image = open_image(@image_path)
45
+
46
+ dimensions(image).must_equal [150, 100]
47
+ end
48
+ end
49
+
50
+ describe "background color" do
51
+ it "should generate image with 'gray' as background color - unless specified" do
52
+ generator = PlaceholderImage::Generator.new('150x100')
53
+ generator.generate!(@image_path)
54
+ image = open_image(@image_path)
55
+
56
+ background_color(image).must_equal '#000000'
57
+ end
58
+
59
+ it "should generate image with specified background color - if specified" do
60
+ generator = PlaceholderImage::Generator.new('150x100', :background_color => '#ff0000')
61
+ generator.generate!(@image_path)
62
+ image = open_image(@image_path)
63
+
64
+ background_color(image).must_equal '#ff0000'
65
+ end
66
+ end
67
+
68
+ # DANGER ZONE: More of a experiment testing text/font... *<:D
69
+
70
+ describe "text color" do
71
+ it "should generate image with 'white' as text color - unless specified" do
72
+ generator = PlaceholderImage::Generator.new('150x100')
73
+ generator.generate!(@image_path)
74
+ image = open_image(@image_path)
75
+
76
+ text_color(image).must_equal '#ffffff'
77
+ end
78
+
79
+ it "should generate image with specified text color - if specified" do
80
+ generator = PlaceholderImage::Generator.new('150x100', :text_color => '#ff0000')
81
+ generator.generate!(@image_path)
82
+ image = open_image(@image_path)
83
+
84
+ text_color(image).must_equal '#ff0000'
85
+ end
86
+ end
87
+
88
+ describe "text" do
89
+ it "should generate image with '<WIDTH>x<HEIGHT>' as text- unless specified" do
90
+ skip
91
+ # generator = PlaceholderImage::Generator.new('150x100')
92
+ # generator.generate!(@image_path)
93
+ # image = open_image(@image_path)
94
+ #
95
+ # bitmap(image).must_equal bitmap(fixture_image("/path/to/fixture"))
96
+ end
97
+
98
+ it "should generate image with specified text - if specified" do
99
+ skip
100
+ # generator = PlaceholderImage::Generator.new('150x100', :text => "#WIN")
101
+ # generator.generate!(@image_path)
102
+ # image = open_image(@image_path)
103
+ #
104
+ # bitmap(image).must_equal bitmap(fixture_image("/path/to/fixture"))
105
+ end
106
+
107
+ it "should generate image with no text if specified string is blank (i.e. non-nil, but zero-length)" do
108
+ skip
109
+ # generator = PlaceholderImage::Generator.new('150x100', :text => "")
110
+ # generator.generate!(@image_path)
111
+ # image = open_image(@image_path)
112
+ #
113
+ # bitmap(image).must_equal bitmap(fixture_image("/path/to/fixture"))
114
+ end
115
+ end
116
+ end
117
+
118
+ describe "font" do
119
+ it "should generate image with 'Arial' as font - unless specified" do
120
+ skip
121
+ # generator = PlaceholderImage::Generator.new('150x100')
122
+ # generator.generate!(@image_path)
123
+ # image = open_image(@image_path)
124
+ #
125
+ # bitmap(image).must_equal bitmap(fixture_image("/path/to/fixture"))
126
+ end
127
+
128
+ it "should generate image with specified text color - if specified" do
129
+ skip
130
+ # generator = PlaceholderImage::Generator.new('150x100', :font => 'verdana')
131
+ # generator.generate!(@image_path)
132
+ # image = open_image(@image_path)
133
+ #
134
+ # bitmap(image).must_equal bitmap(fixture_image("/path/to/fixture"))
135
+ end
136
+ end
137
+ end
138
+
139
+ end
@@ -0,0 +1,64 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require 'minitest/autorun'
3
+ require 'minitest/unit'
4
+ require 'minitest/spec'
5
+ require 'minitest/pride'
6
+ require 'minitest/matchers'
7
+ require 'tempfile'
8
+
9
+ require 'placeholder_image'
10
+
11
+ # References:
12
+ # - MiniMagick: https://github.com/probablycorey/mini_magick/blob/master/test/image_test.rb
13
+ # - ChunkyPNG: https://github.com/wvanbergen/chunky_png/blob/master/spec/chunky_png/color_spec.rb
14
+ # - RMagick: http://www.imagemagick.org/RMagick/doc/draw.html
15
+
16
+ module PlaceholderImage
17
+ module SpecHelpers
18
+ module RMagick
19
+
20
+ def open_image(path)
21
+ ::Magick::ImageList.new(path).flatten_images
22
+ end
23
+
24
+ def colors(image)
25
+ pixels = {}
26
+
27
+ image.each_pixel do |pixel, c, r|
28
+ # RMagick's API just kills me...
29
+ color = pixel.to_color(compliance=::Magick::AllCompliance, matte=true, depth=8, hex=true)
30
+
31
+ if pixels[color]
32
+ pixels[color] += 1
33
+ else
34
+ pixels[color] = 1
35
+ end
36
+ end
37
+
38
+ pixels.sort_by { |k,v| v }.reverse.map { |v| v[0].downcase }
39
+ end
40
+
41
+ def background_color(image)
42
+ colors(image)[0]
43
+ end
44
+
45
+ def text_color(image)
46
+ colors(image)[1]
47
+ end
48
+
49
+ def dimensions(image)
50
+ [image.columns, image.rows]
51
+ end
52
+
53
+ def format(image)
54
+ image.format.downcase
55
+ end
56
+
57
+ def fixture_image(filename)
58
+ filename = File.join(File.dirname(__FILE__), 'fixtures', filename)
59
+ open_image(filename)
60
+ end
61
+
62
+ end
63
+ end
64
+ end
metadata ADDED
@@ -0,0 +1,170 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: merchii-placeholder_image
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.1.0
6
+ platform: ruby
7
+ authors:
8
+ - Jonas Grimfelt
9
+ - Merchii
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2011-12-01 00:00:00 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rmagick
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: commander
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :runtime
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: rake
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: bundler
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: "0"
58
+ type: :development
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: minitest
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ type: :development
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: minitest-matchers
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: "0"
80
+ type: :development
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: guard
84
+ prerelease: false
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: "0"
91
+ type: :development
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: guard-bundler
95
+ prerelease: false
96
+ requirement: &id008 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: "0"
102
+ type: :development
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: guard-minitest
106
+ prerelease: false
107
+ requirement: &id009 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: "0"
113
+ type: :development
114
+ version_requirements: *id009
115
+ description: Generate generic placeholder vector images - just like placehold.it, but native.
116
+ email:
117
+ - grimen@gmail.com
118
+ - operations@merchii.com
119
+ executables:
120
+ - placeholder_image
121
+ extensions: []
122
+
123
+ extra_rdoc_files: []
124
+
125
+ files:
126
+ - .gitignore
127
+ - .travis.yml
128
+ - Gemfile
129
+ - Guardfile
130
+ - MIT-LICENSE
131
+ - README.md
132
+ - Rakefile
133
+ - TODO
134
+ - bin/placeholder_image
135
+ - lib/placeholder_image.rb
136
+ - lib/placeholder_image/generator.rb
137
+ - lib/placeholder_image/generators/rmagick.rb
138
+ - lib/placeholder_image/version.rb
139
+ - placeholder_image.gemspec
140
+ - spec/placeholder_image_spec.rb
141
+ - spec/spec_helper.rb
142
+ homepage: https://github.com/merchii/placeholder_image
143
+ licenses: []
144
+
145
+ post_install_message:
146
+ rdoc_options: []
147
+
148
+ require_paths:
149
+ - lib
150
+ required_ruby_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: "0"
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: "0"
162
+ requirements: []
163
+
164
+ rubyforge_project:
165
+ rubygems_version: 1.8.9
166
+ signing_key:
167
+ specification_version: 3
168
+ summary: Generate generic placeholder vector images - just like placehold.it, but native.
169
+ test_files: []
170
+