Module: ObjectJSONMapper::Persistence
- Included in:
- Base
- Defined in:
- lib/object_json_mapper/persistence.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #destroy ⇒ Object (also: #delete)
- #reload ⇒ ObjectJSONMapper::Base
- #save ⇒ ObjectJSONMapper::Base, FalseClass (also: #save!)
- #update(params = {}) ⇒ ObjectJSONMapper::Base, FalseClass (also: #update_attributes)
Class Method Details
.included(base) ⇒ Object
3 4 5 |
# File 'lib/object_json_mapper/persistence.rb', line 3 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#destroy ⇒ Object Also known as: delete
56 57 58 59 60 61 62 |
# File 'lib/object_json_mapper/persistence.rb', line 56 def destroy client.delete true rescue RestClient::ExceptionWithResponse false end |
#reload ⇒ ObjectJSONMapper::Base
66 67 68 69 70 |
# File 'lib/object_json_mapper/persistence.rb', line 66 def reload tap do |base| base.attributes = HTTP.parse_json(client.get.body) if reloadable? end end |
#save ⇒ ObjectJSONMapper::Base, FalseClass Also known as: save!
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/object_json_mapper/persistence.rb', line 8 def save(*) return update(attributes) if persisted? response = self.class.client.post(attributes) result = if response.headers[:location] RestClient.get(response.headers[:location], ObjectJSONMapper.headers) else response.body end persist errors.clear attributes.merge!(HTTP.parse_json(result)) self rescue RestClient::ExceptionWithResponse => e raise e unless e.response.code == 422 load_errors(HTTP.parse_json(e.response.body)) false ensure validate end |
#update(params = {}) ⇒ ObjectJSONMapper::Base, FalseClass Also known as: update_attributes
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/object_json_mapper/persistence.rb', line 37 def update(params = {}) return false if new_record? client.patch(params) reload errors.clear self rescue RestClient::ExceptionWithResponse => e raise e unless e.response.code == 422 load_errors(HTTP.parse_json(e.response.body)) false end |