catpix 0.1.0
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 +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/bin/catpix +55 -0
- data/catpix.gemspec +31 -0
- data/lib/catpix.rb +75 -0
- data/lib/catpix/private.rb +107 -0
- data/lib/catpix/version.rb +4 -0
- metadata +168 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1f6ffca3e7a8a1ecda737a7035cfc6098464c0f6
|
4
|
+
data.tar.gz: e8477a9b2b92e321275044fc0a4bcb3a8a5f5525
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c75fcf501af41168264127be579d69a62029649a4e134e846aadf6143b37e6279b62392e9ed76da1f5640d5809bbb3023a99ceff4e604ba564d3ea2b8a517fe5
|
7
|
+
data.tar.gz: c8add99b4d071378f05a1f3e954214ea3346de0bf6a5dce16065630da857f62b3b52d2a25e17ef499cf3180e141c7d19836e2ff1c86df70635da467581e81a41
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 Radek Pazdera
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Catpix
|
2
|
+
|
3
|
+
TODO: Write a gem description
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
TODO: Write usage instructions here
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
gem 'catpix'
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install catpix
|
22
|
+
|
23
|
+
## Contributing
|
24
|
+
|
25
|
+
1. Fork it ( https://github.com/[my-github-username]/catpix/fork )
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/bin/catpix
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'docopt'
|
4
|
+
require 'catpix'
|
5
|
+
|
6
|
+
doc = <<DOCOPT
|
7
|
+
Print images in the terminal.
|
8
|
+
|
9
|
+
Usage:
|
10
|
+
#{__FILE__} --help | --version
|
11
|
+
#{__FILE__} [options] <path>
|
12
|
+
|
13
|
+
Options:
|
14
|
+
-w=<width>, --limit-width Limit width of the image (factor of the size
|
15
|
+
of the terminal window) [default: 1].
|
16
|
+
-h=<height>, --limit-height Limit height of the image (factor of the size
|
17
|
+
of the terminal window) [default: 0],
|
18
|
+
-c=<pos>, --center Set x, y or xy centering in the window.
|
19
|
+
-b=<colour>, --bg Set background colour.
|
20
|
+
-f, --bg-fill Draw background around the image as well.
|
21
|
+
|
22
|
+
--help Show this message.
|
23
|
+
--version Print the version.
|
24
|
+
DOCOPT
|
25
|
+
|
26
|
+
begin
|
27
|
+
args = Docopt::docopt doc, :version => Catpix::VERSION
|
28
|
+
rescue Docopt::Exit => e
|
29
|
+
$stderr.puts e.message
|
30
|
+
exit 1
|
31
|
+
end
|
32
|
+
|
33
|
+
require 'pp'
|
34
|
+
|
35
|
+
pp args
|
36
|
+
options = {
|
37
|
+
:limit_x => args['--limit-width'].to_f,
|
38
|
+
:limit_y => args['--limit-height'].to_f,
|
39
|
+
:bg_fill => args['--bg-fill']
|
40
|
+
}
|
41
|
+
|
42
|
+
if args['--center']
|
43
|
+
options[:center_x] = true if args['--center'].include? 'x'
|
44
|
+
options[:center_y] = true if args['--center'].include? 'y'
|
45
|
+
|
46
|
+
if not args['--center'].include? 'x' or not args['--center'].include? 'x'
|
47
|
+
$stderr.puts "Error: Invalid --center argument. Use x, y or xy."
|
48
|
+
$stderr.puts doc
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
options[:bg] = args['--bg'] if args['--bg']
|
53
|
+
|
54
|
+
Catpix::print_image args['<path>'], options
|
55
|
+
exit 0
|
data/catpix.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'catpix/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "catpix"
|
8
|
+
spec.version = Catpix::VERSION
|
9
|
+
spec.authors = ["Radek Pazdera"]
|
10
|
+
spec.email = ["me@radek.io"]
|
11
|
+
spec.summary = %q{Cat images into the terminal.}
|
12
|
+
spec.description = %q{A library and a script that lets you easily print
|
13
|
+
images (png, jpg, gif and others) inside the command
|
14
|
+
line using imagemagick and the extended 256 colour
|
15
|
+
palette.}
|
16
|
+
spec.homepage = "https://github.com/pazdera/catpix"
|
17
|
+
spec.license = "MIT"
|
18
|
+
|
19
|
+
spec.files = `git ls-files -z`.split("\x0")
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_dependency "tco", "~> 0.1", ">= 0.1.6"
|
25
|
+
spec.add_dependency "rmagick", "~> 2.15", ">= 2.15.2"
|
26
|
+
spec.add_dependency "docopt", "~> 0.5", ">= 0.5.0"
|
27
|
+
spec.add_dependency "ruby-terminfo", "~> 0.1", ">= 0.1.1"
|
28
|
+
|
29
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
30
|
+
spec.add_development_dependency "rake", "~> 10.4"
|
31
|
+
end
|
data/lib/catpix.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
require "catpix/version"
|
2
|
+
require "catpix/private"
|
3
|
+
|
4
|
+
# Provides a function to print images in the terminal. A range of different
|
5
|
+
# formats is supported (check out what ImageMagick supports). Under the hood,
|
6
|
+
# this module uses two components:
|
7
|
+
#
|
8
|
+
# * [rmagick](https://rmagick.github.io/) to read and scale the images and
|
9
|
+
# * [tco](https://github.com/pazdera/tco) to map their pixels on the extended
|
10
|
+
# colour palette in the terminal.
|
11
|
+
#
|
12
|
+
# Some other minor features like centering and handling background colours
|
13
|
+
# are supplied directly by this module.
|
14
|
+
module Catpix
|
15
|
+
# Print an image to the terminal.
|
16
|
+
#
|
17
|
+
# All formats supported by ImageMagick are supported. The image's colours
|
18
|
+
# will be mapped onto the extended 256 colour palette. Also by default, it
|
19
|
+
# will be scaled down to fit the width of the terminal while keeping its
|
20
|
+
# proportions. This can be changed using the `options` parameter.
|
21
|
+
#
|
22
|
+
# @param [Hash] options Adjust some parameters of the image when printed.
|
23
|
+
# @option options [Float] :limit_x A factor of the terminal window's width.
|
24
|
+
# If present, the image will be scaled down
|
25
|
+
# to fit (proportions are kept). Using 0
|
26
|
+
# will disable the scaling. [default: 1.0]
|
27
|
+
# @option options [Float] :limit_y A factor of the terminal window's height.
|
28
|
+
# If present, the image will be scaled down
|
29
|
+
# to fit (proportions are kept). Using 0
|
30
|
+
# will disable the scaling. [default: 0]
|
31
|
+
# @option options [Boolean] :center_x Center the image horizontally in the
|
32
|
+
# terminal window. [default: false]
|
33
|
+
# @option options [Boolean] :center_y Center the image vertically in the
|
34
|
+
# terminal window. [default: false]
|
35
|
+
# @option options [String] :bg Background colour to use in case there are
|
36
|
+
# any fully transparent pixels in the image.
|
37
|
+
# This can be a RGB value '#c0ffee' or a tco
|
38
|
+
# alias 'red' or 'blue'. [default: nil]
|
39
|
+
# @option options [Boolean] :bg_fill Fill the margins around the image with
|
40
|
+
# background colour. [default: false]
|
41
|
+
def self.print_image(path, options={})
|
42
|
+
options = default_options.merge! options
|
43
|
+
|
44
|
+
img = load_image path
|
45
|
+
resize! img, options[:limit_x], options[:limit_y]
|
46
|
+
|
47
|
+
margins = get_margins img, options[:center_x], options[:center_y]
|
48
|
+
margin_colour = options[:bg_fill] ? options[:bg] : nil
|
49
|
+
|
50
|
+
print_vert_margin margins[:top], margin_colour
|
51
|
+
|
52
|
+
# print left margin for the first row
|
53
|
+
print_horiz_margin margins[:left], margin_colour
|
54
|
+
|
55
|
+
# print the image
|
56
|
+
img.each_pixel do |pixel, col, row|
|
57
|
+
if pixel.opacity == 65535
|
58
|
+
print_pixel options[:bg]
|
59
|
+
else
|
60
|
+
print_pixel get_normal_rgb pixel
|
61
|
+
end
|
62
|
+
|
63
|
+
if col >= img.columns - 1
|
64
|
+
print_horiz_margin margins[:right], margin_colour
|
65
|
+
puts
|
66
|
+
|
67
|
+
unless row == img.rows - 1
|
68
|
+
print_horiz_margin margins[:left], margin_colour
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
print_vert_margin margins[:bottom], margin_colour
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
|
2
|
+
require "rmagick"
|
3
|
+
require "tco"
|
4
|
+
require "terminfo"
|
5
|
+
|
6
|
+
module Catpix
|
7
|
+
private
|
8
|
+
def self.default_options
|
9
|
+
{
|
10
|
+
:limit_x => 1.0,
|
11
|
+
:limit_y => 0,
|
12
|
+
:center_x => false,
|
13
|
+
:center_y => false,
|
14
|
+
:bg => nil,
|
15
|
+
:bg_fill => false
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.print_pixel(colour=nil)
|
20
|
+
if colour
|
21
|
+
print " ".bg colour
|
22
|
+
else
|
23
|
+
print " "
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Returns normalised size of the terminal window
|
28
|
+
#
|
29
|
+
# Catpix uses two blank characters to approximate pixels in the terminal,
|
30
|
+
# so we need to divide the width of the terminal by 2.
|
31
|
+
def self.get_screen_size
|
32
|
+
th, tw = TermInfo.screen_size
|
33
|
+
[tw / 2, th]
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.load_image(path)
|
37
|
+
Magick::Image::read(path).first
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.resize!(img, limit_x=0, limit_y=0)
|
41
|
+
tw, th = get_screen_size
|
42
|
+
iw = img.columns
|
43
|
+
ih = img.rows
|
44
|
+
|
45
|
+
width = if limit_x > 0
|
46
|
+
(tw * limit_x).to_i
|
47
|
+
else
|
48
|
+
iw
|
49
|
+
end
|
50
|
+
|
51
|
+
height = if limit_y > 0
|
52
|
+
(th * limit_y).to_i
|
53
|
+
else
|
54
|
+
ih
|
55
|
+
end
|
56
|
+
|
57
|
+
# Resize the image if it's bigger than the limited viewport
|
58
|
+
if iw > width or ih > height
|
59
|
+
img.change_geometry "#{width}x#{height}" do |cols, rows, img|
|
60
|
+
img.resize! (cols).to_i, (rows).to_i
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Returns the normalised RGB of a ImageMagick's pixel
|
66
|
+
def self.get_normal_rgb(pixel)
|
67
|
+
[pixel.red, pixel.green, pixel.blue].map { |v| 255*(v/65535.0) }
|
68
|
+
end
|
69
|
+
|
70
|
+
# Determine the margins based on the centering options
|
71
|
+
def self.get_margins(img, center_x, center_y)
|
72
|
+
margins = {}
|
73
|
+
tw, th = get_screen_size
|
74
|
+
|
75
|
+
x_space = tw - img.columns
|
76
|
+
if center_x
|
77
|
+
margins[:left] = x_space / 2
|
78
|
+
margins[:right] = x_space / 2 + x_space % 2
|
79
|
+
else
|
80
|
+
margins[:left] = 0
|
81
|
+
margins[:right] = x_space
|
82
|
+
end
|
83
|
+
|
84
|
+
y_space = th - img.rows
|
85
|
+
if center_y
|
86
|
+
margins[:top] = y_space / 2
|
87
|
+
margins[:bottom] = y_space / 2 + y_space % 2
|
88
|
+
else
|
89
|
+
margins[:top] = 0
|
90
|
+
margins[:bottom] = 0
|
91
|
+
end
|
92
|
+
|
93
|
+
margins
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.print_vert_margin(size, colour)
|
97
|
+
tw, th = get_screen_size
|
98
|
+
size.times do
|
99
|
+
tw.times { print_pixel colour }
|
100
|
+
puts
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.print_horiz_margin(size, colour)
|
105
|
+
size.times { print_pixel colour }
|
106
|
+
end
|
107
|
+
end
|
metadata
ADDED
@@ -0,0 +1,168 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: catpix
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Radek Pazdera
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-28 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: tco
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.1'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.1.6
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.1'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.1.6
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rmagick
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.15'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.15.2
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '2.15'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.15.2
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: docopt
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0.5'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 0.5.0
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.5'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 0.5.0
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: ruby-terminfo
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0.1'
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.1.1
|
83
|
+
type: :runtime
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.1'
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 0.1.1
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: bundler
|
95
|
+
requirement: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '1.6'
|
100
|
+
type: :development
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - "~>"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '1.6'
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: rake
|
109
|
+
requirement: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - "~>"
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '10.4'
|
114
|
+
type: :development
|
115
|
+
prerelease: false
|
116
|
+
version_requirements: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - "~>"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '10.4'
|
121
|
+
description: |-
|
122
|
+
A library and a script that lets you easily print
|
123
|
+
images (png, jpg, gif and others) inside the command
|
124
|
+
line using imagemagick and the extended 256 colour
|
125
|
+
palette.
|
126
|
+
email:
|
127
|
+
- me@radek.io
|
128
|
+
executables:
|
129
|
+
- catpix
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- ".gitignore"
|
134
|
+
- Gemfile
|
135
|
+
- LICENSE.txt
|
136
|
+
- README.md
|
137
|
+
- Rakefile
|
138
|
+
- bin/catpix
|
139
|
+
- catpix.gemspec
|
140
|
+
- lib/catpix.rb
|
141
|
+
- lib/catpix/private.rb
|
142
|
+
- lib/catpix/version.rb
|
143
|
+
homepage: https://github.com/pazdera/catpix
|
144
|
+
licenses:
|
145
|
+
- MIT
|
146
|
+
metadata: {}
|
147
|
+
post_install_message:
|
148
|
+
rdoc_options: []
|
149
|
+
require_paths:
|
150
|
+
- lib
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
requirements: []
|
162
|
+
rubyforge_project:
|
163
|
+
rubygems_version: 2.2.2
|
164
|
+
signing_key:
|
165
|
+
specification_version: 4
|
166
|
+
summary: Cat images into the terminal.
|
167
|
+
test_files: []
|
168
|
+
has_rdoc:
|