poleica 0.9.12 → 0.10.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.
Files changed (38) hide show
  1. checksums.yaml +6 -14
  2. data/.travis.yml +2 -1
  3. data/CHANGELOG.md +30 -12
  4. data/Gemfile +5 -2
  5. data/Gemfile.lock +69 -146
  6. data/README.md +22 -12
  7. data/Rakefile +2 -3
  8. data/lib/poleica/configuration.rb +1 -0
  9. data/lib/poleica/converters/coercive.rb +3 -2
  10. data/lib/poleica/converters/convertible.rb +2 -3
  11. data/lib/poleica/converters/general.rb +0 -1
  12. data/lib/poleica/converters/graphics_magick/convert_options_generator.rb +69 -0
  13. data/lib/poleica/converters/graphics_magick/graphics_magick.rb +37 -0
  14. data/lib/poleica/converters/graphics_magick/thumbnail_options_generator.rb +108 -0
  15. data/lib/poleica/converters/libre_office.rb +13 -13
  16. data/lib/poleica/converters/utils.rb +36 -19
  17. data/lib/poleica/errors.rb +1 -0
  18. data/lib/poleica/pathable.rb +2 -2
  19. data/lib/poleica/polei.rb +1 -1
  20. data/lib/poleica/types/archive.rb +1 -2
  21. data/lib/poleica/types/document.rb +17 -18
  22. data/lib/poleica/types/general.rb +0 -2
  23. data/lib/poleica/types/image.rb +2 -3
  24. data/lib/poleica/types/pdf.rb +2 -3
  25. data/lib/poleica/version.rb +2 -1
  26. data/lib/poleica.rb +6 -1
  27. data/poleica.gemspec +0 -2
  28. data/test/poleica/configuration_test.rb +4 -2
  29. data/test/poleica/converters/coercive_test.rb +5 -6
  30. data/test/poleica/converters/graphics_magick_test.rb +38 -21
  31. data/test/poleica/converters/libre_office_test.rb +7 -8
  32. data/test/poleica/converters/utils_test.rb +12 -2
  33. data/test/poleica/types/typeable_test.rb +11 -11
  34. data/test/support/files/120x70.png +0 -0
  35. data/test/support/files/30x30.png +0 -0
  36. data/test/test_helper.rb +2 -1
  37. metadata +23 -32
  38. data/lib/poleica/converters/graphics_magick.rb +0 -118
@@ -0,0 +1,108 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module Poleica
3
+ module Converters
4
+ class GraphicsMagick
5
+ # Generate options for the GraphicsMagick to_thumbnail
6
+ # @options page [Array, Integer]
7
+ class ThumbnailOptionsGenerator
8
+ include Poleica::Converters::Utils
9
+ attr_reader :polei, :options, :current_width,
10
+ :current_height, :output_path
11
+
12
+ def initialize(polei, options = {})
13
+ @polei = polei
14
+ @options = default_options.merge(options)
15
+ @current_width, @current_height = identify
16
+ end
17
+
18
+ def generate
19
+ [
20
+ 'convert',
21
+ "#{polei.path}[0]",
22
+ orient_options,
23
+ resize_options,
24
+ output_options
25
+ ].flatten
26
+ end
27
+
28
+ private
29
+
30
+ def default_options
31
+ {
32
+ height: DEFAULT_MEASURE,
33
+ width: DEFAULT_MEASURE,
34
+ auto_orient: true
35
+ }
36
+ end
37
+
38
+ def orient_options
39
+ @orient_options ||= options[:auto_orient] ? '-auto-orient' : ''
40
+ end
41
+
42
+ def resize_options
43
+ @resize_options ||=
44
+ [
45
+ '-resize',
46
+ "#{width_and_height_options}"
47
+ ]
48
+ end
49
+
50
+ def width_and_height_options
51
+ if current_width >= current_height
52
+ width_only_option
53
+ else
54
+ height_only_option
55
+ end
56
+ end
57
+
58
+ def width_only_option
59
+ if percent(current_width, options[:width]) > 50
60
+ "#{options[:width]}!x"
61
+ else
62
+ "#{current_width}x#{current_height}"
63
+ end
64
+ end
65
+
66
+ def height_only_option
67
+ if percent(current_height, options[:height]) > 50
68
+ "x#{options[:height]}!"
69
+ else
70
+ "#{current_width}x#{current_height}"
71
+ end
72
+ end
73
+
74
+ def identify
75
+ line = exec_with_timeout(bin_path(GraphicsMagick), identify_options)
76
+ width, height = line.split.first.split('x')
77
+ [width.to_i, height.to_i]
78
+ end
79
+
80
+ def identify_options
81
+ [
82
+ 'identify',
83
+ '-format',
84
+ '%wx%h ',
85
+ polei.path
86
+ ]
87
+ end
88
+
89
+ def percent(comparing, compared)
90
+ (comparing.to_f / compared.to_f) * 100
91
+ end
92
+
93
+ def output_options
94
+ @output_path = if options[:path]
95
+ if File.directory?(options[:path])
96
+ name = File.basename(polei.path_with_md5(:png))
97
+ File.join(options[:path], name)
98
+ else
99
+ options[:path]
100
+ end
101
+ else
102
+ polei.path_with_md5(:png)
103
+ end
104
+ end
105
+ end # class ThumbnailOptionsGenerator
106
+ end # class GraphicsMagick
107
+ end # module Converters
108
+ end # module Poleica
@@ -21,10 +21,10 @@ module Poleica
21
21
  opts_gen = OptionsGenerator.new(polei, options, :pdf)
