miniatura 0.3.4 → 0.3.7

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
  SHA1:
3
- metadata.gz: 2ffe72fc7dd04b59bd7714bcc0aa44bd762f43a4
4
- data.tar.gz: d4d1a4f3eb993e84612ca65a42a706125e8d9411
3
+ metadata.gz: a94c30b0898a4bffe0850ff5852de1d5bd7a8249
4
+ data.tar.gz: d213a6e19002f89344c69419be9425803cb593a7
5
5
  SHA512:
6
- metadata.gz: c59cc152233270a136a9736d5827004c66e925651a614d69541992080c41ed66f5d7ce6ec9276be89ed7df7236b3384cbbf42da6d0d283a31158ff2f862c588f
7
- data.tar.gz: 9130434bfeeabb619f0c8b56d63755a327f9a66f64d07638fedcf2db2c9c1b31421cbfaaf5bbb4dbb1b2eadb15316b332d89369c1f3909dd9af00ce78d94f8f0
6
+ metadata.gz: 6f025aa6cb718d6764f4ba269b57a304290289d50be1cc2478e3aae33fcea98244af2d35163302bdff6d518f8c55732d007af840856e79ddb2afd501d71294e9
7
+ data.tar.gz: 59bb4e8aa970fa81d20aba457dd175d743d68d87bc781817f65d7029733c424885b5df7a0948078a749ab5d7d859b7e81e2cfa803ba248fd918f9894641e3eb9
@@ -1,14 +1,9 @@
1
1
  module Miniatura
2
- class Logger
3
- attr_reader :logger
2
+ class Logger
3
+ attr_reader :logger
4
4
 
5
- def initialize options
6
- if options.has_key? :logger
7
- @logger = options[:logger]
8
- else
9
- @logger = Logger.new(STDOUT)
10
- @logger.level = Logger::INFO
11
- end
12
- end
13
- end
5
+ def initialize
6
+ @logger = Rails.logger
7
+ end
8
+ end
14
9
  end
@@ -14,18 +14,16 @@ module Miniatura
14
14
  end
15
15
 
16
16
  def to_options
17
- result = @options.map do |k, v|
18
- send(k.to_s, v)
19
- end
17
+ result = @options.map { |k, v| send(k.to_s, v) }
20
18
  result << '-vframes 1'
21
19
  result.join(' ')
22
20
  end
23
21
 
24
22
  def file_extension(value)
25
23
  case value
26
- when 'jpeg' then
24
+ when 'jpeg'
27
25
  '-c mjpeg'
28
- when 'png' then
26
+ when 'png'
29
27
  '-c png'
30
28
  else
31
29
  ''
@@ -34,11 +32,11 @@ module Miniatura
34
32
 
35
33
  def rotate(value)
36
34
  case value
37
- when 90 then
35
+ when 90
38
36
  '-vf transpose=1'
39
- when 180 then
37
+ when 180
40
38
  '-vf hflip '
41
- when 270 then
39
+ when 270
42
40
  '-vf transpose=2'
43
41
  else
44
42
  ''
@@ -1,3 +1,3 @@
1
1
  module Miniatura
2
- VERSION = '0.3.4'
2
+ VERSION = '0.3.7'
3
3
  end
data/lib/miniatura.rb CHANGED
@@ -6,31 +6,28 @@ require 'miniatura/generate_command'
6
6
 
7
7
  module Miniatura
8
8
  def generate_thumb(options = {})
9
+ @exit_code, @error = nil
10
+ raise Errno::ENOENT unless File.exist?(current_path)
9
11
  options[:file_extension] ||= 'jpeg'
10
- options[:logger] = Rails.logger
11
- size = options[:size]
12
12
  options[:rotate] = 0
13
- video = MiniExiftool.new(current_path)
14
- orientation = video.rotation
15
- image_width, image_height = video_dimension(orientation, video.imagewidth, video.imageheight, size)
16
- options[:size] = "#{image_width.to_i}" + "x" + "#{image_height.to_i}"
17
- tmp_path = File.join(File.dirname(current_path), "tmpfile.#{options[:file_extension]}")
18
- thumbnail = GenerateCommand.new(current_path, tmp_path)
19
- cmd = thumbnail.generate_command(options)
20
- logger = Miniatura::Logger.new(options).logger
21
- logger.info("Running command: #{cmd}")
22
- exit_code, error = nil
23
- raise Errno::ENOENT unless File.exist?(current_path)
24
- Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr|
25
- error = stderr.read
26
- exit_code = wait_thr.value
27
- end
28
- handle_exit_code(exit_code, error, logger)
13
+ options[:size] = determine_thumb_dimension_ratio_from_uploaded_video(options[:size])
14
+ tmp_path = generate_temp_file(options[:file_extension])
15
+ cmd = generate_command_for_thumbnail(options, tmp_path)
16
+ show_logs(cmd)
17
+ execute_command(cmd)
18
+ handle_exit_code(@exit_code, @error)
29
19
  File.rename tmp_path, current_path
30
20
  end
31
21
 
32
22
  private
33
23
 
24
+ def determine_thumb_dimension_ratio_from_uploaded_video(size)
25
+ video = MiniExiftool.new(current_path)
26
+ orientation = video.rotation
27
+ image_width, image_height = video_dimension(orientation, video.imagewidth, video.imageheight, size)
28
+ return "#{image_width.to_i}" + 'x' + "#{image_height.to_i}"
29
+ end
30
+
34
31
  def video_dimension(orientation, video_width, video_height, size)
35
32
  case orientation
36
33
  when 0, 180
@@ -55,12 +52,33 @@ module Miniatura
55
52
  return image_width, image_height
56
53
  end
57
54
 
58
- def handle_exit_code(exit_code, error, logger)
55
+ def generate_temp_file(file_extension)
56
+ File.join(File.dirname(current_path), "tmpfile.#{file_extension}")
57
+ end
58
+
59
+ def generate_command_for_thumbnail(options, temp_file_path)
60
+ thumbnail = GenerateCommand.new(current_path, temp_file_path)
61
+ return thumbnail.generate_command(options)
62
+ end
63
+
64
+ def show_logs(command)
65
+ logger = Miniatura::Logger.new.logger
66
+ logger.info("Running command: #{command}")
67
+ end
68
+
69
+ def execute_command(command)
70
+ Open3.popen3(command) do |stdin, stdout, stderr, wait_thr|
71
+ @error = stderr.read
72
+ @exit_code = wait_thr.value
73
+ end
74
+ end
75
+
76
+ def handle_exit_code(exit_code, error)
77
+ logger = Miniatura::Logger.new.logger
59
78
  if exit_code == 0
60
79
  logger.info 'Success!'
61
80
  else
62
81
  logger.error "Failure due to following error: #{error}"
63
82
  end
64
- exit_code
65
83
  end
66
84
  end
data/miniatura.gemspec CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.13'
22
- spec.add_development_dependency 'rake', '~> 10.5'
21
+ spec.add_development_dependency 'bundler', '~> 1.14'
22
+ spec.add_development_dependency 'rake', '~> 12.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.5'
24
24
  spec.add_development_dependency 'carrierwave-video', '~> 0.5.6'
25
25
  spec.add_development_dependency 'mini_exiftool', '~> 2.8'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miniatura
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - ssooraj
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.13'
19
+ version: '1.14'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.13'
26
+ version: '1.14'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.5'
33
+ version: '12.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.5'
40
+ version: '12.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement