korobkov-paperclip 2.3.1.20090921 → 2.3.1.200909221442

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -30,7 +30,7 @@ In your migrations:
30
30
  add_column :users, :avatar_file_name, :string
31
31
  add_column :users, :avatar_content_type, :string
32
32
  add_column :users, :avatar_file_size, :integer
33
- add_column :users, :avatar_file_hash, :string
33
+ add_column :users, :avatar_file_hexdigest, :string
34
34
  add_column :users, :avatar_updated_at, :datetime
35
35
  end
36
36
 
@@ -38,7 +38,7 @@ In your migrations:
38
38
  remove_column :users, :avatar_file_name
39
39
  remove_column :users, :avatar_content_type
40
40
  remove_column :users, :avatar_file_size
41
- remove_column :users, :avatar_file_hash
41
+ remove_column :users, :avatar_file_hexdigest
42
42
  remove_column :users, :avatar_updated_at
43
43
  end
44
44
  end
@@ -68,7 +68,7 @@ attachment with the has_attached_file method, and give it a name. Paperclip
68
68
  will wrap up up to four attributes (all prefixed with that attachment's name,
69
69
  so you can have multiple attachments per model if you wish) and give the a
70
70
  friendly front end. The attributes are <attachment>_file_name,
71
- <attachment>_file_size, <attachment>_file_hash, <attachment>_content_type,
71
+ <attachment>_file_size, <attachment>_file_hexdigest, <attachment>_content_type,
72
72
  and <attachment>_updated_at.
73
73
  Only <attachment>_file_name is required for paperclip to operate. More
74
74
  information about the options to has_attached_file is available in the
data/Rakefile CHANGED
@@ -61,7 +61,7 @@ exclude_file_globs = ["test/s3.yml",
61
61
  "test/tmp/*"]
62
62
  spec = Gem::Specification.new do |s|
63
63
  s.name = "paperclip"
64
- s.version = Paperclip::VERSION
64
+ s.version = Paperclip::VERSION + "." + Time.now.strftime("%Y%m%d%H%M")
65
65
  s.author = "Jon Yurek"
66
66
  s.email = "jyurek@thoughtbot.com"
67
67
  s.homepage = "http://www.thoughtbot.com/projects/paperclip"
@@ -77,6 +77,7 @@ spec = Gem::Specification.new do |s|
77
77
  s.requirements << "ImageMagick"
78
78
  s.add_development_dependency 'thoughtbot-shoulda'
79
79
  s.add_development_dependency 'mocha'
80
+ s.add_dependency 'minad-mimemagic'
80
81
  end
81
82
 
82
83
  desc "Print a list of the files to be put into the gem"
@@ -4,7 +4,7 @@ class <%= migration_name %> < ActiveRecord::Migration
4
4
  add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_name, :string
5
5
  add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_content_type, :string
6
6
  add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_size, :integer
7
- add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_hash, :string
7
+ add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_hexdigest, :string
8
8
  add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_updated_at, :datetime
9
9
  <% end -%>
10
10
  end
@@ -14,7 +14,7 @@ class <%= migration_name %> < ActiveRecord::Migration
14
14
  remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_name
15
15
  remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_content_type
16
16
  remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_size
17
- remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_hash
17
+ remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_hexdigest
18
18
  remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_updated_at
19
19
  <% end -%>
20
20
  end
data/init.rb CHANGED
@@ -1,15 +1 @@
1
- if config.respond_to?(:gems)
2
- config.gem 'minad-mimemagic', :lib => 'mimemagic'
3
- else
4
- begin
5
- require 'mimemagic'
6
- rescue LoadError
7
- begin
8
- gem 'mimemagic'
9
- rescue Gem::LoadError
10
- puts "Please install the mimemagic gem"
11
- end
12
- end
13
- end
14
-
15
1
  require File.join(File.dirname(__FILE__), "lib", "paperclip")
@@ -15,7 +15,7 @@ module Paperclip
15
15
  :validations => [],
16
16
  :storage => :filesystem,
17
17
  :whiny => Paperclip.options[:whiny] || Paperclip.options[:whiny_thumbnails],
18
- :hash_length => 512
18
+ :digest_bitlength => 512
19
19
  }
20
20
  end
21
21
 
@@ -41,7 +41,7 @@ module Paperclip
41
41
  @validations = options[:validations]
42
42
  @storage = options[:storage]
43
43
  @whiny = options[:whiny_thumbnails] || options[:whiny]
44
- @hash_length = options[:hash_length]
44
+ @digest_bitlength = options[:digest_bitlength]
45
45
  @convert_options = options[:convert_options] || {}
46
46
  @processors = options[:processors] || [:thumbnail]
47
47
  @options = options
@@ -80,18 +80,18 @@ module Paperclip
80
80
 
81
81
  @queued_for_write[:original] = uploaded_file.to_tempfile
82
82
  instance_write(:file_name, uploaded_file.original_filename.strip.gsub(/[^A-Za-z\d\.\-_]+/, '_'))
83
- instance_write(:content_type, uploaded_file.content_type.to_s.strip)
83
+ instance_write(:content_type, uploaded_file.content_type.strip)
84
84
  instance_write(:file_size, uploaded_file.size.to_i)
85
- instance_write(:file_hash, uploaded_file.hash)
85
+ instance_write(:file_hexdigest, uploaded_file.hexdigest)
86
86
  instance_write(:updated_at, Time.now)
87
87
 
88
88
  @dirty = true
89
89
 
90
90
  post_process if valid?
91
91
 
92
- # Reset the file size and hash if the original file was reprocessed.
92
+ # Reset the file size and hexdigest if the original file was reprocessed.
93
93
  instance_write(:file_size, @queued_for_write[:original].size.to_i)
94
- instance_write(:file_hash, @queued_for_write[:original].hash)
94
+ instance_write(:file_hexdigest, @queued_for_write[:original].hexdigest)
95
95
  ensure
96
96
  uploaded_file.close if close_uploaded_file
97
97
  validate
@@ -181,10 +181,10 @@ module Paperclip
181
181
  instance_read(:file_size) || (@queued_for_write[:original] && @queued_for_write[:original].size)
182
182
  end
183
183
 
184
- # Returns the hash of the file as originally assigned, and lives in the
185
- # <attachment>_file_hash attribute of the model.
186
- def hash
187
- instance_read(:file_hash) || (@queued_for_write[:original] && @queued_for_write[:original].hash)
184
+ # Returns the hexdigest of the file as originally assigned, and lives in the
185
+ # <attachment>_file_hexdigest attribute of the model.
186
+ def hexdigest
187
+ instance_read(:file_hexdigest) || (@queued_for_write[:original] && @queued_for_write[:original].hexdigest)
188
188
  end
189
189
 
190
190
  # Returns the content_type of the file as originally assigned, and lives
@@ -410,7 +410,7 @@ module Paperclip
410
410
  instance_write(:file_name, nil)
411
411
  instance_write(:content_type, nil)
412
412
  instance_write(:file_size, nil)
413
- instance_write(:file_hash, nil)
413
+ instance_write(:file_hexdigest, nil)
414
414
  instance_write(:updated_at, nil)
415
415
  end
416
416
 
@@ -35,7 +35,11 @@ module Paperclip
35
35
 
36
36
  # Returns the filename, the same way as ":basename.:extension" would.
37
37
  def filename attachment, style
38
- "#{basename(attachment, style)}.#{extension(attachment, style)}"
38
+ unless extension(attachment, style).strip.empty?
39
+ "#{basename(attachment, style)}.#{extension(attachment, style)}"
40
+ else
41
+ basename(attachment, style)
42
+ end
39
43
  end
40
44
 
41
45
  # Returns the interpolated URL. Will raise an error if the url itself
@@ -9,7 +9,7 @@ module Paperclip
9
9
 
10
10
  # Infer the MIME-type of the file from the magic.
11
11
  def content_type
12
- MimeMagic.by_magic(File.open(self.path))
12
+ MimeMagic.by_magic(self).type
13
13
  end
14
14
 
15
15
  # Returns the file's normal name.
@@ -22,9 +22,9 @@ module Paperclip
22
22
  File.size(self)
23
23
  end
24
24
 
25
- # Returns the hash of the file.
26
- def hash
27
- Digest::SHA2.new(512).file(self.path).hexdigest # FIXME needed actual hash_length from Attachment class instead of "512" constant
25
+ # Returns the hexdigest of the file.
26
+ def hexdigest
27
+ Digest::SHA2.new(512).hexdigest(self.read) # FIXME needed actual digest_bitlength from Attachment class instead of "512" constant
28
28
  end
29
29
  end
30
30
  end
@@ -49,14 +49,14 @@ namespace :paperclip do
49
49
  errors.each{|e| puts "#{e.first}: #{e.last.full_messages.inspect}" }
50
50
  end
51
51
 
52
- desc "Regenerates content_type/size/hash metadata for a given CLASS (and optional ATTACHMENT)."
52
+ desc "Regenerates content_type/size/hexdigest metadata for a given CLASS (and optional ATTACHMENT)."
53
53
  task :metadata => :environment do
54
54
  for_all_attachments do |instance, name|
55
55
  if file = instance.send(name).to_file
56
56
  instance.send("#{name}_file_name=", instance.send("#{name}_file_name").strip)
57
57
  instance.send("#{name}_content_type=", file.content_type.strip)
58
58
  instance.send("#{name}_file_size=", file.size) if instance.respond_to?("#{name}_file_size")
59
- instance.send("#{name}_file_hash=", file.hash) if instance.respond_to?("#{name}_file_hash")
59
+ instance.send("#{name}_file_hexdigest=", file.hexdigest) if instance.respond_to?("#{name}_file_hexdigest")
60
60
  instance.save(false)