22
22
  exec_with_timeout(bin_path, opts_gen.generate)
23
23
  expected_file_path = opts_gen[:path] || polei.path_with_md5(:pdf)
24
- File.exists?(expected_file_path) ? expected_file_path : nil
24
+ File.exist?(expected_file_path) ? expected_file_path : nil
25
25
  ensure
26
26
  temp_file_path = opts_gen.temp_path
27
- File.delete(temp_file_path) if File.exists?(temp_file_path)
27
+ File.delete(temp_file_path) if File.exist?(temp_file_path)
28
28
  end
29
29
 
30
30
  private
@@ -58,7 +58,7 @@ module Poleica
58
58
  # @return temp_path [String]
59
59
  def temp_path
60
60
  @temp_path ||= generate_temp_path
61
- FileUtils.cp(polei.path, @temp_path) unless File.exists?(@temp_path)
61
+ FileUtils.cp(polei.path, @temp_path) unless File.exist?(@temp_path)
62
62
  @temp_path
63
63
  end
64
64
 
@@ -78,19 +78,19 @@ module Poleica
78
78
  end
79
79
 
80
80
  def pathable_object
81
- pathable_object = Struct.new(:path).new(options[:path])
82
- pathable_object.extend(Poleica::Pathable)
81
+ pathable_object = Struct.new(:path).new(options[:path])
82
+ pathable_object.extend(Poleica::Pathable)
83
83
  end
84
84
 
85
85
  def default_options
86
- %w{
87
- --nologo
88
- --headless
89
- --invisible
90
- --norestore
91
- --nolockcheck
92
- --convert-to
93
- }
86
+ %w(
87
+ --nologo
88
+ --headless
89
+ --invisible
90
+ --norestore
91
+ --nolockcheck
92
+ --convert-to
93
+ )
94
94
  end
95
95
 
96
96
  def output_options
@@ -6,7 +6,6 @@ module Poleica
6
6
  module Converters
7
7
  # An Utility module for the converters needs to be include
8
8
  module Utils
9
-
10
9
  HOST_OS ||= (defined?('RbConfig') ? RbConfig : Config)::CONFIG['host_os']
11
10
 
12
11
  def windows?
@@ -22,15 +21,15 @@ module Poleica
22
21
  end
23
22
 
24
23
  def host_os
25
- [:windows, :osx, :linux].find { |os| self.send(:"#{os}?") }
24
+ [:windows, :osx, :linux].find { |os| send(:"#{os}?") }
26
25
  end
27
26
 
