iry 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c37af75076323e55b59756a3929843bbbca04cd0bc43bc49ae89ef68e9d1665
4
- data.tar.gz: 2b4ca6aef3667fc9f6215d1d828d732dac0c8930044e88f8234cf690b5b7a514
3
+ metadata.gz: 5ca6d5b931545ba2bb0b9f1e9e7ad77da308e7d0ffe8a64d1df2c1e6378cd1a7
4
+ data.tar.gz: 4747d18e4a249735907597277bad301e9177dffa5aa00e3410355be13d523683
5
5
  SHA512:
6
- metadata.gz: 8a9d1bb387cfc7d5809235378f80f84d8961a53cba63c9dddc6f8538352412cb02ab59d87e8fea16d5ac6c87ce1a243541ea421f4a1f14ce568331c8d1c77d70
7
- data.tar.gz: 0fe39194ef0b3f17719f9d66a6a7881eafd8cb02e3ef50cd42c154a18875ebc726e31155a570d3fc0687547bf01b158bf7267adb4c19ac3422b9fe5aa86e1394
6
+ metadata.gz: c2b72c6a64b044c606b3940181971a28fd90fdb1ba7859566adb9f5b7ac17f58aa46544908d06715dbc15105972ee0b272ac65d608dd06ee42fd829799c3ff95
7
+ data.tar.gz: 2f5c703a19785a8e7fc5689354c80b91d3d3658f00a031edbddad7ca06c36094959f494bbc157c8b40bce4fd3655fd37fa5769ec1fc02e6b7c74524118ebc37b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "iry",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "iry",
9
- "version": "0.5.0",
9
+ "version": "0.5.1",
10
10
  "license": "MIT",
11
11
  "devDependencies": {
12
12
  "conventional-changelog-cli": ">= 3.0.0",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iry",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Transform database constraint errors into activerecord validation errors",
5
5
  "private": true,
6
6
  "main": "index.js",
data/rbi/iry.rbi CHANGED
@@ -57,6 +57,15 @@ module Iry
57
57
  sig { params(model: Handlers::Model, block: T.untyped).void }
58
58
  def self.handle_constraints(model, &block); end
59
59
 
60
+ # Executes block and in case of constraints violations on `model`, block is
61
+ # halted, errors are appended to `model` and {StatementInvalid} is raised
62
+ #
63
+ # _@param_ `model` — model object for which constraints should be monitored and for which errors should be added to
64
+ #
65
+ # _@return_ — returns `model` parameter
66
+ sig { params(model: Handlers::Model, block: T.untyped).returns(Handlers::Model) }
67
+ def self.handle_constraints!(model, &block); end
68
+
60
69
  # Similar to {ActiveRecord::Base#save} but in case of constraint violations,
61
70
  # `false` is returned and `errors` are populated.
62
71
  # Aside from `model`, it takes the same arguments as
@@ -77,6 +86,15 @@ module Iry
77
86
  sig { params(model: Handlers::Model).returns(T::Boolean) }
78
87
  def self.save!(model); end
79
88
 
89
+ # Similar to {ActiveRecord::Base#destroy} but in case of constraint
90
+ # violations, `false` is returned and `errors` are populated.
91
+ #
92
+ # _@param_ `model` — model to destroy
93
+ #
94
+ # _@return_ — the destroyed model
95
+ sig { params(model: Handlers::Model).returns(Handlers::Model) }
96
+ def self.destroy(model); end
97
+
80
98
  # Included in all exceptions triggered by Iry, this allows to rescue any
81
99
  # gem-related exception by rescuing {Iry::Error}
82
100
  module Error
@@ -88,6 +106,20 @@ module Iry
88
106
  include Iry::Error
89
107
  end
90
108
 
109
+ class StatementInvalid < ActiveRecord::StatementInvalid
110
+ include Iry::Error
111
+ end
112
+
113
+ # Overrides private API method {ActiveRecord#create_or_update} to handle
114
+ # constraints and attach errors to the including model
115
+ module Patch
116
+ # Takes attributes as named arguments
117
+ #
118
+ # _@return_ — true if successful
119
+ sig { returns(T::Boolean) }
120
+ def create_or_update; end
121
+ end
122
+
91
123
  # Class-level methods available to classes executing `include Iry`
92
124
  module Macros
93
125
  # Constraints by name
@@ -207,7 +239,7 @@ module Iry
207
239
  exclusion\sconstraint|
208
240
  foreign\skey\sconstraint
209
241
  )
210
- \s"(.+)"
242
+ \s"([^"]+)"
211
243
  }x, T.untyped)
212
244
 
213
245
  # sord warn - ActiveRecord::StatementInvalid wasn't able to be resolved to a constant in this project
data/sig/iry.rbs CHANGED
@@ -53,6 +53,14 @@ module Iry
53
53
  # ```
54
54
  def self.handle_constraints: (Handlers::Model model) -> void
55
55
 
56
+ # Executes block and in case of constraints violations on `model`, block is
57
+ # halted, errors are appended to `model` and {StatementInvalid} is raised
58
+ #
59
+ # _@param_ `model` — model object for which constraints should be monitored and for which errors should be added to
60
+ #
61
+ # _@return_ — returns `model` parameter
62
+ def self.handle_constraints!: (Handlers::Model model) -> Handlers::Model
63
+
56
64
  # Similar to {ActiveRecord::Base#save} but in case of constraint violations,
57
65
  # `false` is returned and `errors` are populated.
58
66
  # Aside from `model`, it takes the same arguments as
@@ -71,6 +79,14 @@ module Iry
71
79
  # _@param_ `model` — model to save
72
80
  def self.save!: (Handlers::Model model) -> bool
73
81
 
82
+ # Similar to {ActiveRecord::Base#destroy} but in case of constraint
83
+ # violations, `false` is returned and `errors` are populated.
84
+ #
85
+ # _@param_ `model` — model to destroy
86
+ #
87
+ # _@return_ — the destroyed model
88
+ def self.destroy: (Handlers::Model model) -> Handlers::Model
89
+
74
90
  # Included in all exceptions triggered by Iry, this allows to rescue any
75
91
  # gem-related exception by rescuing {Iry::Error}
76
92
  module Error
@@ -82,6 +98,19 @@ module Iry
82
98
  include Iry::Error
83
99
  end
84
100
 
101
+ class StatementInvalid < ActiveRecord::StatementInvalid
102
+ include Iry::Error
103
+ end
104
+
105
+ # Overrides private API method {ActiveRecord#create_or_update} to handle
106
+ # constraints and attach errors to the including model
107
+ module Patch
108
+ # Takes attributes as named arguments
109
+ #
110
+ # _@return_ — true if successful
111
+ def create_or_update: () -> bool
112
+ end
113
+
85
114
  # Class-level methods available to classes executing `include Iry`
86
115
  module Macros
87
116
  # Constraints by name
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Belladonna