61
61
  else
62
62
  true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: korobkov-paperclip
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1.20090921
4
+ version: 2.3.1.200909221442
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Yurek
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-21 00:00:00 -07:00
12
+ date: 2009-09-22 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,6 +32,16 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: "0"
34
34
  version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: minad-mimemagic
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
35
45
  description:
36
46
  email: jyurek@thoughtbot.com
37
47
  executables: []
@@ -46,54 +56,54 @@ files:
46
56
  - Rakefile
47
57
  - init.rb
48
58
  - generators/paperclip
59
+ - generators/paperclip/USAGE
49
60
  - generators/paperclip/paperclip_generator.rb
50
61
  - generators/paperclip/templates
51
62
  - generators/paperclip/templates/paperclip_migration.rb.erb
52
- - generators/paperclip/USAGE
53
63
  - lib/paperclip
54
- - lib/paperclip/attachment.rb
55
- - lib/paperclip/callback_compatability.rb
56
- - lib/paperclip/geometry.rb
64
+ - lib/paperclip/matchers.rb
65
+ - lib/paperclip/upfile.rb
66
+ - lib/paperclip/processor.rb
57
67
  - lib/paperclip/interpolations.rb
58
- - lib/paperclip/iostream.rb
68
+ - lib/paperclip/geometry.rb
59
69
  - lib/paperclip/matchers
60
- - lib/paperclip/matchers/have_attached_file_matcher.rb
61
- - lib/paperclip/matchers/validate_attachment_content_type_matcher.rb
62
- - lib/paperclip/matchers/validate_attachment_presence_matcher.rb
63
70
  - lib/paperclip/matchers/validate_attachment_size_matcher.rb
64
- - lib/paperclip/matchers.rb
65
- - lib/paperclip/processor.rb
71
+ - lib/paperclip/matchers/validate_attachment_presence_matcher.rb
72
+ - lib/paperclip/matchers/validate_attachment_content_type_matcher.rb
73
+ - lib/paperclip/matchers/have_attached_file_matcher.rb
66
74
  - lib/paperclip/storage.rb
75
+ - lib/paperclip/iostream.rb
76
+ - lib/paperclip/callback_compatability.rb
77
+ - lib/paperclip/attachment.rb
67
78
  - lib/paperclip/thumbnail.rb
68
- - lib/paperclip/upfile.rb
69
79
  - lib/paperclip.rb
70
80
  - tasks/paperclip_tasks.rake
71
- - test/attachment_test.rb
72
- - test/database.yml
73
- - test/fixtures
74
- - test/fixtures/12k.png
75
- - test/fixtures/50x50.png
76
- - test/fixtures/5k.png
77
- - test/fixtures/bad.png
78
- - test/fixtures/s3.yml
79
- - test/fixtures/text.txt
80
- - test/fixtures/twopage.pdf
81
- - test/geometry_test.rb
82
- - test/helper.rb
83
- - test/integration_test.rb
84
- - test/interpolations_test.rb
81
+ - test/processor_test.rb
85
82
  - test/iostream_test.rb
86
83
  - test/matchers
87
84
  - test/matchers/have_attached_file_matcher_test.rb
88
- - test/matchers/validate_attachment_content_type_matcher_test.rb
89
85
  - test/matchers/validate_attachment_presence_matcher_test.rb
90
86
  - test/matchers/validate_attachment_size_matcher_test.rb
87
+ - test/matchers/validate_attachment_content_type_matcher_test.rb
88
+ - test/interpolations_test.rb
89
+ - test/fixtures
90
+ - test/fixtures/text.txt
91
+ - test/fixtures/twopage.pdf
92
+ - test/fixtures/s3.yml
93
+ - test/fixtures/50x50.png
94
+ - test/fixtures/bad.png
95
+ - test/fixtures/5k.png
96
+ - test/fixtures/12k.png
97
+ - test/attachment_test.rb
91
98
  - test/paperclip_test.rb
92
- - test/processor_test.rb
99
+ - test/database.yml
93
100
  - test/storage_test.rb
94
101
  - test/thumbnail_test.rb
102
+ - test/integration_test.rb
103
+ - test/helper.rb
104
+ - test/geometry_test.rb
95
105
  - shoulda_macros/paperclip.rb
96
- has_rdoc: true
106
+ has_rdoc: false
97
107
  homepage: http://www.thoughtbot.com/projects/paperclip
98
108
  licenses:
99
109
  post_install_message:
@@ -119,7 +129,7 @@ requirements:
119
129
  rubyforge_project: paperclip
120
130
  rubygems_version: 1.3.5
121
131
  signing_key:
122
- specification_version: 2
132
+ specification_version: 3
123
133
  summary: File attachments as attributes for ActiveRecord
124
134
  test_files: []
125
135