lib/attached.rb in attached-0.1.8 vs lib/attached.rb in attached-0.1.9
- old
+ new
@@ -63,10 +63,17 @@
define_method "#{name}?" do
attachment_for(name).file?
end
+ validates_each(name) do |record, attr, value|
+ attachment = record.attachment_for(name)
+ attachment.errors.each do |error|
+ record.errors.add(name, error)
+ end
+ end
+
after_validation do
self.errors[:"#{name}_size"].each do |message|
self.errors.add(name, message)
end
@@ -122,9 +129,32 @@
message.gsub!(/:minimum/, number_to_size(minimum)) unless minimum == zero
message.gsub!(/:maximum/, number_to_size(maximum)) unless maximum == infi
validates_inclusion_of :"#{name}_size", :in => range, :message => message,
:if => options[:if], :unless => options[:unless]
+
+ end
+
+
+ # Validates an attached extension in a specified set.
+ #
+ # Options:
+ #
+ # * :in - allowed values for attached
+ #
+ # Usage:
+ #
+ # validates_attached_extension :avatar, :in => %w(png jpg)
+ # validates_attached_extension :avatar, :in => [:png, :jpg]
+ # validates_attached_extension :avatar, :in => %w(png jpg), :message => "extension must be :in"
+ # validates_attached_extension :avatar, :in => %w(png jpg), :message => "extension must be :in"
+
+ def validates_attached_extension(name, options = {})
+
+ message = options[:message]
+ message ||= "extension must be specified"
+
+ range = options[:in].map { |element| /element/ }
end
# Validates that an attachment is included.
\ No newline at end of file