28
- def bin_path
29
- converter = :"#{underscorize(self.class)}"
27
+ def bin_path(given_class = nil)
28
+ converter = :"#{underscorize(given_class || self.class)}"
30
29
  configuration = Poleica.configuration.send(converter)
31
30
  bin_paths = configuration[:bin_paths]
32
31
  path = bin_paths[host_os] || bin_paths[:linux]
33
- raise "#{self.class} not found @ #{path}" unless File.exists?(path)
32
+ fail "#{converter} not found @ #{path}" unless File.exist?(path)
34
33
  path
35
34
  end
36
35
 
@@ -50,24 +49,42 @@ module Poleica
50
49
  [extension, options]
51
50
  end
52
51
 
53
- def exec_with_timeout(bin, args = [], timeout = nil, no_stdout = true)
54
- args = Array(args).map(&:to_s)
55
- timeout ||= Poleica.configuration.timeout
56
- process = ChildProcess.build(bin, *args)
57
- set_process_stdout(process, no_stdout)
58
- process.start
59
- timeout ? process.poll_for_exit(timeout) : process.wait
52
+ def exec_with_timeout(bin, args = [], options = {})
53
+ timeout = options[:timeout] || Poleica.configuration.timeout
54
+ process = ChildProcess.build(bin, *Array(args).map(&:to_s))
55
+ map_std(process) do
56
+ process.start
57
+ timeout ? process.poll_for_exit(timeout) : process.wait
58
+ end
60
59
  rescue ChildProcess::TimeoutError => e
61
60
  process.stop
62
- raise(Poleica::TimeoutError.new(e.message))
61
+ raise Poleica::TimeoutError, e.message
62
+ end
63
+
64
+ def map_std(process, &block)
65
+ stdout, stdout_w, stderr, stderr_w = init_process_std(process)
66
+ yield
67
+ stderr_w.close.nil? && fail_if_error(process, stderr)
68
+ stdout_w.close.nil? && stdout.read
69
+ ensure
70
+ stderr_w.close unless stderr_w.closed?
71
+ stdout_w.close unless stdout_w.closed?
72
+ end
73
+
74
+ def init_process_std(process)
75
+ stdout, stdout_w = IO.pipe
76
+ stderr, stderr_w = IO.pipe
77
+
78
+ process.io.stdout = stdout_w
79
+ process.io.stderr = stderr_w
80
+
81
+ [stdout, stdout_w, stderr, stderr_w]
63
82
  end
64
83
 
65
- def set_process_stdout(process, no_stdout)
66
- if no_stdout
67
- null = IO.new(IO.sysopen('/dev/null', 'w'), 'w')
68
- process.io.stdout = process.io.stderr = null
69
- else
70
- process.io.inherit!
84
+ def fail_if_error(process, stderr)
85
+ unless process.exit_code == 0
86
+ message = "Code: #{process.exit_code} #{stderr.read}"
87
+ fail Poleica::ProcessError, message
71
88
  end
72
89
  end
73
90
  end # module Utils
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  module Poleica
3
3
  class TimeoutError < StandardError; end
4
+ class ProcessError < StandardError; end
4
5
  end # module Poleica
@@ -7,11 +7,11 @@ module Poleica
7
7
  end
8
8
 
9
9
  def path_without_extension
10
- File.join(File.dirname(self.path), File.basename(self.path, '.*'))
10
+ File.join(File.dirname(path), File.basename(path, '.*'))
11
11
  end
12
12
 
13
13
  def path_with_md5(extension = self.extension)
14
- data = File.read(self.path)
14
+ data = File.read(path)
15
15
  md5 = Digest::MD5.new
16
16
  digest = md5.hexdigest(data)
17
17
  "#{path_without_extension}-#{digest}.#{extension}"
data/lib/poleica/polei.rb CHANGED
@@ -10,7 +10,7 @@ module Poleica
10
10
 
11
11
  def initialize(path)
12
12
  @path = path.strip
13
- raise "No file @ #{path}" unless File.exists?(path)
13
+ fail "No file @ #{path}" unless File.exist?(path)
14
14
  end
