grim 0.3.0 → 1.0.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.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
  gemspec
3
- gem 'rake'
4
- gem 'rspec'
3
+ gem "rake"
4
+ gem "rspec"
@@ -23,10 +23,10 @@ Grim is a simple gem for extracting (reaping) a page from a pdf and converting i
23
23
 
24
24
  h2. Prerequisites
25
25
 
26
- You will need ghostscript, imagemagick, and xpdf installed. On the Mac (OSX) I highly recommend using "Homebrew":http://mxcl.github.com/homebrew/ to get them installed.
26
+ You will need ghostscript, imagemagick, and poppler installed. On the Mac (OSX) I highly recommend using "Homebrew":http://mxcl.github.com/homebrew/ to get them installed.
27
27
 
28
28
  <pre><code>
29
- brew install ghostscript imagemagick xpdf
29
+ brew install ghostscript imagemagick poppler
30
30
  </code></pre>
31
31
 
32
32
  h2. Installation
@@ -63,6 +63,19 @@ We also support using other processors (the default is whatever version of Image
63
63
  pdf = Grim.reap('/path/to/pdf)
64
64
  </code></pre>
65
65
 
66
+ h2. Reference
67
+
68
+ * "jonmagic.com: Grim":http://jonmagic.com/blog/archives/2011/09/06/grim/
69
+ * "jonmagic.com: Grim MultiProcessor":http://jonmagic.com/blog/archives/2011/10/06/grim-multiprocessor-to-the-rescue/
70
+
71
+ h2. Contributors
72
+
73
+ * "@jonmagic":https://github.com/jonmagic
74
+ * "@jnunemaker":https://github.com/jnunemaker
75
+ * "@bryckbost":https://github.com/bryckbost
76
+ * "@bkeepers":https://github.com/bkeepers
77
+ * "@BobaFaux":https://github.com/BobaFaux
78
+
66
79
  h2. License
67
80
 
68
- See LICENSE for details.
81
+ See LICENSE for details.
@@ -14,6 +14,9 @@ module Grim
14
14
  # Default density, any positive integer
15
15
  DENSITY = 300
16
16
 
17
+ # Default colorspace
18
+ COLORSPACE = "RGB"
19
+
17
20
  # Default exception class for Grim.
18
21
  class Exception < ::StandardError
19
22
  end
@@ -23,8 +23,9 @@ module Grim
23
23
  width = options.fetch(:width, Grim::WIDTH)
24
24
  density = options.fetch(:density, Grim::DENSITY)
25
25
  quality = options.fetch(:quality, Grim::QUALITY)
26
+ colorspace = options.fetch(:colorspace, Grim::COLORSPACE)
26
27
  command = [@imagemagick_path, "-resize", width.to_s, "-antialias", "-render",
27
- "-quality", quality.to_s, "-colorspace", "RGB",
28
+ "-quality", quality.to_s, "-colorspace", colorspace,
28
29
  "-interlace", "none", "-density", density.to_s,
29
30
  "#{Shellwords.shellescape(pdf.path)}[#{index}]", path]
30
31
  command.unshift("PATH=#{File.dirname(@ghostscript_path)}:#{ENV['PATH']}") if @ghostscript_path
@@ -34,4 +35,4 @@ module Grim
34
35
  $? == 0 || raise(UnprocessablePage, result)
35
36
  end
36
37
  end
37
- end
38
+ end
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module Grim
3
- VERSION = "0.3.0" unless defined?(::Grim::VERSION)
3
+ VERSION = "1.0.0" unless defined?(::Grim::VERSION)
4
4
  end
@@ -84,4 +84,22 @@ describe Grim::ImageMagickProcessor do
84
84
  (lower_time < higher_time).should be_true
85
85
  end
86
86
  end
87
+
88
+ describe "#save with colorspace option" do
89
+ before(:each) do
90
+ @path1 = tmp_path("to_png_spec-1.jpg")
91
+ @path2 = tmp_path("to_png_spec-2.jpg")
92
+ @pdf = Grim::Pdf.new(fixture_path("smoker.pdf"))
93
+ end
94
+
95
+ it "should use colorspace" do
96
+ Grim::ImageMagickProcessor.new.save(@pdf, 0, @path1, {:colorspace => 'RGB'})
97
+ Grim::ImageMagickProcessor.new.save(@pdf, 0, @path2, {:colorspace => 'sRGB'})
98
+
99
+ file1_size = File.stat(@path1).size
100
+ file2_size = File.stat(@path2).size
101
+
102
+ file1_size.should_not == file2_size
103
+ end
104
+ end
87
105
  end
@@ -47,7 +47,7 @@ describe Grim::Page do
47
47
  describe "#text" do
48
48
  it "should return the text from the selected page" do
49
49
  pdf = Grim::Pdf.new(fixture_path("smoker.pdf"))
50
- pdf[1].text.should == "Step 1: get someone to print this curve for you to scale, 72\342\200\235 wide\n\nStep 2: Get a couple 55 gallon drums\n\n\f"
50
+ pdf[1].text.should == "Step 1: get someone to print this curve for you to scale, 72 wide\n\nStep 2: Get a couple 55 gallon drums\n\n\f"
51
51
  end
52
52
  end
53
- end
53
+ end
@@ -22,6 +22,10 @@ describe Grim do
22
22
  Grim::DENSITY.should == 300
23
23
  end
24
24
 
25
+ it "should have COLORSPACE constant set to 'RGB'" do
26
+ Grim::COLORSPACE.should == 'RGB'
27
+ end
28
+
25
29
  describe "#reap" do
26
30
  it "should return an instance of Grim::Pdf" do
27
31
  Grim.reap(fixture_path("smoker.pdf")).class.should == Grim::Pdf
metadata CHANGED
@@ -1,33 +1,26 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: grim
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 0
10
- version: 0.3.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jonathan Hoyt
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-10-04 00:00:00 Z
12
+ date: 2014-03-12 00:00:00.000000000 Z
19
13
  dependencies: []
20
-
21
- description: Grim is a simple gem for extracting a page from a pdf and converting it to an image as well as extract the text from the page as a string. It basically gives you an easy to use api to ghostscript, imagemagick, and pdftotext specific to this use case.
22
- email:
14
+ description: Grim is a simple gem for extracting a page from a pdf and converting
15
+ it to an image as well as extract the text from the page as a string. It basically
16
+ gives you an easy to use api to ghostscript, imagemagick, and pdftotext specific
17
+ to this use case.
18
+ email:
23
19
  - jonmagic@gmail.com
24
20
  executables: []
25
-
26
21
  extensions: []
27
-
28
22
  extra_rdoc_files: []
29
-
30
- files:
23
+ files:
31
24
  - .gitignore
32
25
  - Gemfile
33
26
  - LICENSE
@@ -51,38 +44,29 @@ files:
51
44
  - spec/spec_helper.rb
52
45
  homepage: http://github.com/jonmagic/grim
53
46
  licenses: []
54
-
55
47
  post_install_message:
56
48
  rdoc_options: []
57
-
58
- require_paths:
49
+ require_paths:
59
50
  - lib
60
- required_ruby_version: !ruby/object:Gem::Requirement
51
+ required_ruby_version: !ruby/object:Gem::Requirement
61
52
  none: false
62
- requirements:
63
- - - ">="
64
- - !ruby/object:Gem::Version
65
- hash: 3
66
- segments:
67
- - 0
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
58
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
- version: "0"
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
78
63
  requirements: []
79
-
80
64
  rubyforge_project: grim
81
- rubygems_version: 1.8.6
65
+ rubygems_version: 1.8.23
82
66
  signing_key:
83
67
  specification_version: 3
84
68
  summary: Extract slides and text from a PDF.
85
- test_files:
69
+ test_files:
86
70
  - spec/fixtures/smoker.pdf
87
71
  - spec/fixtures/unprocessable.pdf
88
72
  - spec/lib/grim/image_magick_processor_spec.rb