fmrest 0.5.1 → 0.5.2
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/fmrest.gemspec +2 -2
- data/lib/fmrest/spyke/model/attributes.rb +10 -1
- data/lib/fmrest/spyke/model/orm.rb +15 -0
- data/lib/fmrest/spyke/validation_error.rb +25 -0
- data/lib/fmrest/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f72f9afbde054df91f3abc73b54752c7c19cca4f4ec1c5299ab6cc2edb8978fb
|
4
|
+
data.tar.gz: 3ff30b1db7976a76783cbe99c14d9224e5477a8f8d3ba68e8df27adb9d547678
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7aee8096187d1082475e941ae4f4b9509d7b16a8d3f660c0e6989632f1b11ae7d7da5569fd5788862975190810a4dd91643d5f0c66630191bbdea95c2fcd4c7f
|
7
|
+
data.tar.gz: 6775c47687abcf09a0a27e06697deaa90021114559675c82d1189420ee58d5181d8e6cac9d6b20628f468223aaed7e8a075838b06b9a818e68eaf8465eddfc05
|
data/CHANGELOG.md
CHANGED
data/fmrest.gemspec
CHANGED
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency "spyke"
|
30
30
|
spec.add_development_dependency "webmock"
|
31
31
|
spec.add_development_dependency "pry-byebug"
|
32
|
-
spec.add_development_dependency "activerecord"
|
33
|
-
spec.add_development_dependency "sqlite3"
|
32
|
+
spec.add_development_dependency "activerecord", ENV["ACTIVE_RECORD_VERSION"]
|
33
|
+
spec.add_development_dependency "sqlite3", ENV["SQLITE3_VERSION"]
|
34
34
|
spec.add_development_dependency "mock_redis"
|
35
35
|
spec.add_development_dependency "moneta"
|
36
36
|
spec.add_development_dependency "yard"
|
@@ -71,7 +71,16 @@ module FmRest
|
|
71
71
|
# In case of an existing Spyke object return it as is so that we
|
72
72
|
# don't accidentally remove dirty data from associations
|
73
73
|
return super if attributes_or_object.is_a?(::Spyke::Base)
|
74
|
-
super.tap
|
74
|
+
super.tap do |record|
|
75
|
+
# In ActiveModel 4.x #clear_changes_information is a private
|
76
|
+
# method, so we need to call it with send() in that case, but
|
77
|
+
# keep calling it normally for AM5+
|
78
|
+
if record.respond_to?(:clear_changes_information)
|
79
|
+
record.clear_changes_information
|
80
|
+
else
|
81
|
+
record.send(:clear_changes_information)
|
82
|
+
end
|
83
|
+
end
|
75
84
|
end
|
76
85
|
|
77
86
|
def _fmrest_attribute_methods_container
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "fmrest/spyke/relation"
|
4
|
+
require "fmrest/spyke/validation_error"
|
4
5
|
|
5
6
|
module FmRest
|
6
7
|
module Spyke
|
@@ -155,6 +156,14 @@ module FmRest
|
|
155
156
|
self.mod_id = reloaded.mod_id
|
156
157
|
end
|
157
158
|
|
159
|
+
# ActiveModel 5+ implements this method, so we only needed if we're in
|
160
|
+
# the older AM4
|
161
|
+
if ActiveModel::VERSION::MAJOR == 4
|
162
|
+
def validate!(context = nil)
|
163
|
+
valid?(context) || raise_validation_error
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
158
167
|
private
|
159
168
|
|
160
169
|
def perform_save_validations(context, options)
|
@@ -190,6 +199,12 @@ module FmRest
|
|
190
199
|
end
|
191
200
|
end
|
192
201
|
end
|
202
|
+
|
203
|
+
# Overwrite ActiveModel's raise_validation_error to use our own class
|
204
|
+
#
|
205
|
+
def raise_validation_error # :doc:
|
206
|
+
raise(ValidationError.new(self))
|
207
|
+
end
|
193
208
|
end
|
194
209
|
end
|
195
210
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FmRest
|
4
|
+
module Spyke
|
5
|
+
# ActiveModel 4 doesn't include a ValidationError class, which we want to
|
6
|
+
# raise when model.validate! fails.
|
7
|
+
#
|
8
|
+
# In order to break the least amount of code that uses AM5+, while still
|
9
|
+
# supporting AM4 we use this proxy class that inherits from
|
10
|
+
# AM::ValidationError if it's there, or reimplements it otherwise
|
11
|
+
if defined?(::ActiveModel::ValidationError)
|
12
|
+
class ValidationError < ::ActiveModel::ValidationError; end
|
13
|
+
else
|
14
|
+
class ValidationError < StandardError
|
15
|
+
attr_reader :model
|
16
|
+
|
17
|
+
def initialize(model)
|
18
|
+
@model = model
|
19
|
+
errors = @model.errors.full_messages.join(", ")
|
20
|
+
super("Invalid model: #{errors}")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/fmrest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fmrest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pedro Carbajal
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- lib/fmrest/spyke/model/uri.rb
|
241
241
|
- lib/fmrest/spyke/portal.rb
|
242
242
|
- lib/fmrest/spyke/relation.rb
|
243
|
+
- lib/fmrest/spyke/validation_error.rb
|
243
244
|
- lib/fmrest/token_store.rb
|
244
245
|
- lib/fmrest/token_store/active_record.rb
|
245
246
|
- lib/fmrest/token_store/base.rb
|