quick_magick 0.7.4 → 0.8.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.

Potentially problematic release.


This version of quick_magick might be problematic. Click here for more details.

data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('quick_magick', '0.7.4') do |p|
5
+ Echoe.new('quick_magick', '0.8.0') do |p|
6
6
  p.description = "QuickMagick allows you to access ImageMagick command line functions using Ruby interface."
7
7
  p.summary = "A gem build by BadrIT to access ImageMagick command line functions easily and quickly"
8
8
  p.url = "http://quickmagick.rubyforge.org/"
data/lib/quick_magick.rb CHANGED
@@ -153,7 +153,7 @@ module QuickMagick
153
153
  # Escapes possible special chracters in command line
154
154
  # by surrounding it with double quotes
155
155
  def escape_commandline(str)
156
- str =~ /^(\w|\s|\.)*$/ ? str : "\"#{str}\""
156
+ str =~ /^(\w|\.)*$/ ? str : "\"#{str}\""
157
157
  end
158
158
 
159
159
  alias c escape_commandline
@@ -16,11 +16,11 @@ module QuickMagick
16
16
 
17
17
  # create an array of images from the given file
18
18
  def read(filename, &proc)
19
- info = identify(%Q<"#{filename}">)
19
+ info = identify(filename)
20
20
  info_lines = info.split(/[\r\n]/)
21
21
  images = []
22
22
  info_lines.each_with_index do |info_line, i|
23
- images << Image.new("#{filename}", i, info_line)
23
+ images << Image.new(filename, i, info_line)
24
24
  end
25
25
  images.each(&proc) if block_given?
26
26
  return images
@@ -449,6 +449,38 @@ module QuickMagick
449
449
  result =~ /Histogram:\s*\d+:\s*\(\s*(\d+),\s*(\d+),\s*(\d+)\)/
450
450
  return [$1.to_i, $2.to_i, $3.to_i]
451
451
  end
452
+
453
+ # Returns details of the image as found by "identify -verbose" command
454
+ def details
455
+ str_details = QuickMagick.exec3("identify -verbose #{QuickMagick.c image_filename}[#@index]")
456
+ # This is something like breadcrumb for hashes visited at any time
457
+ hash_stack = []
458
+ # Current indentation. Used to infer nesting using indentation
459
+ current_indent = ""
460
+ # Last key inserted in the hash. Used to determine which key is the parent of a nested hash
461
+ last_key = nil
462
+ # Start with top level empty hash
463
+ hash_stack.push({})
464
+ str_details.each_line do |line|
465
+ key, value = line.split(":", 2)
466
+ key_indent = key[/^\s*/]
467
+ if key_indent.length < current_indent.length
468
+ # Must go one level up
469
+ hash_stack.pop
470
+ elsif key_indent.length > current_indent.length
471
+ # Must go one level deeper using last key
472
+ hash_stack.last[last_key] = {}
473
+ hash_stack.push hash_stack.last[last_key]
474
+ end
475
+ current_indent = key_indent
476
+
477
+ key = key.strip
478
+ value = value.strip
479
+ hash_stack.last[key] = value
480
+ last_key = key
481
+ end
482
+ hash_stack.first
483
+ end
452
484
 
453
485
  # displays the current image as animated image
454
486
  def animate
data/quick_magick.gemspec CHANGED
@@ -2,28 +2,28 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{quick_magick}
5
- s.version = "0.7.4"
5
+ s.version = "0.8.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Ahmed ElDawy"]
9
- s.date = %q{2010-05-06}
9
+ s.date = %q{2010-10-28}
10
10
  s.description = %q{QuickMagick allows you to access ImageMagick command line functions using Ruby interface.}
11
11
  s.email = %q{ahmed.eldawy@badrit.com}
