activecypher 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f1c222ac52b28439402e7b5bdbd0b3245c2530ce75227a9b35ef47917225327
4
- data.tar.gz: d0cb17f1db87febfdb693f0fc85970b1d4b8e6c7555ae5424be1b04cbcf1eee9
3
+ metadata.gz: 3040943b0361f537dd3f6a68320463195607e72001f6e25b340d81212cd7a13a
4
+ data.tar.gz: 6d35f5d0e9c21d9e695ab898896f047fa36ab2aa8d08f997b8ad67e4a5ae0cf8
5
5
  SHA512:
6
- metadata.gz: 3a8f60aacaea3ed7b3a4fb53e92b042237392d809304f1d17c59ebdb3c6b8e4ea221c44beaa6868a7e2e80859bbdb6f438c1cff65b2eff186b4dcd2f18c9c43a
7
- data.tar.gz: ea5cdba9b038ca87809698de82982613f3a1c6efc33365bf9b01f07216edbb5bfcf5007f07cd5b9f0d360a830ec86c95e9e00b695bdafc42ac1cc242ed7c663e
6
+ metadata.gz: dddf85e77779795ecc95dd81834c0b4c13213ece522e019f50345f4ca1bd0944241e58ce0d4dfcbaa97f3e9b951cc44dc311d41b17bdf25578ca8f43e9bc5155
7
+ data.tar.gz: 74d562c623379a836dc1166a7fa3caf7d94743b728bba1f1f84acc3377d59f2278147cbb874c013981c0652cd360f49a11f7fc738f28cc635e2ecb9cbfc8d360
@@ -39,6 +39,7 @@ module ActiveCypher
39
39
  include ActiveModel::Attributes
40
40
  include ActiveModel::Dirty
41
41
  include ActiveModel::Naming
42
+ include ActiveModel::Validations
42
43
 
43
44
  include Model::ConnectionOwner
44
45
  include Logging
@@ -290,7 +291,9 @@ module ActiveCypher
290
291
  # --------------------------------------------------------------
291
292
  # Persistence API
292
293
  # --------------------------------------------------------------
293
- def save
294
+ def save(validate: true)
295
+ return false if validate && !valid?
296
+
294
297
  _run(:save) do
295
298
  if new_record?
296
299
  _run(:create) { create_relationship }
@@ -303,6 +306,20 @@ module ActiveCypher
303
306
  false
304
307
  end
305
308
 
309
+ # Bang version of save - raises exception if save fails
310
+ # For when you want your relationship persistence to be as dramatic as your code reviews
311
+ def save!
312
+ if save
313
+ self
314
+ else
315
+ error_msgs = errors.full_messages.join(', ')
316
+ error_msgs = 'Validation failed' if error_msgs.empty?
317
+ raise ActiveCypher::RecordNotSaved,
318
+ "#{self.class} could not be saved: #{error_msgs}. " \
319
+ 'Perhaps this relationship was never meant to be?'
320
+ end
321
+ end
322
+
306
323
  def destroy
307
324
  _run(:destroy) do
308
325
  raise 'Cannot destroy a new relationship' if new_record?
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveCypher
4
- VERSION = '0.10.1'
4
+ VERSION = '0.10.3'
5
5
 
6
6
  def self.gem_version
7
7
  Gem::Version.new VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activecypher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdelkader Boudih