mojo_magick 0.5.3 → 0.6.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 +5 -5
- data/.circleci/config.yml +24 -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 +10 -0
- data/.ruby-version +1 -1
- data/Gemfile +6 -1
- data/Gemfile.lock +58 -10
- data/LICENSE.txt +1 -1
- data/README.md +50 -2
- data/Rakefile +15 -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 +6 -6
- data/lib/initializers/hash.rb +5 -1
- data/lib/mojo_magick.rb +191 -186
- data/lib/mojo_magick/command_status.rb +11 -0
- data/lib/mojo_magick/errors.rb +5 -0
- data/lib/mojo_magick/font.rb +4 -6
- data/lib/mojo_magick/opt_builder.rb +23 -32
- data/lib/mojo_magick/util/parser.rb +7 -48
- data/lib/mojo_magick/version.rb +1 -1
- data/mojo_magick.gemspec +21 -16
- data/test/fixtures/roll with it.jpg +0 -0
- data/test/font_test.rb +22 -28
- data/test/fonts_test.rb +4 -5
- data/test/mojo_magick_test.rb +282 -256
- data/test/opt_builder_test.rb +46 -49
- data/test/parser_test.rb +17 -18
- data/test/test_helper.rb +7 -5
- metadata +87 -25
- data/lib/image_magick/resource_limits.rb +0 -94
- data/lib/image_resources.rb +0 -0
- 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: cdb2b6563318eaf003552e04cafaba99adf014b716ac750a4c0b1ca3f0c8323c
|
4
|
+
data.tar.gz: ed67fde557f5c57d3f507586a8ecef00c3c1dc918cf38b0cf35af42c0d9972b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eef7bf4734a8874370a005308cfea49d0cc060417da11e234fb2d6c69136bb5ea5d428f1f95fdbefe80e71ab1140191cc18e9dce113683d30835f4e089744e60
|
7
|
+
data.tar.gz: ffbadc0a11cce5222848142a3f148c5d0a034923892791ff321c7591cb00f5b117309a6996cf57bf3456f422a819729601c8f9cbd16c71d8c0517b8927f7f2d0
|
@@ -0,0 +1,24 @@
|
|
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
|
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.0)
|
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/LICENSE.txt
CHANGED
@@ -2,7 +2,7 @@ MojoMagick is released under the MIT license
|
|
2
2
|
|
3
3
|
The MIT License (MIT)
|
4
4
|
|
5
|
-
Copyright (c) 2013 Jon Rogers, Steve
|
5
|
+
Copyright (c) 2013 Jon Rogers, Steve Midgley & Elliott Nelson
|
6
6
|
|
7
7
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
8
|
of this software and associated documentation files (the "Software"), to deal
|
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
|
@@ -176,14 +177,61 @@ Note: Use with care. If you don't have fonts installed ImageMagick can spin off
|
|
176
177
|
c.composite
|
177
178
|
end
|
178
179
|
|
180
|
+
Dependencies
|
181
|
+
============
|
182
|
+
|
183
|
+
This library has (in the past) been good for ruby 1.8.7 and beyond.
|
184
|
+
Recent mods (as of 0.5.x) will require a more recent ruby (>1.9.3).
|
185
|
+
|
186
|
+
If you're running on 1.8.7, you should be able to safely use 0.4.3
|
187
|
+
|
188
|
+
Do this by pinning it in your Gemfile
|
189
|
+
|
190
|
+
gem 'mojo_magick', '0.4.3'
|
179
191
|
|
180
192
|
Availablility
|
181
193
|
=============
|
182
194
|
* [Github Repo](http://github.com/rcode5/mojo_magick) This is the current canonical branch.
|
183
195
|
* Issues/Pull Requests can be submitted through the above repository.
|
184
196
|
|
197
|
+
Contributions
|
198
|
+
=============
|
199
|
+
|
200
|
+
Got a fix? Got a feature?
|
201
|
+
|
202
|
+
* fork it
|
203
|
+
* make a branch (named appropriately)
|
204
|
+
* write your code
|
205
|
+
* write your tests
|
206
|
+
* test it (`rake` will run the tests)
|
207
|
+
* submit a pull request
|
208
|
+
|
209
|
+
Note: please don't change the version. We'll do that when we merge
|
210
|
+
in the new code
|
211
|
+
|
185
212
|
Recent Changes
|
186
213
|
==============
|
214
|
+
#### Version 0.6.0
|
215
|
+
|
216
|
+
* general cleanup and update gems - ready for ImageMagick 7
|
217
|
+
* dumped resource limit handling
|
218
|
+
* PR #29, #30
|
219
|
+
|
220
|
+
#### Version 0.5.6
|
221
|
+
|
222
|
+
* add `get_format` method to help with quoted source file
|
223
|
+
|
224
|
+
#### Version 0.5.5
|
225
|
+
|
226
|
+
* 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
|
227
|
+
|
228
|
+
#### Version 0.5.4
|
229
|
+
|
230
|
+
* Include image magick commandline failure from raw_command (on failure)
|
231
|
+
* moved to Popen3
|
232
|
+
* added checks for Popen3 on windows
|
233
|
+
* updated README to include info about submissions
|
234
|
+
* probably no good for ruby 1.8.7 anymore
|
187
235
|
|
188
236
|
#### Version 0.5.1
|
189
237
|
|
data/Rakefile
CHANGED
@@ -1,19 +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
|
|
13
|
+
desc "Build gem"
|
16
14
|
task :build do
|
17
15
|
`rm mojo_magick-*.gem`
|
18
|
-
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`
|
19
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
|
-
|