Commit e38bdc12 by Lucas Caton Committed by Jon Yurek

AttachmentSizeValidator#human_size method works now with all supported Rails versions

parent 35373dac
...@@ -71,7 +71,13 @@ module Paperclip ...@@ -71,7 +71,13 @@ module Paperclip
end end
def human_size(size) def human_size(size)
ActiveSupport::NumberHelper.number_to_human_size(size) if defined?(ActiveRecord::NumberHelper) # Rails 4.0+
ActiveSupport::NumberHelper.number_to_human_size(size)
else
storage_units_format = I18n.translate(:'number.human.storage_units.format', :locale => options[:locale], :raise => true)
unit = I18n.translate(:'number.human.storage_units.units.byte', :locale => options[:locale], :count => size.to_i, :raise => true)
storage_units_format.gsub(/%n/, size.to_i.to_s).gsub(/%u/, unit).html_safe
end
end end
def min_value_in_human_size(record) def min_value_in_human_size(record)
......
...@@ -12,6 +12,14 @@ describe Paperclip::Validators::AttachmentSizeValidator do ...@@ -12,6 +12,14 @@ describe Paperclip::Validators::AttachmentSizeValidator do
)) ))
end end
def self.storage_units
if defined?(ActiveRecord::NumberHelper) # Rails 4.0+
{ 5120 => '5 KB', 10240 => '10 KB' }
else
{ 5120 => '5120 Bytes', 10240 => '10240 Bytes' }
end
end
def self.should_allow_attachment_file_size(size) def self.should_allow_attachment_file_size(size)
context "when the attachment size is #{size}" do context "when the attachment size is #{size}" do
it "adds error to dummy object" do it "adds error to dummy object" do
...@@ -151,7 +159,7 @@ describe Paperclip::Validators::AttachmentSizeValidator do ...@@ -151,7 +159,7 @@ describe Paperclip::Validators::AttachmentSizeValidator do
end end
should_not_allow_attachment_file_size 11.kilobytes, should_not_allow_attachment_file_size 11.kilobytes,
message: "is invalid. (Between 5 KB and 10 KB please.)" message: "is invalid. (Between #{storage_units[5120]} and #{storage_units[10240]} please.)"
end end
context "given :less_than and :greater_than" do context "given :less_than and :greater_than" do
...@@ -162,7 +170,7 @@ describe Paperclip::Validators::AttachmentSizeValidator do ...@@ -162,7 +170,7 @@ describe Paperclip::Validators::AttachmentSizeValidator do
end end
should_not_allow_attachment_file_size 11.kilobytes, should_not_allow_attachment_file_size 11.kilobytes,
message: "is invalid. (Between 5 KB and 10 KB please.)" message: "is invalid. (Between #{storage_units[5120]} and #{storage_units[10240]} please.)"
end end
end end
...@@ -174,9 +182,9 @@ describe Paperclip::Validators::AttachmentSizeValidator do ...@@ -174,9 +182,9 @@ describe Paperclip::Validators::AttachmentSizeValidator do
end end
should_not_allow_attachment_file_size 11.kilobytes, should_not_allow_attachment_file_size 11.kilobytes,
message: "must be less than 10 KB" message: "must be less than #{storage_units[10240]}"
should_not_allow_attachment_file_size 4.kilobytes, should_not_allow_attachment_file_size 4.kilobytes,
message: "must be greater than 5 KB" message: "must be greater than #{storage_units[5120]}"
end end
context "given a size range" do context "given a size range" do
...@@ -185,9 +193,9 @@ describe Paperclip::Validators::AttachmentSizeValidator do ...@@ -185,9 +193,9 @@ describe Paperclip::Validators::AttachmentSizeValidator do
end end
should_not_allow_attachment_file_size 11.kilobytes, should_not_allow_attachment_file_size 11.kilobytes,
message: "must be in between 5 KB and 10 KB" message: "must be in between #{storage_units[5120]} and #{storage_units[10240]}"
should_not_allow_attachment_file_size 4.kilobytes, should_not_allow_attachment_file_size 4.kilobytes,
message: "must be in between 5 KB and 10 KB" message: "must be in between #{storage_units[5120]} and #{storage_units[10240]}"
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment