thumbkit 0.0.4 → 0.0.5

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.
@@ -3,7 +3,7 @@
3
3
  # class MyUploader < CarrierWave::Uploader::Base
4
4
  # include Thumbkit::Adapters::CarrierWave
5
5
  #
6
- # version :thumbnail do
6
+ # version :thumbnail, :if => :valid_for_thumbkit? do
7
7
  # # See [Configuration](#configuration) below for more about options.
8
8
  # process thumbkit: [200, 200, { colors: { foreground: '#cccccc' } }]
9
9
  #
@@ -28,9 +28,19 @@ module Thumbkit::Adapters::CarrierWave
28
28
  @file = CarrierWave::SanitizedFile.new(result)
29
29
  end
30
30
 
31
+ def valid_for_thumbkit?(file)
32
+ p "valid_for_thumbkit?", file, current_path
33
+ !! Thumbkit.new(file.path)
34
+ rescue ArgumentError
35
+ false
36
+ end
37
+
31
38
  # Given a filename, return the filename that Thumbkit would generate.
32
39
  # This should not do any processing.
33
40
  def thumbkit_filename(for_file)
34
41
  File.basename(Thumbkit.new(for_file).processor_instance.outfile)
42
+ rescue ArgumentError
43
+ # TODO: Handle this case better
44
+ nil
35
45
  end
36
46
  end
@@ -1,24 +1,26 @@
1
1
  class Thumbkit::Processor
2
- autoload :Text, 'thumbkit/processor/text'
3
- autoload :Audio, 'thumbkit/processor/audio'
4
- autoload :Image, 'thumbkit/processor/image'
2
+ autoload :Text, 'thumbkit/processor/text'
3
+ autoload :Audio, 'thumbkit/processor/audio'
4
+ autoload :Image, 'thumbkit/processor/image'
5
5
  autoload :Collection, 'thumbkit/processor/collection'
6
6
 
7
7
  def self.processors
8
8
  @processors ||= {
9
- 'png' => 'Image',
10
- 'jpg' => 'Image',
11
- 'gif' => 'Image',
12
- 'txt' => 'Text',
13
- 'md' => 'Text',
14
- 'mp3' => 'Audio',
15
- 'wav' => 'Audio',
16
- 'm4a' => 'Audio',
9
+ 'png' => 'Image',
10
+ 'jpg' => 'Image',
11
+ 'jpeg' => 'Image',
12
+ 'gif' => 'Image',
13
+ 'txt' => 'Text',
14
+ 'md' => 'Text',
15
+ 'rb' => 'Text',
16
+ 'mp3' => 'Audio',
17
+ 'wav' => 'Audio',
18
+ 'm4a' => 'Audio',
17
19
  }
18
20
  end
19
21
 
20
22
  def self.processor_for(extension)
21
- if (class_name = self.processors[extension])
23
+ if (class_name = self.processors[extension.downcase])
22
24
  self.const_get(class_name)
23
25
  end
24
26
  end
@@ -1,3 +1,3 @@
1
1
  class Thumbkit
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/thumbkit.rb CHANGED
@@ -39,6 +39,10 @@ class Thumbkit
39
39
  @path = File.expand_path(path)
40
40
  @filename = File.basename(@path)
41
41
  @type = File.extname(@filename)[1..-1]
42
+
43
+ if ! self.processor
44
+ raise ArgumentError, "Do processor defined for '#{ @type }'"
45
+ end
42
46
  end
43
47
  end
44
48
 
@@ -25,6 +25,13 @@ describe Thumbkit do
25
25
 
26
26
  its(:processor) { should == Thumbkit::Processor::Collection }
27
27
  end
28
+
29
+ context 'with an unknown extension' do
30
+ subject { Thumbkit.new 'this_extension.no_exist_i_promise' }
31
+ it 'raises an ArgumentError' do
32
+ expect { subject }.to raise_error(ArgumentError)
33
+ end
34
+ end
28
35
  end
29
36
 
30
37
  describe Thumbkit, '.defaults' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thumbkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-02 00:00:00.000000000 Z
12
+ date: 2012-05-10 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Thumbkit makes thumbnails!
15
15
  email:
@@ -70,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  version: '0'
71
71
  requirements: []
72
72
  rubyforge_project:
73
- rubygems_version: 1.8.15
73
+ rubygems_version: 1.8.24
74
74
  signing_key:
75
75
  specification_version: 3
76
76
  summary: Thumbkit makes thumbnails from a variety of media types.