image_voodoo 0.9.0 → 0.9.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e110e54c634bb3970622f8b0e4fb180fa570e15c53b0ccf830d3ccaf1efed822
4
- data.tar.gz: 34d6555550532df09c08f48d15c79d2b749573c85dc8e726bae1757b0249a189
3
+ metadata.gz: 5028b379cc34f48eb0851549a5f49a9ebd2495385d5fdbfe09d6b9fb0bdd006c
4
+ data.tar.gz: 873525e43dbfb68a86b664b19d19fa49d522e5312945f86d1939386d17369f94
5
5
  SHA512:
6
- metadata.gz: 5e4cf9fbf2a7d8045dd3a5be081ae2c1410cc71e327386f779b3f774d95fc4a1d174221e62cfc94c441e738e41e6e572e033f2c47da8e0c9759ca10cf4fcdd46
7
- data.tar.gz: 50608dbcde4b2abc26877b0bafa91223e5a26f818dd398ad8b245dd630cc1ccd9fd8974cbaca0c0db63f493066fde7ba3d224464363fe4adbc9f44bb4b65ace7
6
+ metadata.gz: ee3af809b508d7cf1e4d880e155e487c19ce9579298d132b02d494edf2e63c681b0deed07b891b8d430f75fc6e3058c12fe7ad98fee47f704acdf4bc5abf8087
7
+ data.tar.gz: 50fd50f6ba4d34afc4b6585dfdeaeb2077a380ef1073522641253f89f7b2e5aa956174019e8275ee674a7cbad8287d22e42cd50fe2af5a576624bd0b577ce4e6
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  lib/image_voodoo_jars.rb
5
5
  lib/com
6
+ .idea
data/.rubocop.yml CHANGED
@@ -38,12 +38,12 @@ Metrics/AbcSize:
38
38
  # in a table and then execute lambdas for each orientation but this is much
39
39
  # more clear.
40
40
  Metrics/CyclomaticComplexity:
41
- Max: 9
41
+ Max: 10
42
42
 
43
43
  # A bunch of fields in a hash are basically generated data. Correcting them
44
44
  # for column seems much too pedantic. I guess exclude is the right thing for
45
45
  # an unusual file?
46
- Metrics/LineLength:
46
+ Layout/LineLength:
47
47
  Max: 132
48
48
  Exclude:
49
49
  - 'lib/image_voodoo/metadata.rb'
@@ -87,14 +87,6 @@ Metrics/BlockLength:
87
87
  Exclude:
88
88
  - 'bin/image_voodoo'
89
89
 
90
- # casecmp for this case seems like it is much less readable in a place where
91
- # performance could never matter (a 3-4 char downcase before processing an
92
- # image :) ). This could end up being important somewhere but as a default
93
- # on it feels weird since I find it less readable.
94
- Performance/Casecmp:
95
- Exclude:
96
- - 'lib/image_voodoo/awt.rb'
97
-
98
90
  # Hash rocket looks much more natural in a rakefile for its deps.
99
91
  Style/HashSyntax:
100
92
  Exclude:
@@ -120,7 +112,7 @@ Metrics/ParameterLists:
120
112
  # w for width. Those probably could be written out but they are so common
121
113
  # I am basically opting for short-hand. This is something I rarely do except
122
114
  # domain-driven code like this (x,y,h,w).
123
- Naming/UncommunicativeMethodParamName:
115
+ Naming/MethodParameterName:
124
116
  Enabled: false
125
117
 
126
118
  # This represents one of those frustrating dogmatic rules where if I followed
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler'
2
4
  require 'rake/testtask'
3
5
  require 'jars/installer'
4
6
  Bundler::GemHelper.install_tasks
5
7
  Bundler.setup
6
8
 
7
- task :default => [:vendor_jars, :test]
9
+ task :default => %i[vendor_jars test]
8
10
 
9
11
  desc 'Vendor Jars'
10
12
  task :vendor_jars do
data/bin/image_voodoo CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #!/usr/bin/env ruby
2
4
 
3
5
  require 'optparse'
data/image_voodoo.gemspec CHANGED
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
2
3
 
3
4
  $LOAD_PATH.push File.expand_path('lib', __dir__)
4
5
  require 'image_voodoo/version'
@@ -13,16 +14,14 @@ Gem::Specification.new do |s|
13
14
  s.summary = 'Image manipulation in JRuby with ImageScience compatible API'
14
15
  s.description = 'Image manipulation in JRuby with ImageScience compatible API'
15
16
 
16
- s.rubyforge_project = 'image_voodoo'
17
-
18
17
  s.files = `git ls-files`.split("\n")
19
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
19
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
21
20
  s.require_paths = %w[lib vendor]
22
- s.has_rdoc = true
23
21
 
24
22
  s.add_development_dependency 'jar-dependencies'
25
23
  s.add_development_dependency 'rake'
24
+ s.add_development_dependency 'rubocop'
26
25
  s.add_development_dependency 'ruby-maven'
27
26
  s.add_development_dependency 'test-unit'
28
27
 
data/lib/image_science.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo'
2
4
  # HA HA...let the pin-pricking begin
3
5
  ImageScience = ImageVoodoo
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'java'
2
4
 
3
5
  # Hide in ImageVoodoo so awt.rb can see this and we will not polute global
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'java'
2
4
 
3
5
  # Hide in ImageVoodoo so awt.rb can see this and we will not polute global
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ImageVoodoo
2
4
  # (Experimental) An attempt at some primitive drawing in images.
3
5
  module Shapes
@@ -14,7 +16,7 @@ class ImageVoodoo
14
16
  border_width = options[:width].to_i || 2
15
17
  new_width, new_height = width + 2*border_width, height + 2*border_width
16
18
  target = paint(BufferedImage.new(new_width, new_height, color_type)) do |g|
17
- paint_border(g, new_width, new_height, options[:color])
19
+ paint_border(g, new_width, new_height, options)
18
20
  g.draw_image(@src, nil, border_width, border_width)
19
21
  end
20
22
  block_given? ? yield(target) : target
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo/awt/core_ext/buffered_image'
2
4
  require 'image_voodoo/awt/core_ext/graphics2d'
3
5
  require 'image_voodoo/awt/shapes'
@@ -132,7 +134,9 @@ class ImageVoodoo
132
134
 
133
135
  def determine_format_from_file_name(file_name)
134
136
  ext = file_name.split('.')[-1]
137
+
135
138
  raise ArgumentError, "no extension in file name #{file_name}" unless ext
139
+
136
140
  ext
137
141
  end
138
142
 
@@ -182,7 +186,9 @@ class ImageVoodoo
182
186
  # with an ArgumentError.
183
187
  def hex_to_color(rgb='000000')
184
188
  rgb ||= '000000'
189
+
185
190
  raise ArgumentError, 'hex rrggbb needed' if rgb !~ /[[:xdigit:]]{6,6}/
191
+
186
192
  Color.new(rgb[0, 2].to_i(16), rgb[2, 2].to_i(16), rgb[4, 2].to_i(16))
187
193
  end
188
194
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Google App Engine implementation (does this work?)
2
4
  class ImageVoodoo
3
5
  java_import com.google.appengine.api.images.Image
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo_jars'
2
4
  require 'stringio'
3
5
 
@@ -19,7 +21,9 @@ class ImageVoodoo
19
21
  #
20
22
  def [](dirname)
21
23
  dirclass = DIRECTORY_MAP[dirname.to_s]
24
+
22
25
  raise ArgumentError, "Uknown metadata group: #{dirname}" unless dirclass
26
+
23
27
  dirclass.new @metadata
24
28
  end
25
29
 
@@ -81,10 +85,15 @@ class ImageVoodoo
81
85
  # defined.
82
86
  def [](tag_name)
83
87
  return nil unless @directory
88
+
84
89
  (tag_type, tag_method) = self.class::TAGS[tag_name.to_s]
90
+
85
91
  raise ArgumentError, "Unkown tag_name: #{tag_name}" unless tag_type
92
+
86
93
  java_tag_type = self.class.directory_class.const_get tag_type
94
+
87
95
  return nil unless @directory.contains_tag java_tag_type
96
+
88
97
  @directory.__send__ tag_method, java_tag_type
89
98
  end
90
99
  end
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ImageVoodoo; NEEDS_HEAD = true; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ImageVoodoo
2
- VERSION = '0.9.0'.freeze
4
+ VERSION = '0.9.1'
3
5
  end
