module RESTinPeace::ActiveModelAPI
Public Class Methods
check_for_missing_methods(base)
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 30 def self.check_for_missing_methods(base) raise MissingMethod, :save unless base.instance_methods.include?(:save) raise MissingMethod, :create unless base.instance_methods.include?(:create) end
included(base)
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 13 def self.included(base) check_for_missing_methods(base) base.send(:include, ActiveModel::Conversion) base.extend ActiveModel::Naming base.extend ActiveModel::Translation base.send(:alias_method, :save_without_dirty_tracking, :save) base.send(:alias_method, :save, :save_with_dirty_tracking) base.send(:alias_method, :create_without_dirty_tracking, :create) base.send(:alias_method, :create, :create_with_dirty_tracking) def base.lookup_ancestors [self] end end
Public Instance Methods
create_with_dirty_tracking()
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 42 def create_with_dirty_tracking create_without_dirty_tracking.tap do clear_changes if valid? end valid? end
errors()
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 66 def errors @errors ||= ActiveModel::Errors.new(self) end
errors=(new_errors)
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 70 def errors=(new_errors) new_errors.each do |field, errors| errors.each do |error| self.errors.add(field.to_sym, error) end end end
persisted?()
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 58 def persisted? !!id end
read_attribute_for_validation(attr)
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 62 def read_attribute_for_validation(attr) send(attr) end
save_with_dirty_tracking()
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 35 def save_with_dirty_tracking save_without_dirty_tracking.tap do clear_changes if valid? end valid? end
update(attributes)
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 49 def update(attributes) update_attributes(attributes) save end
valid?()
click to toggle source
# File lib/rest_in_peace/active_model_api.rb, line 54 def valid? !errors.any? end