thoughtbot-paperclip 2.2.9.2 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/paperclip.rb +1 -1
- data/lib/paperclip/attachment.rb +2 -1
- data/lib/paperclip/matchers/have_attached_file_matcher.rb +1 -1
- data/test/attachment_test.rb +9 -10
- data/test/geometry_test.rb +1 -1
- data/test/helper.rb +1 -2
- metadata +1 -1
data/lib/paperclip.rb
CHANGED
@@ -44,7 +44,7 @@ end
|
|
44
44
|
# documentation for Paperclip::ClassMethods for more useful information.
|
45
45
|
module Paperclip
|
46
46
|
|
47
|
-
VERSION = "2.
|
47
|
+
VERSION = "2.3.0"
|
48
48
|
|
49
49
|
class << self
|
50
50
|
# Provides configurability to Paperclip. There are a number of options available, such as:
|
data/lib/paperclip/attachment.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
module Paperclip
|
2
3
|
# The Attachment class manages the files for a given attachment. It saves
|
3
4
|
# when the model saves, deletes when the model is destroyed, and processes
|
@@ -76,7 +77,7 @@ module Paperclip
|
|
76
77
|
return nil if uploaded_file.nil?
|
77
78
|
|
78
79
|
@queued_for_write[:original] = uploaded_file.to_tempfile
|
79
|
-
instance_write(:file_name, uploaded_file.original_filename.strip.gsub(/[
|
80
|
+
instance_write(:file_name, uploaded_file.original_filename.strip.gsub(/[^A-Za-z\d\.\-_]+/, '_'))
|
80
81
|
instance_write(:content_type, uploaded_file.content_type.to_s.strip)
|
81
82
|
instance_write(:file_size, uploaded_file.size.to_i)
|
82
83
|
instance_write(:updated_at, Time.now)
|
@@ -30,7 +30,7 @@ module Paperclip
|
|
30
30
|
protected
|
31
31
|
|
32
32
|
def responds?
|
33
|
-
methods = @subject.instance_methods
|
33
|
+
methods = @subject.instance_methods.map(&:to_s)
|
34
34
|
methods.include?("#{@attachment_name}") &&
|
35
35
|
methods.include?("#{@attachment_name}=") &&
|
36
36
|
methods.include?("#{@attachment_name}?")
|
data/test/attachment_test.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'test/helper'
|
2
3
|
|
3
4
|
class Dummy
|
@@ -486,12 +487,10 @@ class AttachmentTest < Test::Unit::TestCase
|
|
486
487
|
rebuild_model
|
487
488
|
@instance = Dummy.new
|
488
489
|
@attachment = Paperclip::Attachment.new(:avatar, @instance)
|
489
|
-
@file = File.new(File.join(File.dirname(__FILE__),
|
490
|
-
"fixtures",
|
491
|
-
"5k.png"), 'rb')
|
490
|
+
@file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb')
|
492
491
|
end
|
493
492
|
|
494
|
-
teardown do
|
493
|
+
teardown do
|
495
494
|
@file.close
|
496
495
|
Paperclip::Attachment.default_options.merge!(@old_defaults)
|
497
496
|
end
|
@@ -508,13 +507,13 @@ class AttachmentTest < Test::Unit::TestCase
|
|
508
507
|
assert_equal "/avatars/original/missing.png", @attachment.url
|
509
508
|
assert_equal "/avatars/blah/missing.png", @attachment.url(:blah)
|
510
509
|
end
|
511
|
-
|
510
|
+
|
512
511
|
should "return nil as path when no file assigned" do
|
513
512
|
assert @attachment.to_file.nil?
|
514
513
|
assert_equal nil, @attachment.path
|
515
514
|
assert_equal nil, @attachment.path(:blah)
|
516
515
|
end
|
517
|
-
|
516
|
+
|
518
517
|
context "with a file assigned in the database" do
|
519
518
|
setup do
|
520
519
|
@attachment.stubs(:instance_read).with(:file_name).returns("5k.png")
|
@@ -533,7 +532,7 @@ class AttachmentTest < Test::Unit::TestCase
|
|
533
532
|
should "make sure the updated_at mtime is in the url if it is defined" do
|
534
533
|
assert_match %r{#{Time.now.to_i}$}, @attachment.url(:blah)
|
535
534
|
end
|
536
|
-
|
535
|
+
|
537
536
|
should "make sure the updated_at mtime is NOT in the url if false is passed to the url method" do
|
538
537
|
assert_no_match %r{#{Time.now.to_i}$}, @attachment.url(:blah, false)
|
539
538
|
end
|
@@ -549,12 +548,12 @@ class AttachmentTest < Test::Unit::TestCase
|
|
549
548
|
end
|
550
549
|
|
551
550
|
should "return the proper path when filename has a single .'s" do
|
552
|
-
assert_equal "./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.png", @attachment.path
|
551
|
+
assert_equal File.expand_path("./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.png"), File.expand_path(@attachment.path)
|
553
552
|
end
|
554
553
|
|
555
554
|
should "return the proper path when filename has multiple .'s" do
|
556
|
-
@attachment.stubs(:instance_read).with(:file_name).returns("5k.old.png")
|
557
|
-
assert_equal "./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.old.png", @attachment.path
|
555
|
+
@attachment.stubs(:instance_read).with(:file_name).returns("5k.old.png")
|
556
|
+
assert_equal File.expand_path("./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.old.png"), File.expand_path(@attachment.path)
|
558
557
|
end
|
559
558
|
|
560
559
|
context "when expecting three styles" do
|
data/test/geometry_test.rb
CHANGED
@@ -77,7 +77,7 @@ class GeometryTest < Test::Unit::TestCase
|
|
77
77
|
should "make sure the modifier gets passed during transformation_to" do
|
78
78
|
assert @src = Paperclip::Geometry.parse("123x456")
|
79
79
|
assert @dst = Paperclip::Geometry.parse("123x456>")
|
80
|
-
assert_equal "123x456>", @src.transformation_to(@dst)
|
80
|
+
assert_equal ["123x456>", nil], @src.transformation_to(@dst)
|
81
81
|
end
|
82
82
|
|
83
83
|
should "generate correct ImageMagick formatting string for W-formatted string" do
|
data/test/helper.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'test/unit'
|
3
|
-
gem 'thoughtbot-shoulda', ">= 2.9.0"
|
4
3
|
require 'shoulda'
|
5
4
|
require 'mocha'
|
6
5
|
require 'tempfile'
|
@@ -40,7 +39,7 @@ def reset_class class_name
|
|
40
39
|
end
|
41
40
|
|
42
41
|
def reset_table table_name, &block
|
43
|
-
block ||= lambda{ true }
|
42
|
+
block ||= lambda { |table| true }
|
44
43
|
ActiveRecord::Base.connection.create_table :dummies, {:force => true}, &block
|
45
44
|
end
|
46
45
|
|