Module: WellFormed::Persistence
- Included in:
- SimpleResource, SimpleStruct
- Defined in:
- lib/well_formed/persistence.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
5 6 7 8 9 10 |
# File 'lib/well_formed/persistence.rb', line 5 def self.included(base) base.include(ActiveSupport::Callbacks) base.include(AttributeAssignment) base.define_callbacks(:save) base.extend(ClassMethods) end |
Instance Method Details
#save ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/well_formed/persistence.rb', line 30 def save return false unless valid? result = nil catch(:abort) do assign_attributes_to(resource) run_callbacks(:save) do result = perform throw(:abort) unless result end end errors.add(:base, :could_not_be_saved, message: "could not be saved") if result == false && errors.empty? result || false end |
#save! ⇒ Object
45 46 47 |
# File 'lib/well_formed/persistence.rb', line 45 def save! save || raise(WellFormed::RecordInvalid.new(self)) end |
#submit ⇒ Object
49 50 51 |
# File 'lib/well_formed/persistence.rb', line 49 def submit save && resource end |