15
15
 
16
16
  def name
@@ -6,7 +6,6 @@ module Poleica
6
6
  COMPATIBLE_MIMETYPES = [
7
7
  'application/zip' # .zip or a range of docs like .key, .pptx or .docx
8
8
  ]
9
-
10
9
  end # class Archive
11
10
  end # module Types
12
- end # module Poleica
11
+ end # module Poleica
@@ -4,25 +4,25 @@ module Poleica
4
4
  # Document Type
5
5
  class Document
6
6
  COMPATIBLE_MIMETYPES = [
7
- 'applicationiapplication/vnd.oasis.opendocument.image', # .odi
8
- 'application/vnd.oasis.opendocument.presentation', # .opd
9
- 'application/vnd.oasis.opendocument.text-master', # .odm
10
- 'application/vnd.oasis.opendocument.spreadsheet', # .ods
11
- 'application/vnd.oasis.opendocument.graphics', # .odg
12
- 'application/vnd.oasis.opendocument.formula', # .odf
13
- 'application/vnd.oasis.opendocument.chart', # .odc
14
- 'application/vnd.oasis.opendocument.text', # .odt
15
- 'application/vnd.ms-office', # .doc
16
- 'application/vnd.ms-excel', # .xls
17
- 'application/vnd.ms-office', # .ppt, .pps
18
- 'application/msword', # .doc
19
- 'text/html', # .html, .htm
20
- 'text/plain', # .txt
21
- 'text/rtf' # .rft
7
+ 'application/vnd.oasis.opendocument.presentation', # .opd
8
+ 'application/vnd.oasis.opendocument.text-master', # .odm
9
+ 'application/vnd.oasis.opendocument.spreadsheet', # .ods
10
+ 'application/vnd.oasis.opendocument.graphics', # .odg
11
+ 'application/vnd.oasis.opendocument.formula', # .odf
12
+ 'application/vnd.oasis.opendocument.chart', # .odc
13
+ 'application/vnd.oasis.opendocument.image', # .odi
14
+ 'application/vnd.oasis.opendocument.text', # .odt
15
+ 'application/vnd.ms-office', # .doc
16
+ 'application/vnd.ms-excel', # .xls
17
+ 'application/vnd.ms-office', # .ppt, .pps
18
+ 'application/msword', # .doc
19
+ 'text/html', # .html, .htm
20
+ 'text/plain', # .txt
21
+ 'text/rtf' # .rft
22
22
  ]
23
23
 
24
24
  # Unsupported :( : key, pages
25
- COMPATIBLE_EXTENSIONS = %w{
25
+ COMPATIBLE_EXTENSIONS = %w(
26
26
  html
27
27
  htm
28
28
  odt
@@ -43,10 +43,9 @@ module Poleica
43
43
  pps
44
44
  txt
45
45
  rft
46
- }
46
+ )
47
47
 
48
48
  def initialize(file_path)
49
-
50
49
  end
51
50
  end # class Document
52
51
  end # module Types
@@ -4,12 +4,10 @@ module Poleica
4
4
  # Null Object Pattern Type, this is the type returned if no compatible
5
5
  # types are found
6
6
  class General
7
-
8
7
  COMPATIBLE_MIMETYPES = []
9
8
  COMPATIBLE_EXTENSIONS = []
10
9
 
11
10
  def initialize(file_path)
12
-
13
11
  end
14
12
  end # class General
15
13
  end # module Types
@@ -14,7 +14,7 @@ module Poleica
14
14
  'image/png' # .png
15
15
  ]
16
16
 
17
- COMPATIBLE_EXTENSIONS = %w{
17
+ COMPATIBLE_EXTENSIONS = %w(
18
18
  tiff
19
19
  jpeg
20
20
  ppm
@@ -27,10 +27,9 @@ module Poleica
27
27
  tif
28
28
  gif
29
29
  png
30
- }
30
+ )
31
31
 
32
32
  def initialize(file_path)
33
-
34
33
  end
35
34
  end # class Image
36
35
  end # module Types
