From 4393e95a8874cd7ce834ba54668293477a132535 Mon Sep 17 00:00:00 2001 From: Matjaz Gregoric Date: Thu, 8 Apr 2010 23:36:17 +0200 Subject: [PATCH] Implement :required option. --- lib/joint.rb | 7 ++++++- test/test_joint.rb | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/joint.rb b/lib/joint.rb index 431740b..3cab939 100755 --- a/lib/joint.rb +++ b/lib/joint.rb @@ -11,7 +11,10 @@ def self.configure(model) end module ClassMethods - def attachment(name) + def attachment(name, options = {}) + options.symbolize_keys! + name = name.to_sym + self.attachment_names << name after_save :save_attachments @@ -23,6 +26,8 @@ def attachment(name) key "#{name}_size".to_sym, Integer key "#{name}_type".to_sym, String + validates_presence_of(name) if options[:required] + class_eval <<-EOC def #{name} @#{name} ||= AttachmentProxy.new(self, :#{name}) diff --git a/test/test_joint.rb b/test/test_joint.rb index 133bca3..de30291 100755 --- a/test/test_joint.rb +++ b/test/test_joint.rb @@ -306,8 +306,7 @@ def @image.original_filename @model_class = Class.new do include MongoMapper::Document plugin Joint - attachment :file - validates_presence_of :file + attachment :file, :required => true end end