act_as_fire_record_beta 0.0.4 → 0.0.6

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: 631c8a9418186db9bba40eeed7d122996c161c6f44bba58a230840e3ee063b73
4
- data.tar.gz: 82a5ae9c0f6aa62920cdba71fb8e31f279aea21fdb8c989b297f15e04e1e06d7
3
+ metadata.gz: 49ce18fcdd813103bc337ff059cb557688c2b9c56bd968154ca01f97faac94ae
4
+ data.tar.gz: e0f2da2255f16d8da1c66309a89da90952541a80eb6e91375b047e912d944a5d
5
5
  SHA512:
6
- metadata.gz: acab4a53dd1d91888490a537e4b85234c451ac2c57af072a2cb383a63cd7009db6f7130ceb8d2b710b9f012f660727873c897419bd64e98c57e8003cf6118418
7
- data.tar.gz: c3b124d95d7e1dab694fcb86fb83ed2e90efc4502121a6d87e4263b7b7bf7590f0a1505c47e7d08b6cff49230d1ea40d26eadf98a906a3ab55cc1d9ccf8e7ad3
6
+ metadata.gz: ba5bdc2b1ee0022524f463901a9505bee0bca3657a56ea9a2624f059e763e4307ffd72a0232346a54610cba674e19f95bf8c4b3dd3b68b653aed0f46ffaad0bf
7
+ data.tar.gz: c96ee66f64cfa75506b18ca919332daf6df378dd19f7c0795b0c5c477a6c76d19b23d76fddddfc0e71570f1692e0429715f2bbbdd62d0645327c23c68c2433dc
@@ -0,0 +1,9 @@
1
+ module ActAsFireRecordBeta
2
+ class FireRecordError < StandardError; end
3
+
4
+ class RecordNotFound < FireRecordError; end
5
+
6
+ class RecordNotSaved < FireRecordError; end
7
+
8
+ class OperationNotSupported < FireRecordError; end
9
+ end
@@ -2,6 +2,8 @@ module ActAsFireRecordBeta
2
2
  class Railtie < ::Rails::Railtie
3
3
  initializer "act_as_fire_record_beta" do
4
4
  require "act_as_fire_record_beta/google/cloud/firestore/query"
5
+
6
+ ActionDispatch::ExceptionWrapper.rescue_responses["ActAsFireRecordBeta::RecordNotFound"] = :not_found
5
7
  end
6
8
  end
7
9
  end
@@ -1,3 +1,3 @@
1
1
  module ActAsFireRecordBeta
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require "google/cloud/firestore"
2
2
  require "act_as_fire_record_beta/version"
3
3
  require "act_as_fire_record_beta/railtie"
4
+ require "act_as_fire_record_beta/errors"
4
5
 
5
6
  module ActAsFireRecordBeta
6
7
  extend ActiveSupport::Concern
@@ -32,8 +33,8 @@ module ActAsFireRecordBeta
32
33
  extend Forwardable
33
34
  delegate :logger => Rails
34
35
 
35
- # Copied from activemodel-7.0.4/lib/active_model/attributes.rb
36
- NO_DEFAULT_PROVIDED = Object.new
36
+ # Get private constant
37
+ NO_DEFAULT_PROVIDED = ActiveModel::Attributes::ClassMethods.const_get(:NO_DEFAULT_PROVIDED)
37
38
 
38
39
  def firestore_attribute(name, cast_type = nil, default: NO_DEFAULT_PROVIDED, **options)
39
40
  attribute(name, cast_type, default: default, **options)
@@ -58,20 +59,20 @@ module ActAsFireRecordBeta
58
59
 
59
60
  def find(id)
60
61
  data = doc(id).get
61
- raise ActiveRecord::RecordNotFound if data.missing?
62
+ raise ActAsFireRecordBeta::RecordNotFound, "Couldn't find record with #{self} with 'id'='#{id}'" if data.missing?
62
63
 
63
64
  to_instance(data)
64
65
  end
65
66
 
66
67
  def find_by(param)
67
- raise ArgumentError, "param size should be 1: #{param}" unless param.size == 1
68
+ raise ::ArgumentError, "param size should be 1: #{param}" unless param.size == 1
68
69
  field, value = param.to_a.flatten
69
70
 
70
71
  where(field, :==, value).first
71
72
  end
72
73
 
73
74
  def find_by!(param)
74
- find_by(param) || raise(ActiveRecord::RecordNotFound)
75
+ find_by(param) || raise(ActAsFireRecordBeta::RecordNotFound, "Couldn't find #{self} with '#{param.to_a[0][0]}'=#{param.to_a[0][1].inspect}")
75
76
  end
76
77
 
77
78
  def where(field, operator, value)
@@ -156,7 +157,7 @@ module ActAsFireRecordBeta
156
157
  end
157
158
 
158
159
  def save
159
- raise "insert only." unless new_record?
160
+ raise ActAsFireRecordBeta::OperationNotSupported, "insert only." unless new_record?
160
161
  return false if invalid?
161
162
 
162
163
  ref = col.add(save_params)
@@ -166,7 +167,7 @@ module ActAsFireRecordBeta
166
167
  end
167
168
 
168
169
  def save!
169
- save || raise(ActiveRecord::RecordNotSaved.new("Failed to save the record", self))
170
+ save || raise(ActAsFireRecordBeta::RecordNotSaved, "Failed to save the record")
170
171
  end
171
172
 
172
173
  def update(params)
@@ -179,7 +180,7 @@ module ActAsFireRecordBeta
179
180
  end
180
181
 
181
182
  def update!(params)
182
- update(params) || raise(ActiveRecord::RecordNotSaved.new("Failed to save the record", self))
183
+ update(params) || raise(ActAsFireRecordBeta::RecordNotSaved, "Failed to save the record")
183
184
  end
184
185
 
185
186
  def destroy
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: act_as_fire_record_beta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Junichi Ito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-23 00:00:00.000000000 Z
11
+ date: 2022-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -49,6 +49,7 @@ files:
49
49
  - README.md
50
50
  - Rakefile
51
51
  - lib/act_as_fire_record_beta.rb
52
+ - lib/act_as_fire_record_beta/errors.rb
52
53
  - lib/act_as_fire_record_beta/google/cloud/firestore/query.rb
53
54
  - lib/act_as_fire_record_beta/railtie.rb
54
55
  - lib/act_as_fire_record_beta/version.rb