@@ -7,12 +7,11 @@ module Poleica
7
7
  'application/pdf' # pdf
8
8
  ]
9
9
 
10
- COMPATIBLE_EXTENSIONS = %w{
10
+ COMPATIBLE_EXTENSIONS = %w(
11
11
  pdf
12
- }
12
+ )
13
13
 
14
14
  def initialize(file_path)
15
-
16
15
  end
17
16
  end # class PDF
18
17
  end # module Types
@@ -1,4 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # Poleica namespace
2
3
  module Poleica
3
- VERSION ||= '0.9.12'
4
+ VERSION = '0.10.0'
4
5
  end # module Poleica
data/lib/poleica.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # The Awesome Namespace
3
+ # Poleica is a general converter
2
4
  module Poleica
3
5
  def self.new(file_or_path)
4
6
  file_or_path = file_or_path.path if file_or_path.respond_to?(:path)
@@ -20,8 +22,11 @@ require 'poleica/types/all'
20
22
  require 'poleica/converters/utils'
21
23
  require 'poleica/converters/general'
22
24
  require 'poleica/converters/coercive'
23
- require 'poleica/converters/graphics_magick'
24
25
  require 'poleica/converters/libre_office'
26
+ require 'poleica/converters/graphics_magick/graphics_magick'
27
+ require 'poleica/converters/graphics_magick/thumbnail_options_generator'
28
+ require 'poleica/converters/graphics_magick/convert_options_generator'
29
+ # /!\ Should be last converters
25
30
  require 'poleica/converters/convertible'
26
31
 
27
32
  require 'poleica/pathable'
data/poleica.gemspec CHANGED
@@ -15,8 +15,6 @@ Gem::Specification.new do |s|
15
15
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
16
 
17
17
  s.add_runtime_dependency 'childprocess'
18
- # s.add_runtime_dependency 'posix-spawn' ONLY MRI
19
18
 
20
19
  s.add_development_dependency 'bundler', '~> 1.3'
21
- s.add_development_dependency 'rake'
22
20
  end
@@ -5,9 +5,11 @@ class ConfigurationTest < Minitest::Test
5
5
  def test_timeout_configuration
6
6
  start_time = Time.now
7
7
  Poleica.configure { |config| config.timeout = 1 }
8
- Poleica::Converters::Utils.exec_with_timeout('sleep 2') rescue nil
8
+ # rubocop:disable RescueModifier
9
+ Poleica::Converters::Utils.exec_with_timeout('sleep 10') rescue nil
10
+ # rubocop:enable
9
11
  duration = Time.now - start_time
10
- assert(duration < 2)
12
+ assert(duration < 10)
11
13
  ensure
12
14
  Poleica.configure { |config| config.timeout = 120 }
13
15
  end
@@ -1,7 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require 'test_helper'
3
3
  # Test the Coercive Converter Module
4
-
5
4
  class CoerciveTest < Minitest::Test
6
5
  DOC_PATH = "#{Support.support_path}/files/example.doc"
7
6
 
@@ -18,13 +17,13 @@ class CoerciveTest < Minitest::Test
18
17
 
19
18
  def test_try_convert_intermediary_file_creation
20
19
  coercive_conv.send(:coerce, :to_png, {})
21
- assert(File.exists?(expected_pdf_path))
20
+ assert(File.exist?(expected_pdf_path))
22
21
  clean_pdf_file
23
22
  end
24
23
 
25
24
  def test_try_convert_file_creation
26
25
  coercive_conv.send(:try_convert, :to_png)
27
- assert(File.exists?(find_png_path))
26
+ assert(File.exist?(find_png_path))
28
27
  clean_png_file(find_png_path)
29
28
  clean_pdf_file
30
29
  end
@@ -32,7 +31,7 @@ class CoerciveTest < Minitest::Test
32
31
  def test_coercive_conversion
33
32
  polei = Poleica.new(DOC_PATH)
34
33
  returned_path = polei.to_png
35
- assert(File.exists?(returned_path))
34
+ assert(File.exist?(returned_path))
36
35
  clean_png_file(find_png_path)
