Skip to content

Commit

Permalink
Added documentation for required_attributes
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.optimistictech.com/ruby/rails/plugins/labelled_form@344 dc715f54-e70d-0410-b702-da5329ab684b
  • Loading branch information
jferris committed Jan 20, 2007
1 parent 19bacf3 commit 6c6dc90
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions lib/labelled_form/required_attributes.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
module ActiveRecord #:nodoc:
class Base #:nodoc:
class Base

class_inheritable_accessor :required_attributes_by_on

class << self

def validates_presence_of_with_require_attributes (*attr_names)
def validates_presence_of_with_require_attributes (*attr_names) #:nodoc:
validates_presence_of_without_require_attributes(*attr_names.dup)
require_attributes(*attr_names)
end
Expand All @@ -14,7 +14,7 @@ def validates_presence_of_with_require_attributes (*attr_names)

private

def require_attributes (*attr_names)
def require_attributes (*attr_names) #:nodoc:
options = { :on => :save }
options.update(attr_names.pop) if attr_names.last.is_a?(Hash)

Expand All @@ -27,19 +27,22 @@ def require_attributes (*attr_names)

end

# Returns true if the specified <tt>attr_named</tt> is required for
# this object, and false otherwise.
def attribute_required? (attr_name)
attribute_required_on?(attr_name, :save) || attribute_required_on?(attr_name, new_record? ? :create : :update)
end

def attribute_required_on? (attr_name, on)
def attribute_required_on? (attr_name, on) #:nodoc:
required_attributes_by_on[on] && required_attributes_by_on[on].include?(attr_name)
end

# Returns an array of attributes that are required for this object.
def required_attributes
(required_attributes_on(:save) + required_attributes_on(new_record? ? :create : :update)).uniq
end

def required_attributes_on (on)
def required_attributes_on (on) #:nodoc:
required_attributes_by_on[on] || []
end

Expand Down

0 comments on commit 6c6dc90

Please sign in to comment.