act_as_fire_record_beta 0.0.5 → 0.0.7

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: de1266b473f1bb73b649e6c322746a7cef196cd54fde1ec2d252cdeaee76aa82
4
- data.tar.gz: 61f295287959e20d7eb99ca40a748a514ed1fd061715706e52c61ad10a2e7802
3
+ metadata.gz: edeacaf31ef73ecb88185915a483712a188f66fc05c7ecdd54432ed4ceb2cfda
4
+ data.tar.gz: 54937813b56125aa196af5c9b8abba535ba0abf95cc3eb2ee32ad677fe8b8d12
5
5
  SHA512:
6
- metadata.gz: 735b6a55698f6c535fce4bb0be7da9bfd5a973d35f840971398bbf5557b1f7f746799a6e5d397e1c0ab22e46a97d6716e25c479e58cb6355dbe68c1dc074039d
7
- data.tar.gz: 506fd516a0bf5420334078715979b9063af08b7deb47bc672d5c0a22635e3c613159da4a77f6a7d72c5927188af544baaeaf1da62a99029a0bf76fcd60d5a489
6
+ metadata.gz: d1b0f6e6bc7bdc58db9488d273634e8a6f417c3222d3a1c900ffb4caedbe690b7f41907e7487a581d4ec9087da2c787ceb9b08a9f12fa90928763de06ab72174
7
+ data.tar.gz: 29be871e1061cc0e426fbd54877c640db94e549577f7f2a281c48b9315a321fa6f62f20dec1116c97dd651386e121ce0dd0a79901881300fbd1544a940575d57
@@ -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,27 @@ 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
7
+
8
+ if Google::Cloud.configure.firestore.emulator_host
9
+ Google::Cloud::Firestore::V1::Firestore::Client.configure do |config|
10
+ config.rpcs.list_documents.metadata ||= {}
11
+ config.rpcs.list_documents.metadata['authorization'] = 'Bearer owner'
12
+ end
13
+
14
+ Google::Cloud::Firestore::Service.prepend(
15
+ Module.new do
16
+ protected
17
+
18
+ def default_headers parent = nil
19
+ headers = super
20
+ headers['authorization'] = 'Bearer owner'
21
+ headers
22
+ end
23
+ end
24
+ )
25
+ end
5
26
  end
6
27
  end
7
28
  end
@@ -1,3 +1,3 @@
1
1
  module ActAsFireRecordBeta
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.7"
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
@@ -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.5
4
+ version: 0.0.7
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-11-23 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
@@ -76,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
77
  - !ruby/object:Gem::Version
77
78
  version: '0'
78
79
  requirements: []
79
- rubygems_version: 3.2.33
80
+ rubygems_version: 3.3.7
80
81
  signing_key:
81
82
  specification_version: 4
82
83
  summary: ActiveRecord like interface for Firestore