37
36
  end
38
37
 
@@ -45,11 +44,11 @@ class CoerciveTest < Minitest::Test
45
44
  private
46
45
 
47
46
  def clean_pdf_file
48
- File.exists?(expected_pdf_path) && File.delete(expected_pdf_path)
47
+ File.exist?(expected_pdf_path) && File.delete(expected_pdf_path)
49
48
  end
50
49
 
51
50
  def clean_png_file(png_path = expected_png_path)
52
- File.exists?(png_path) && File.delete(png_path)
51
+ File.exist?(png_path) && File.delete(png_path)
53
52
  end
54
53
 
55
54
  def expected_pdf_path
@@ -2,7 +2,6 @@
2
2
  require 'test_helper'
3
3
  # Test the GraphicsMagick Converter Module
4
4
  class GraphicsMagickTest < Minitest::Test
5
-
6
5
  PDF_PATH = "#{Support.support_path}/files/example.pdf"
7
6
 
8
7
  def setup
@@ -18,7 +17,7 @@ class GraphicsMagickTest < Minitest::Test
18
17
 
19
18
  def test_to_png_create_a_file
20
19
  returned_path = pdf_polei.to_png
21
- assert(returned_path && File.exists?(returned_path))
20
+ assert(returned_path && File.exist?(returned_path))
22
21
  clean_png_file
23
22
  end
24
23
 
@@ -26,31 +25,31 @@ class GraphicsMagickTest < Minitest::Test
26
25
  path_option = "#{Support.support_path}/files/path_test.png"
27
26
  returned_path = pdf_polei.to_png(path: path_option)
28
27
  assert(returned_path)
29
- assert(File.exists?(path_option))
30
- assert(File.exists?(returned_path))
28
+ assert(File.exist?(path_option))
29
+ assert(File.exist?(returned_path))
31
30
  assert_equal(returned_path, path_option)
32
- File.delete(path_option) if File.exists?(path_option)
31
+ File.delete(path_option) if File.exist?(path_option)
33
32
  end
34
33
 
35
34
  def test_to_png_path_with_spaces
36
35
  path_option = "#{Support.support_path}/files/path with spaces.png"
37
36
  returned_path = pdf_polei.to_png(path: path_option)
38
37
  assert(returned_path)
39
- assert(File.exists?(path_option))
40
- assert(File.exists?(returned_path))
38
+ assert(File.exist?(path_option))
39
+ assert(File.exist?(returned_path))
41
40
  assert_equal(returned_path, path_option)
42
- File.delete(path_option) if File.exists?(path_option)
41
+ File.delete(path_option) if File.exist?(path_option)
43
42
  end
44
43
 
45
44
  def test_path_folder
46
45
  path_option = '/tmp/'
47
- expected_path = "/tmp/#{File.basename(pdf_polei.path_with_md5)}"
46
+ expected_path = "/tmp/#{File.basename(pdf_polei.path_with_md5(:png))}"
48
47
  returned_path = pdf_polei.to_png(path: path_option)
49
48
  assert(returned_path)
50
- assert(File.exists?(expected_path))
51
- assert(File.exists?(returned_path))
49
+ assert(File.exist?(expected_path))
50
+ assert(File.exist?(returned_path))
52
51
  assert_equal(expected_path, returned_path)
53
- File.delete(expected_path) if File.exists?(expected_path)
52
+ File.delete(expected_path) if File.exist?(expected_path)
54
53
  end
55
54
 
56
55
  def test_force_resize_option
@@ -76,22 +75,40 @@ class GraphicsMagickTest < Minitest::Test
76
75
  clean_png_file
77
76
  end
78
77
 
