mojo_magick 0.5.5 → 0.6.3
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 +5 -5
- data/.circleci/config.yml +25 -0
- data/.github/dependabot.yml +8 -0
- data/.rubocop-common.yml +99 -0
- data/.rubocop-performance.yml +2 -0
- data/.rubocop-rspec.yml +33 -0
- data/.rubocop.yml +11 -0
- data/.ruby-version +1 -1
- data/Gemfile +6 -1
- data/Gemfile.lock +58 -10
- data/README.md +35 -4
- data/Rakefile +14 -12
- data/examples/animated_gif.rb +11 -14
- data/examples/composite.rb +11 -14
- data/init.rb +1 -3
- data/lib/image_magick/fonts.rb +4 -11
- data/lib/mojo_magick.rb +116 -103
- data/lib/mojo_magick/command_status.rb +3 -2
- data/lib/mojo_magick/commands.rb +32 -0
- data/lib/mojo_magick/errors.rb +1 -1
- data/lib/mojo_magick/font.rb +4 -7
- data/lib/mojo_magick/opt_builder.rb +24 -35
- data/lib/mojo_magick/util/font_parser.rb +43 -0
- data/lib/mojo_magick/util/parser.rb +11 -60
- data/lib/mojo_magick/version.rb +1 -1
- data/mojo_magick.gemspec +20 -15
- data/test/fixtures/roll with it.jpg +0 -0
- data/test/font_parser_test.rb +29 -0
- data/test/font_test.rb +22 -28
- data/test/mojo_magick_test.rb +288 -283
- data/test/opt_builder_test.rb +105 -89
- data/test/test_helper.rb +7 -5
- metadata +78 -18
- data/lib/image_magick/resource_limits.rb +0 -96
- data/lib/initializers/hash.rb +0 -8
- data/test/fonts_test.rb +0 -12
- data/test/parser_test.rb +0 -30
- data/test/resource_limits_test.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 93f3aa9373877c8a0a09828441a83f62a4f633b0779642dd881460295ec117d1
|
4
|
+
data.tar.gz: '0395757ba6b054c84b1d649333d32b6ce085eaad407a3a80e1b23054cc5a6f32'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b417825f921e106e47a2a0387cd8dff673d468b40a95387cfbef1be8d3811067b2ee7d0115117fecaa8a39dfa77e5bec7ac9fb9fa49f8711a93df6d92e172b3
|
7
|
+
data.tar.gz: ef4726ee3b9db797d1eab003d54ebd53dba4af804583a353ae96f0299fd4f0de8dca632beb214df43bb658935166eaa66788cbbb45e102a4698a2262e76a9630
|
@@ -0,0 +1,25 @@
|
|
1
|
+
version: 2.1
|
2
|
+
orbs:
|
3
|
+
ruby: circleci/ruby@1.1.2
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
docker:
|
8
|
+
- image: circleci/ruby:2.6.6-browsers
|
9
|
+
executor: ruby/default
|
10
|
+
steps:
|
11
|
+
- checkout
|
12
|
+
- run:
|
13
|
+
name: Which bundler?
|
14
|
+
command: bundle -v
|
15
|
+
- ruby/install-deps
|
16
|
+
- run:
|
17
|
+
name: install imagemagick
|
18
|
+
command: sudo apt-get install imagemagick ghostscript
|
19
|
+
- run:
|
20
|
+
name: tests
|
21
|
+
command: bundle exec rake
|
22
|
+
- run:
|
23
|
+
name: audit
|
24
|
+
command: bundle exec bundle-audit update && bundle exec bundle-audit check
|
25
|
+
- ruby/rubocop-check
|
data/.rubocop-common.yml
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
DisplayCopNames: true
|
4
|
+
DisplayStyleGuide: true
|
5
|
+
Exclude:
|
6
|
+
- "bin/*"
|
7
|
+
- "db/schema.rb"
|
8
|
+
- "lib/templates/**/*"
|
9
|
+
- "**/node_modules/**/*"
|
10
|
+
- "tmp/**/*"
|
11
|
+
- "vendor/**/*"
|
12
|
+
- "log/**/*"
|
13
|
+
|
14
|
+
Layout/CaseIndentation:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
Layout/FirstArrayElementIndentation:
|
18
|
+
EnforcedStyle: consistent
|
19
|
+
|
20
|
+
Layout/HashAlignment:
|
21
|
+
Enabled: false
|
22
|
+
|
23
|
+
Layout/LineLength:
|
24
|
+
Max: 120
|
25
|
+
|
26
|
+
Layout/MultilineMethodCallIndentation:
|
27
|
+
EnforcedStyle: indented
|
28
|
+
|
29
|
+
Lint/AmbiguousBlockAssociation:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
Lint/ScriptPermission:
|
33
|
+
Exclude:
|
34
|
+
- "Rakefile"
|
35
|
+
|
36
|
+
Metrics/AbcSize:
|
37
|
+
Max: 35
|
38
|
+
Exclude:
|
39
|
+
- "spec/**/*"
|
40
|
+
|
41
|
+
Metrics/BlockLength:
|
42
|
+
CountComments: false
|
43
|
+
Max: 50
|
44
|
+
Exclude:
|
45
|
+
- "config/**/*"
|
46
|
+
- "spec/**/*"
|
47
|
+
|
48
|
+
Metrics/ClassLength:
|
49
|
+
Max: 250
|
50
|
+
Exclude:
|
51
|
+
- "spec/**/*"
|
52
|
+
|
53
|
+
Metrics/MethodLength:
|
54
|
+
Max: 25
|
55
|
+
Exclude:
|
56
|
+
- "db/migrate/*"
|
57
|
+
- "spec/**/*"
|
58
|
+
|
59
|
+
Naming/PredicateName:
|
60
|
+
Enabled: false
|
61
|
+
|
62
|
+
Security/YAMLLoad:
|
63
|
+
Enabled: false
|
64
|
+
|
65
|
+
Style/BarePercentLiterals:
|
66
|
+
EnforcedStyle: percent_q
|
67
|
+
|
68
|
+
Style/BlockDelimiters:
|
69
|
+
EnforcedStyle: braces_for_chaining
|
70
|
+
|
71
|
+
Style/Documentation:
|
72
|
+
Enabled: false
|
73
|
+
|
74
|
+
Style/EmptyMethod:
|
75
|
+
EnforcedStyle: expanded
|
76
|
+
|
77
|
+
Style/FrozenStringLiteralComment:
|
78
|
+
EnforcedStyle: never
|
79
|
+
|
80
|
+
Style/Lambda:
|
81
|
+
EnforcedStyle: literal
|
82
|
+
|
83
|
+
Style/ModuleFunction:
|
84
|
+
EnforcedStyle: extend_self
|
85
|
+
|
86
|
+
Style/MutableConstant:
|
87
|
+
Enabled: false
|
88
|
+
|
89
|
+
Style/PreferredHashMethods:
|
90
|
+
Enabled: false
|
91
|
+
|
92
|
+
Style/StringLiterals:
|
93
|
+
EnforcedStyle: double_quotes
|
94
|
+
|
95
|
+
Style/StringLiteralsInInterpolation:
|
96
|
+
EnforcedStyle: double_quotes
|
97
|
+
|
98
|
+
Style/TernaryParentheses:
|
99
|
+
EnforcedStyle: require_parentheses_when_complex
|
data/.rubocop-rspec.yml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# Request and system specs by definition do not test specific classes/modules,
|
2
|
+
# so they are excluded from following the `describe ClassOrModule` rule.
|
3
|
+
RSpec/DescribeClass:
|
4
|
+
Exclude:
|
5
|
+
- "spec/features/**/*"
|
6
|
+
- "spec/requests/**/*"
|
7
|
+
- "spec/system/**/*"
|
8
|
+
|
9
|
+
# Prefer short examples but allow some flexibility (up to 12 lines). System
|
10
|
+
# specs are excluded from this cop because they often involve many sequential
|
11
|
+
# steps, and forcing these to be shorter can make them harder to follow.
|
12
|
+
RSpec/ExampleLength:
|
13
|
+
Max: 12 # Default is 5
|
14
|
+
Exclude:
|
15
|
+
- "spec/features/**/*"
|
16
|
+
- "spec/system/**/*"
|
17
|
+
|
18
|
+
# If an `it` block does not have a description (i.e. the example relies on
|
19
|
+
# RSpec magic to infer the description), then prefer it use the `is_expected`
|
20
|
+
# syntax instead of `expect(subject)`, like this:
|
21
|
+
# it { is_expected.to be_truthy }
|
22
|
+
RSpec/ImplicitSubject:
|
23
|
+
EnforcedStyle: single_statement_only
|
24
|
+
|
25
|
+
# Ideal BDD is to have one `expect` per example (so that each specification can
|
26
|
+
# have corresponding documentation in the form of an `it` block), but we allow
|
27
|
+
# some flexibility (up to 3). System specs are often long capybara flows with
|
28
|
+
# many expectations, so we exclude them from this cop.
|
29
|
+
RSpec/MultipleExpectations:
|
30
|
+
Max: 3 # Default is 1
|
31
|
+
Exclude:
|
32
|
+
- "spec/features/**/*"
|
33
|
+
- "spec/system/**/*"
|
data/.rubocop.yml
ADDED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.6.6
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,26 +1,74 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mojo_magick (0.
|
4
|
+
mojo_magick (0.6.3)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
ast (2.4.1)
|
10
|
+
bundle-audit (0.1.0)
|
11
|
+
bundler-audit
|
12
|
+
bundler-audit (0.7.0.1)
|
13
|
+
bundler (>= 1.2.0, < 3)
|
14
|
+
thor (>= 0.18, < 2)
|
15
|
+
diff-lcs (1.4.4)
|
16
|
+
docile (1.3.5)
|
17
|
+
io-console (0.5.7)
|
18
|
+
irb (1.3.2)
|
19
|
+
reline (>= 0.1.5)
|
20
|
+
minitest (5.14.2)
|
21
|
+
parallel (1.19.2)
|
22
|
+
parser (2.7.2.0)
|
23
|
+
ast (~> 2.4.1)
|
24
|
+
rainbow (3.0.0)
|
25
|
+
rake (13.0.1)
|
26
|
+
regexp_parser (1.8.2)
|
27
|
+
reline (0.2.2)
|
28
|
+
io-console (~> 0.5)
|
29
|
+
rexml (3.2.4)
|
30
|
+
rspec-expectations (3.10.0)
|
31
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
32
|
+
rspec-support (~> 3.10.0)
|
33
|
+
rspec-support (3.10.0)
|
34
|
+
rubocop (1.1.0)
|
35
|
+
parallel (~> 1.10)
|
36
|
+
parser (>= 2.7.1.5)
|
37
|
+
rainbow (>= 2.2.2, < 4.0)
|
38
|
+
regexp_parser (>= 1.8)
|
39
|
+
rexml
|
40
|
+
rubocop-ast (>= 1.0.1)
|
41
|
+
ruby-progressbar (~> 1.7)
|
42
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
43
|
+
rubocop-ast (1.1.1)
|
44
|
+
parser (>= 2.7.1.5)
|
45
|
+
rubocop-performance (1.8.1)
|
46
|
+
rubocop (>= 0.87.0)
|
47
|
+
rubocop-ast (>= 0.4.0)
|
48
|
+
ruby-progressbar (1.10.1)
|
49
|
+
simplecov (0.21.2)
|
50
|
+
docile (~> 1.1)
|
51
|
+
simplecov-html (~> 0.11)
|
52
|
+
simplecov_json_formatter (~> 0.1)
|
53
|
+
simplecov-html (0.12.3)
|
54
|
+
simplecov_json_formatter (0.1.2)
|
55
|
+
thor (1.0.1)
|
56
|
+
unicode-display_width (1.7.0)
|
18
57
|
|
19
58
|
PLATFORMS
|
20
59
|
ruby
|
21
60
|
|
22
61
|
DEPENDENCIES
|
62
|
+
bundle-audit
|
63
|
+
bundler
|
64
|
+
irb
|
65
|
+
minitest
|
23
66
|
mojo_magick!
|
24
67
|
rake
|
25
68
|
rspec-expectations
|
69
|
+
rubocop
|
70
|
+
rubocop-performance
|
26
71
|
simplecov
|
72
|
+
|
73
|
+
BUNDLED WITH
|
74
|
+
1.17.2
|
data/README.md
CHANGED
@@ -10,6 +10,7 @@ This tool came about because I wanted a fast, simple, lightweight, nothing-goes-
|
|
10
10
|
because-it's-too-simple-to-break image tool.
|
11
11
|
|
12
12
|
[](http://badge.fury.io/rb/mojo_magick)
|
13
|
+
[]()
|
13
14
|
|
14
15
|
Using it
|
15
16
|
========
|
@@ -17,11 +18,11 @@ Using it
|
|
17
18
|
Add to your Gemfile
|
18
19
|
|
19
20
|
gem 'mojo_magick'
|
20
|
-
|
21
|
+
|
21
22
|
Require it in your ruby code
|
22
23
|
|
23
24
|
require 'mojo_magick'
|
24
|
-
|
25
|
+
|
25
26
|
Go to town! Check out a couple of simple [examples, here](examples/)
|
26
27
|
|
27
28
|
Examples
|
@@ -138,7 +139,7 @@ complex commands.
|
|
138
139
|
|
139
140
|
### Get a list of available fonts
|
140
141
|
|
141
|
-
fonts = MojoMagick::
|
142
|
+
fonts = MojoMagick::available_fonts
|
142
143
|
|
143
144
|
fonts.first
|
144
145
|
=> #<MojoMagick::Font:0x000001015a8b90 @name="AvantGarde-Book", @family="AvantGarde", @style="Normal", @stretch="Normal", @weight="400", @glyphs="/usr/local/share/ghostscript/fonts/a010013l.pfb">
|
@@ -196,7 +197,7 @@ Availablility
|
|
196
197
|
Contributions
|
197
198
|
=============
|
198
199
|
|
199
|
-
Got a fix? Got a feature?
|
200
|
+
Got a fix? Got a feature?
|
200
201
|
|
201
202
|
* fork it
|
202
203
|
* make a branch (named appropriately)
|
@@ -210,6 +211,36 @@ in the new code
|
|
210
211
|
|
211
212
|
Recent Changes
|
212
213
|
==============
|
214
|
+
#### Version 0.6.3
|
215
|
+
|
216
|
+
* Major cleanup and refactor (https://github.com/rcode5/mojo_magick/pull/33)
|
217
|
+
* Deprecated `MojoMagick.get_fonts` in favor of `MojoMagick.available_fonts`
|
218
|
+
* Moved `raw_command` and `execute` and `execute!` methods into their own module (and added deprecation warnings)
|
219
|
+
* Renamed `Util::Parser` to `Util::FontParser` because that's what it does
|
220
|
+
* Overall rubocop and ruby clean up
|
221
|
+
|
222
|
+
#### Version 0.6.2
|
223
|
+
|
224
|
+
* fix `annotate` option. Now it takes keyword arguments for geometry.
|
225
|
+
|
226
|
+
#### Version 0.6.1
|
227
|
+
|
228
|
+
* pushed and yanked - defunct version
|
229
|
+
|
230
|
+
#### Version 0.6.0
|
231
|
+
|
232
|
+
* general cleanup and update gems - ready for ImageMagick 7
|
233
|
+
* dumped resource limit handling
|
234
|
+
* PR #29, #30
|
235
|
+
|
236
|
+
#### Version 0.5.6
|
237
|
+
|
238
|
+
* add `get_format` method to help with quoted source file
|
239
|
+
|
240
|
+
#### Version 0.5.5
|
241
|
+
|
242
|
+
* Refactor raw_command into execute! and execute methods so that for cases where we don't care about exit status, it can be easily ignored
|
243
|
+
|
213
244
|
#### Version 0.5.4
|
214
245
|
|
215
246
|
* Include image magick commandline failure from raw_command (on failure)
|
data/Rakefile
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
-
require
|
1
|
+
require "rubygems"
|
2
|
+
require "simplecov"
|
3
|
+
require "rake/testtask"
|
2
4
|
|
3
|
-
task
|
5
|
+
task default: [:test]
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
require 'rake/runtest'
|
10
|
-
files = Dir.glob(File.join(File.dirname(__FILE__), 'test/*_test.rb'))
|
11
|
-
files.each do |f|
|
12
|
-
Rake.run_tests f
|
13
|
-
end
|
7
|
+
Rake::TestTask.new do |t|
|
8
|
+
t.libs = ["minitest"]
|
9
|
+
t.test_files = Dir.glob(File.join(File.dirname(__FILE__), "test/*_test.rb"))
|
10
|
+
t.verbose = true
|
14
11
|
end
|
15
12
|
|
16
13
|
desc "Build gem"
|
17
14
|
task :build do
|
18
15
|
`rm mojo_magick-*.gem`
|
19
|
-
puts `gem build mojo_magick.gemspec`
|
16
|
+
puts `gem build mojo_magick.gemspec`
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Release"
|
20
|
+
task release: :build do
|
21
|
+
puts `gem push mojo_magick-*.gem`
|
20
22
|
end
|
data/examples/animated_gif.rb
CHANGED
@@ -1,22 +1,19 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
require "mojo_magick"
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
MojoMagick::convert(nil, 'animated.gif') do |c|
|
7
|
-
c.size '200x200'
|
4
|
+
MojoMagick.convert(nil, "animated.gif") do |c|
|
5
|
+
c.size "200x200"
|
8
6
|
c.delay 100
|
9
7
|
c.image_block do # first layer
|
10
|
-
c.background
|
11
|
-
c.fill
|
12
|
-
c.gravity
|
13
|
-
c.label
|
8
|
+
c.background "blue"
|
9
|
+
c.fill "white"
|
10
|
+
c.gravity "northwest"
|
11
|
+
c.label "NW"
|
14
12
|
end
|
15
13
|
c.image_block do # second layer
|
16
|
-
c.background
|
17
|
-
c.fill
|
18
|
-
c.gravity
|
19
|
-
c.label
|
14
|
+
c.background "transparent"
|
15
|
+
c.fill "red"
|
16
|
+
c.gravity "southeast"
|
17
|
+
c.label "SE"
|
20
18
|
end
|
21
19
|
end
|
22
|
-
|
data/examples/composite.rb
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
require "mojo_magick"
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
MojoMagick::convert(nil, 'composite_out.png') do |c|
|
7
|
-
c.size '200x200'
|
4
|
+
MojoMagick.convert(nil, "composite_out.png") do |c|
|
5
|
+
c.size "200x200"
|
8
6
|
c.delay 100
|
9
7
|
c.image_block do # first layer
|
10
|
-
c.background
|
11
|
-
c.fill
|
12
|
-
c.gravity
|
13
|
-
c.label
|
8
|
+
c.background "blue"
|
9
|
+
c.fill "white"
|
10
|
+
c.gravity "northwest"
|
11
|
+
c.label "NW"
|
14
12
|
end
|
15
13
|
c.image_block do # second layer
|
16
|
-
c.background
|
17
|
-
c.fill
|
18
|
-
c.gravity
|
19
|
-
c.label
|
14
|
+
c.background "transparent"
|
15
|
+
c.fill "red"
|
16
|
+
c.gravity "southeast"
|
17
|
+
c.label "SE"
|
20
18
|
end
|
21
19
|
c.composite
|
22
20
|
end
|
23
|
-
|