12
12
  s.extra_rdoc_files = ["README.rdoc", "lib/quick_magick.rb", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb"]
13
- s.files = ["Manifest", "README.rdoc", "Rakefile", "lib/quick_magick.rb", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb", "quick_magick.gemspec", "test/9.gif", "test/badfile.xxx", "test/image_list_test.rb", "test/image_test.rb", "test/multipage.tif", "test/test_magick.rb", "test/warnings.tiff"]
13
+ s.files = ["Manifest", "README.rdoc", "Rakefile", "lib/quick_magick.rb", "lib/quick_magick/image.rb", "lib/quick_magick/image_list.rb", "quick_magick.gemspec", "test/9.gif", "test/badfile.xxx", "test/image_list_test.rb", "test/image_test.rb", "test/multipage.tif", "test/test_magick.rb", "test/warnings.tiff", "test/test_quick_magick.rb"]
14
14
  s.homepage = %q{http://quickmagick.rubyforge.org/}
15
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Quick_magick", "--main", "README.rdoc~"]
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Quick_magick", "--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = %q{quickmagick}
18
- s.rubygems_version = %q{1.3.6}
18
+ s.rubygems_version = %q{1.3.7}
19
19
  s.summary = %q{A gem build by BadrIT to access ImageMagick command line functions easily and quickly}
20
- s.test_files = ["test/image_test.rb", "test/image_list_test.rb", "test/test_magick.rb"]
20
+ s.test_files = ["test/test_quick_magick.rb", "test/image_test.rb", "test/test_magick.rb", "test/image_list_test.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
24
  s.specification_version = 3
25
25
 
26
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
27
  else
28
28
  end
29
29
  else
@@ -1,15 +1,15 @@
1
1
  require 'test/unit'
2
2
  require 'quick_magick'
3
- require 'ftools'
3
+ require 'fileutils'
4
4
 
5
5
  $base_dir = File.dirname(File.expand_path(__FILE__))
6
6
 
7
7
  class ImageTest < Test::Unit::TestCase
8
8
  def setup
9
9
  @logo_filename = File.join($base_dir, "imagemagick-logo.png")
10
- `convert magick:logo #{@logo_filename}`
10
+ `convert magick:logo "#{@logo_filename}"`
11
11
  @small_logo_filename = File.join($base_dir, "logo-small.jpg")
12
- `convert magick:logo -resize 100x100! #{@small_logo_filename}`
12
+ `convert magick:logo -resize 100x100! "#{@small_logo_filename}"`
13
13
  end
14
14
 
15
15
  def teardown
@@ -111,4 +111,4 @@ class ImageTest < Test::Unit::TestCase
111
111
  File.delete(out_filename1) if out_filename1 && File.exists?(out_filename1)
112
112
  File.delete(out_filename2) if out_filename2 && File.exists?(out_filename2)
113
113
  end
114
- end
114
+ end
data/test/image_test.rb CHANGED
@@ -7,9 +7,9 @@ class ImageTest < Test::Unit::TestCase
7
7
 
8
8
  def setup
9
9
  @logo_filename = File.join($base_dir, "imagemagick-logo.png")
10
- `convert magick:logo #{@logo_filename}`
10
+ `convert magick:logo "#{@logo_filename}"`
11
11
  @small_logo_filename = File.join($base_dir, "logo-small.jpg")
12
- `convert magick:logo -resize 100x100! #{@small_logo_filename}`
12
+ `convert magick:logo -resize 100x100! "#{@small_logo_filename}"`
13
13
  end
14
14
 
15
15
  def teardown
@@ -326,4 +326,11 @@ class ImageTest < Test::Unit::TestCase
326
326
  image = QuickMagick::Image.read(image_filename)[1]
327
327
  assert_equal [234,43,44], image.get_pixel(256,73)
328
328
  end
329
+
330
+ def test_details
331
+ image_details = QuickMagick::Image.read(@logo_filename)[0].details
332
+ assert_equal Hash, image_details.class
333
+ assert_equal ["Image"], image_details.keys
334
+ assert_equal "228.364 (0.895545)", image_details["Image"]["Channel statistics"]["Red"]["mean"]
335
+ end
329
336
  end
@@ -0,0 +1,17 @@
1
+ require 'test/unit'
2
+ require 'quick_magick'
3
+
4
+ $base_dir = File.dirname(File.expand_path(__FILE__))
5
+
6
+ class QuickMagickTest < Test::Unit::TestCase
7
+ def test_escape_commandline
8
+ [
9
+ ["good_file_name.png", "good_file_name.png"],
10
+ ["filename with spaces.png", '"filename with spaces.png"'],
11
+ ["filename_with_$pec!als.jpg", '"filename_with_$pec!als.jpg"']
12
+ ].each do |filename, escaped_filename|
13
+ assert_equal escaped_filename, QuickMagick::c(filename)
14
+ end
15
+
16
+ end
17
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 7
8
- - 4
9
- version: 0.7.4
7
+ - 8
8
+ - 0
9
+ version: 0.8.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ahmed ElDawy
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-06 00:00:00 +03:00
17
+ date: 2010-10-28 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -44,6 +44,7 @@ files:
44
44
  - test/multipage.tif
45
45
  - test/test_magick.rb
46
46
  - test/warnings.tiff
47
+ - test/test_quick_magick.rb
47
48
  has_rdoc: true
48
49
  homepage: http://quickmagick.rubyforge.org/
49
50
  licenses: []
@@ -55,10 +56,11 @@ rdoc_options:
55
56
  - --title
56
57
  - Quick_magick
57
58
  - --main
58
- - README.rdoc~
59
+ - README.rdoc
59
60
  require_paths:
60
61
  - lib
61
62
  required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
62
64
  requirements:
63
65
  - - ">="
64
66
  - !ruby/object:Gem::Version
@@ -66,6 +68,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
68
  - 0
67
69
  version: "0"
68
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
69
72
  requirements:
70
73
  - - ">="
71
74
  - !ruby/object:Gem::Version
@@ -76,11 +79,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
79
  requirements: []
77
80
 
78
81
  rubyforge_project: quickmagick
79
- rubygems_version: 1.3.6
82
+ rubygems_version: 1.3.7
80
83
  signing_key:
81
84
  specification_version: 3
82
85
  summary: A gem build by BadrIT to access ImageMagick command line functions easily and quickly
83
86
  test_files:
87
+ - test/test_quick_magick.rb
84
88
  - test/image_test.rb
85
- - test/image_list_test.rb
86
89
  - test/test_magick.rb
90
+ - test/image_list_test.rb