79
- def test_thumbnail_option
80
- returned_path = pdf_polei.to_png(width: 100,
81
- height: 100,
82
- thumbnail: true)
83
- expected_path = Support.expected_converted_path(PDF_PATH, :png)
84
- bin_path = Poleica::Converters::GraphicsMagick.new(pdf_polei).bin_path
78
+ def test_thumbnail
79
+ path_option = "#{Support.support_path}/files/120x70.png"
80
+ polei = Poleica::Polei.new(path_option)
81
+ returned_path = polei.to_thumbnail(width: 100,
82
+ height: 100)
83
+ expected_path = Support.expected_converted_path(path_option)
84
+ bin_path = Poleica::Converters::GraphicsMagick.new(polei).bin_path
85
85
  assert_equal(expected_path, returned_path)
86
86
  size = `#{bin_path} identify #{returned_path}`.split[2][/(\w)*/]
87
- assert_equal('100x100', size)
88
- clean_png_file
87
+ assert_equal('100x58', size)
88
+ if File.exist?(expected_path)
89
+ File.delete(expected_path)
90
+ end
91
+ end
92
+
93
+ def test_thumbnail_too_small
94
+ path_option = "#{Support.support_path}/files/30x30.png"
95
+ polei = Poleica::Polei.new(path_option)
96
+ returned_path = polei.to_thumbnail(width: 100,
97
+ height: 100)
98
+ expected_path = Support.expected_converted_path(path_option)
99
+ bin_path = Poleica::Converters::GraphicsMagick.new(polei).bin_path
100
+ assert_equal(expected_path, returned_path)
101
+ size = `#{bin_path} identify #{returned_path}`.split[2][/(\w)*/]
102
+ assert_equal('30x30', size)
103
+ if File.exist?(expected_path)
104
+ File.delete(expected_path)
105
+ end
89
106
  end
90
107
 
91
108
  private
92
109
 
93
110
  def clean_png_file
94
- if File.exists?(Support.expected_converted_path(PDF_PATH, :png))
111
+ if File.exist?(Support.expected_converted_path(PDF_PATH, :png))
95
112
  File.delete(Support.expected_converted_path(PDF_PATH, :png))
96
113
  end
97
114
  end
@@ -2,7 +2,6 @@
2
2
  require 'test_helper'
3
3
  # Test the LibreOffice Converter Module
4
4
  class LibreOfficeTest < Minitest::Test
5
-
6
5
  DOC_PATH = "#{Support.support_path}/files/example.doc"
7
6
 
8
7
  def setup
@@ -18,7 +17,7 @@ class LibreOfficeTest < Minitest::Test
18
17
 
19
18
  def test_to_pdf_create_a_file
20
19
  returned_path = doc_polei.to_pdf
21
- assert(returned_path && File.exists?(returned_path))
20
+ assert(returned_path && File.exist?(returned_path))
22
21
  clean_pdf_file
23
22
  end
24
23
 
@@ -26,25 +25,25 @@ class LibreOfficeTest < Minitest::Test
26
25
  path_option = "#{Support.support_path}/files/path_test.pdf"
27
26
  returned_path = doc_polei.to_pdf(path: path_option)
28
27
  assert(returned_path)
29
- assert(File.exists?(path_option))
30
- assert(File.exists?(returned_path))
28
+ assert(File.exist?(path_option))
29
+ assert(File.exist?(returned_path))
31
30
  assert_equal(returned_path, path_option)
32
- File.delete(path_option) if File.exists?(path_option)
31
+ File.delete(path_option) if File.exist?(path_option)
33
32
  end
34
33
 
35
34
  def test_path_folder
36
35
  path_option = '/tmp/'
37
36
  returned_path = doc_polei.to_pdf(path: path_option)
38
37
  assert(returned_path)
39
- assert(File.exists?(path_option))
40
- assert(File.exists?(returned_path))
38
+ assert(File.exist?(path_option))
39
+ assert(File.exist?(returned_path))
41
40
  assert_equal(returned_path, path_option)
42
41
  end
43
42
 
44
43
  private
45
44
 
46
45
  def clean_pdf_file
47
- if File.exists?(Support.expected_converted_path(DOC_PATH, :pdf))
46
+ if File.exist?(Support.expected_converted_path(DOC_PATH, :pdf))
48
47
  File.delete(Support.expected_converted_path(DOC_PATH, :pdf))
49
48
  end
50
49
  end