data/lib/image_voodoo.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Before we load image_voodoo we can specify whether we want it to load full
2
4
  # AWT ala http://www.oracle.com/technetwork/articles/javase/headless-136834.html
3
5
  # Most users are using image_voodoo as a library for manipulation and do not
@@ -156,8 +158,8 @@ class ImageVoodoo
156
158
  def resize(width, height)
157
159
  target = guard { resize_impl(width, height) }
158
160
  block_given? ? yield(target) : target
159
- rescue java.lang.Exception => ne # figure out why this is here at all?
160
- raise ArgumentError, ne.message
161
+ rescue java.lang.Exception => e # figure out why this is here at all?
162
+ raise ArgumentError, e.message
161
163
  end
162
164
 
163
165
  # Rotates the image by angle (specified in degrees).
@@ -171,6 +173,7 @@ class ImageVoodoo
171
173
  def save(file)
172
174
  format = File.extname(file)
173
175
  return false if format == ''
176
+
174
177
  format = format[1..-1].downcase
175
178
  guard { save_impl(format, JFile.new(file)) }
176
179
  true
@@ -207,6 +210,7 @@ class ImageVoodoo
207
210
  # A top-level image loader opens path and then yields/returns the image.
208
211
  def self.with_image(path)
209
212
  raise ArgumentError, "file does not exist: #{path}" unless File.file?(path)
213
+
210
214
  image = guard { with_image_impl(JFile.new(path)) }
211
215
  image && block_given? ? yield(image) : image
212
216
  end
data/samples/bench.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/local/bin/ruby -w
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'benchmark'
4
5
  require 'rbconfig'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo'
2
4
 
3
5
  # reads in the file specified by ARGV[0], transforming to greyscale and
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_science'
2
4
 
3
5
  # reads in the file specified by ARGV[0], transforms it into a 32-pixel thumbnail,
data/samples/file_view.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo/needs_head'
2
4
  require 'image_voodoo'
3
5
 
data/samples/in_memory.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo'
2
4
 
3
5
  # reads in the image at ARGV[0], transforms it into a 32-pixel thumbnail in-memory,
data/samples/lossy.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'image_voodoo'
2
4
 
3
5
  ImageVoodoo.with_image(ARGV[0]) do |img|
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test/unit/testcase'
2
4
  require 'test/unit' if $PROGRAM_NAME == __FILE__
3
5
  require 'image_science'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test/unit/testcase'
2
4
  require 'test/unit' if $PROGRAM_NAME == __FILE__
3
5
  require 'image_voodoo'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test/unit/testcase'
2
4
  require 'test/unit' if $PROGRAM_NAME == __FILE__
3
5
  require 'image_voodoo'
data/test/test_shapes.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test/unit/testcase'
2
4
  require 'test/unit' if $PROGRAM_NAME == __FILE__
3
5
  require 'image_voodoo'
data/tools/gen.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Used to generate part of metadata.rb. Unfortunately, I am unable to fill
2
4
  # in appropriate access methods so I generate with get_string and then manually
3
5
  # update. In future versions I will just run this twice with old and new src
@@ -30,6 +32,7 @@ directories = {}
30
32
  io.readlines.each do |line|
31
33
  # .../IptcDirectory.java: public static final int TAG_BY_LINE = 80;
32
34
  next if %r{Source/[/]?(?<dir_name>.*).java:.*TAG_(?<tag_name>[\S]+)} !~ line
35
+
33
36
  directory_name = normalize_directory_name dir_name
34
37
  directories[directory_name] ||= []
35
38
  directories[directory_name] << normalize_tag_name(tag_name)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_voodoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas E. Enebo, Charles Nutter, Nick Sieger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-26 00:00:00.000000000 Z
11
+ date: 2021-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ name: rubocop
48
+ prerelease: false
49
+ type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  requirement: !ruby/object:Gem::Requirement
43
57
  requirements:
@@ -134,8 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
148
  version: '0'
135
149
  requirements:
136
150
  - jar com.drewnoakes, metadata-extractor, 2.11.0
137
- rubyforge_project: image_voodoo
138
- rubygems_version: 2.7.6
151
+ rubygems_version: 3.2.14
139
152
  signing_key:
140
153
  specification_version: 4
141
154
  summary: Image manipulation in JRuby with ImageScience compatible API