better_record 0.17.4 → 0.17.8
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/config/initializers/active_record/exchange_rate_integer_type.rb +3 -0
- data/db/migrate/20190123225641_add_exchange_rate_integer_type.rb +17 -0
- data/lib/better_record.rb +1 -0
- data/lib/better_record/exchange_rate_integer.rb +43 -0
- data/lib/better_record/money_integer.rb +3 -3
- data/lib/better_record/version.rb +1 -1
- metadata +32 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd1965f82f78e6e818577e38880aeffce5d5574c714e822acc24532b1b5f467d
|
4
|
+
data.tar.gz: 4ca5cf224a383b9e2fd544c9cda5a597d9d59dcb13ace7f79b1e9799d64f8a05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8fa73e1d6281562de69eb2b9b6a2de429d12140d560aaa0df90a9efc0d1ffe844da8a6b64a3865b5ed41587c6779635c4c44430dabdd7cb59a05745b2751ef65
|
7
|
+
data.tar.gz: 4af01878cc35b56dfb09c196e90ece155f913feb41353f7d6833c260a6bde3e3762a71ee85a8568a5fd417eb2da78dd0819feb14485d8199299b82360102dec0
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class AddExchangeRateIntegerType < ActiveRecord::Migration[5.2]
|
2
|
+
def up
|
3
|
+
execute <<-SQL
|
4
|
+
DO $$
|
5
|
+
BEGIN
|
6
|
+
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'exchange_rate_integer') THEN
|
7
|
+
CREATE DOMAIN exchange_rate_integer AS BIGINT NOT NULL DEFAULT 0;
|
8
|
+
END IF;
|
9
|
+
END
|
10
|
+
$$;
|
11
|
+
SQL
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
execute "DROP DOMAIN IF EXISTS exchange_rate_integer;"
|
16
|
+
end
|
17
|
+
end
|
data/lib/better_record.rb
CHANGED
@@ -88,6 +88,7 @@ ActiveSupport.on_load(:active_record) do
|
|
88
88
|
end
|
89
89
|
module ConnectionAdapters
|
90
90
|
class TableDefinition
|
91
|
+
include BetterRecord::ExchangeRateInteger::TableDefinition
|
91
92
|
include BetterRecord::Gender::TableDefinition
|
92
93
|
include BetterRecord::MoneyInteger::TableDefinition
|
93
94
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'store_as_int'
|
3
|
+
|
4
|
+
module BetterRecord
|
5
|
+
module ExchangeRateInteger
|
6
|
+
module TableDefinition
|
7
|
+
def exchange_rate_integer(*args, **opts)
|
8
|
+
args.each do |name|
|
9
|
+
column name, :exchange_rate_integer, **opts
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Type < ActiveRecord::Type::Value
|
15
|
+
def cast(value)
|
16
|
+
convert_to_exchange_rate(value)
|
17
|
+
end
|
18
|
+
|
19
|
+
def deserialize(value)
|
20
|
+
super(convert_to_exchange_rate(value))
|
21
|
+
end
|
22
|
+
|
23
|
+
def serialize(value)
|
24
|
+
super(convert_to_exchange_rate(value).value)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
def convert_to_exchange_rate(value)
|
29
|
+
return StoreAsInt::ExchangeRate.new(0) unless value
|
30
|
+
if (!value.kind_of?(Numeric))
|
31
|
+
begin
|
32
|
+
exchange_rate_to_i = (value.gsub(/\%/, '').presence || 0).to_d * StoreAsInt::ExchangeRate.base
|
33
|
+
StoreAsInt::ExchangeRate.new(exchange_rate_to_i.to_i)
|
34
|
+
rescue
|
35
|
+
StoreAsInt::ExchangeRate.new
|
36
|
+
end
|
37
|
+
else
|
38
|
+
StoreAsInt::ExchangeRate.new(value)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -29,13 +29,13 @@ module BetterRecord
|
|
29
29
|
return StoreAsInt::Money.new(0) unless value
|
30
30
|
if (!value.kind_of?(Numeric))
|
31
31
|
begin
|
32
|
-
dollars_to_cents = (value.gsub(/\$/, '').presence || 0).to_d *
|
33
|
-
StoreAsInt.
|
32
|
+
dollars_to_cents = (value.gsub(/\$/, '').presence || 0).to_d * StoreAsInt::Money.base
|
33
|
+
StoreAsInt::Money.new(dollars_to_cents.to_i)
|
34
34
|
rescue
|
35
35
|
StoreAsInt::Money.new
|
36
36
|
end
|
37
37
|
else
|
38
|
-
StoreAsInt.
|
38
|
+
StoreAsInt::Money.new(value)
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: better_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.17.
|
4
|
+
version: 0.17.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sampson Crowley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '5.2'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 5.2.0
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.2'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '5.2'
|
30
27
|
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 5.2.0
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.2'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: pg
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '0.0'
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.0.
|
62
|
+
version: 0.0.17
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '0.0'
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 0.0.
|
72
|
+
version: 0.0.17
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: pry-rails
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,22 +114,22 @@ dependencies:
|
|
114
114
|
name: jwt
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- - "~>"
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '2.1'
|
120
117
|
- - ">="
|
121
118
|
- !ruby/object:Gem::Version
|
122
119
|
version: 2.1.0
|
120
|
+
- - "~>"
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '2.1'
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- - "~>"
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '2.1'
|
130
127
|
- - ">="
|
131
128
|
- !ruby/object:Gem::Version
|
132
129
|
version: 2.1.0
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '2.1'
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: jwe
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,22 +154,22 @@ dependencies:
|
|
154
154
|
name: csv
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - "~>"
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '3.0'
|
160
157
|
- - ">="
|
161
158
|
- !ruby/object:Gem::Version
|
162
159
|
version: 3.0.0
|
160
|
+
- - "~>"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '3.0'
|
163
163
|
type: :runtime
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
|
-
- - "~>"
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
version: '3.0'
|
170
167
|
- - ">="
|
171
168
|
- !ruby/object:Gem::Version
|
172
169
|
version: 3.0.0
|
170
|
+
- - "~>"
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '3.0'
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
name: rspec-rails
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,22 +194,22 @@ dependencies:
|
|
194
194
|
name: factory_bot_rails
|
195
195
|
requirement: !ruby/object:Gem::Requirement
|
196
196
|
requirements:
|
197
|
-
- - "~>"
|
198
|
-
- !ruby/object:Gem::Version
|
199
|
-
version: '4.10'
|
200
197
|
- - ">="
|
201
198
|
- !ruby/object:Gem::Version
|
202
199
|
version: 4.10.0
|
200
|
+
- - "~>"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '4.10'
|
203
203
|
type: :development
|
204
204
|
prerelease: false
|
205
205
|
version_requirements: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
|
-
- - "~>"
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: '4.10'
|
210
207
|
- - ">="
|
211
208
|
- !ruby/object:Gem::Version
|
212
209
|
version: 4.10.0
|
210
|
+
- - "~>"
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '4.10'
|
213
213
|
description: |2
|
214
214
|
This app extends active record to allow you to change the polymorphic type value in relationships.
|
215
215
|
It also extends active record batching functions to be able to order records while batching.
|
@@ -248,6 +248,7 @@ files:
|
|
248
248
|
- app/views/better_record/table_sizes/index.html.erb
|
249
249
|
- app/views/better_record/table_sizes/show.html.erb
|
250
250
|
- app/views/layouts/better_record/application.html.erb
|
251
|
+
- config/initializers/active_record/exchange_rate_integer_type.rb
|
251
252
|
- config/initializers/active_record/gender_type.rb
|
252
253
|
- config/initializers/active_record/money_integer_type.rb
|
253
254
|
- config/initializers/active_support/time_with_zone.rb
|
@@ -268,6 +269,7 @@ files:
|
|
268
269
|
- db/migrate/20180518042070_create_better_record_table_sizes.rb
|
269
270
|
- db/migrate/20181228204403_create_better_record_attachment_validations.rb
|
270
271
|
- db/migrate/20190107202602_add_updated_at_to_better_record_table_sizes.rb
|
272
|
+
- db/migrate/20190123225641_add_exchange_rate_integer_type.rb
|
271
273
|
- db/postgres-audit-trigger.psql
|
272
274
|
- lib/better_record.rb
|
273
275
|
- lib/better_record/batches.rb
|
@@ -284,6 +286,7 @@ files:
|
|
284
286
|
- lib/better_record/concerns/controllers/uploadable.rb
|
285
287
|
- lib/better_record/encoder.rb
|
286
288
|
- lib/better_record/engine.rb
|
289
|
+
- lib/better_record/exchange_rate_integer.rb
|
287
290
|
- lib/better_record/fake_redis.rb
|
288
291
|
- lib/better_record/gender.rb
|
289
292
|
- lib/better_record/inject_methods.rb
|
@@ -342,8 +345,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
342
345
|
- !ruby/object:Gem::Version
|
343
346
|
version: '0'
|
344
347
|
requirements: []
|
345
|
-
|
346
|
-
rubygems_version: 2.7.7
|
348
|
+
rubygems_version: 3.0.2
|
347
349
|
signing_key:
|
348
350
|
specification_version: 4
|
349
351
|
summary: Fix functions that are lacking in Active record to be compatible with multi-app
|