amountable 0.4.0 → 0.6.0
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/.github/dependabot.yml +5 -1
- data/.github/workflows/CI.yml +17 -8
- data/.github/workflows/gem-publish-public.yml +3 -1
- data/Gemfile +2 -0
- data/amountable.gemspec +4 -5
- data/lib/amountable/table_methods.rb +4 -4
- data/lib/amountable/version.rb +1 -1
- data/lib/amountable.rb +2 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/support/database.rb +6 -3
- metadata +10 -30
- data/gemfiles/activerecord_5.2.gemfile +0 -5
- data/gemfiles/activerecord_6.0.gemfile +0 -5
- data/gemfiles/activerecord_6.1.gemfile +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 117dc0615f7234531a1bc2c82e198a92240350de974861bcd8c894475cd560bb
|
|
4
|
+
data.tar.gz: b7bc49c40bbc3b76bc0cf43b6acae5396f28d94fe71f24d7a3153b57481ef67d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5dc6d1475f0d577507167d0ce2f2781c15ca96312eba2c0de63867c8e9aecb9eb3a0b7970e1b24804fc44d8ccc6efef05ebe50c3aa8aeae6fc2a8f654a3ef57c
|
|
7
|
+
data.tar.gz: 9f52cda5ac6ad90460a7c4669f39c6e6caae271aa86d3dfda67da24a79a068a84ab3a91574e53328d771e35d2b00583f97ad3fc0d0c9549d25ca649ea8f14087
|
data/.github/dependabot.yml
CHANGED
|
@@ -8,4 +8,8 @@ updates:
|
|
|
8
8
|
- package-ecosystem: "bundler" # See documentation for possible values
|
|
9
9
|
directory: "/" # Location of package manifests
|
|
10
10
|
schedule:
|
|
11
|
-
interval: "
|
|
11
|
+
interval: "weekly"
|
|
12
|
+
- package-ecosystem: github-actions
|
|
13
|
+
directory: "/"
|
|
14
|
+
schedule:
|
|
15
|
+
interval: "weekly"
|
data/.github/workflows/CI.yml
CHANGED
|
@@ -12,15 +12,17 @@ jobs:
|
|
|
12
12
|
strategy:
|
|
13
13
|
matrix:
|
|
14
14
|
ruby:
|
|
15
|
-
- '
|
|
16
|
-
- '
|
|
15
|
+
- '3.3'
|
|
16
|
+
- '3.4'
|
|
17
17
|
activerecord:
|
|
18
|
-
- '
|
|
19
|
-
- '
|
|
20
|
-
- '
|
|
18
|
+
- '7.0'
|
|
19
|
+
- '7.1'
|
|
20
|
+
- '7.2'
|
|
21
|
+
- '8.0'
|
|
22
|
+
- '8.1'
|
|
21
23
|
services:
|
|
22
24
|
postgres:
|
|
23
|
-
image: postgres:
|
|
25
|
+
image: postgres:16
|
|
24
26
|
ports:
|
|
25
27
|
- 5432:5432
|
|
26
28
|
env:
|
|
@@ -34,9 +36,9 @@ jobs:
|
|
|
34
36
|
|
|
35
37
|
name: Ruby ${{ matrix.ruby }} / ActiveRecord ${{ matrix.activerecord }}
|
|
36
38
|
env:
|
|
37
|
-
|
|
39
|
+
RAILS_VERSION: ${{ matrix.activerecord }}
|
|
38
40
|
steps:
|
|
39
|
-
- uses: actions/checkout@
|
|
41
|
+
- uses: actions/checkout@v6
|
|
40
42
|
- run: |
|
|
41
43
|
sudo apt-get -yqq install libpq-dev
|
|
42
44
|
- uses: ruby/setup-ruby@v1
|
|
@@ -49,3 +51,10 @@ jobs:
|
|
|
49
51
|
PGHOST: 127.0.0.1
|
|
50
52
|
PGUSER: postgres
|
|
51
53
|
RAILS_ENV: test
|
|
54
|
+
main:
|
|
55
|
+
runs-on: ubuntu-latest
|
|
56
|
+
needs:
|
|
57
|
+
- build
|
|
58
|
+
steps:
|
|
59
|
+
- run: |
|
|
60
|
+
echo "Confirmed all jobs passed"
|
data/Gemfile
CHANGED
data/amountable.gemspec
CHANGED
|
@@ -15,11 +15,11 @@ Gem::Specification.new do |gem|
|
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
|
16
16
|
gem.test_files = gem.files.grep(%r{^spec/})
|
|
17
17
|
gem.require_paths = ['lib']
|
|
18
|
-
gem.required_ruby_version = '>=
|
|
18
|
+
gem.required_ruby_version = '>= 3.3'
|
|
19
19
|
|
|
20
|
-
gem.add_dependency 'activerecord', '>=
|
|
21
|
-
gem.add_dependency 'activerecord-import', '>= 0.
|
|
22
|
-
gem.add_dependency 'money-rails', '>=1.7.0'
|
|
20
|
+
gem.add_dependency 'activerecord', '>= 7.0', '< 9'
|
|
21
|
+
gem.add_dependency 'activerecord-import', '>= 2.0.0'
|
|
22
|
+
gem.add_dependency 'money-rails', '>= 1.7.0'
|
|
23
23
|
gem.add_dependency 'monetize'
|
|
24
24
|
|
|
25
25
|
gem.add_development_dependency 'sqlite3'
|
|
@@ -27,7 +27,6 @@ Gem::Specification.new do |gem|
|
|
|
27
27
|
gem.add_development_dependency 'pg'
|
|
28
28
|
|
|
29
29
|
gem.add_development_dependency 'rspec-rails'
|
|
30
|
-
gem.add_development_dependency 'rspec'
|
|
31
30
|
gem.add_development_dependency 'database_cleaner'
|
|
32
31
|
gem.add_development_dependency 'db-query-matchers'
|
|
33
32
|
end
|
|
@@ -19,15 +19,15 @@ module Amountable
|
|
|
19
19
|
amount.value
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
def save(args
|
|
22
|
+
def save(**args)
|
|
23
23
|
ActiveRecord::Base.transaction do
|
|
24
|
-
save_amounts if super
|
|
24
|
+
save_amounts if super
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
|
-
def save!(args
|
|
28
|
+
def save!(**args)
|
|
29
29
|
ActiveRecord::Base.transaction do
|
|
30
|
-
save_amounts! if super
|
|
30
|
+
save_amounts! if super
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
data/lib/amountable/version.rb
CHANGED
data/lib/amountable.rb
CHANGED
|
@@ -119,6 +119,7 @@ module Amountable
|
|
|
119
119
|
super
|
|
120
120
|
end
|
|
121
121
|
end
|
|
122
|
+
ruby2_keywords :where if Module.private_method_defined?(:ruby2_keywords)
|
|
122
123
|
|
|
123
124
|
def where_json(opts, *rest)
|
|
124
125
|
values = []
|
|
@@ -136,6 +137,7 @@ module Amountable
|
|
|
136
137
|
query = [query.join(' AND ')] + values
|
|
137
138
|
where(query, *rest).where(opts, *rest)
|
|
138
139
|
end
|
|
140
|
+
ruby2_keywords :where_json if Module.private_method_defined?(:ruby2_keywords)
|
|
139
141
|
|
|
140
142
|
def pg_json_field_access(name, field = :cents)
|
|
141
143
|
name = name.to_sym
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/database.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Copyright 2015-2021, Instacart
|
|
2
2
|
|
|
3
|
+
require "activerecord-import/base"
|
|
4
|
+
|
|
3
5
|
db_name = ENV['DB'] || 'postgresql'
|
|
4
6
|
spec_dir = Pathname.new(File.dirname(__FILE__)) / '..'
|
|
5
7
|
database_yml = spec_dir.join('internal/config/database.yml')
|
|
@@ -7,11 +9,12 @@ database_yml = spec_dir.join('internal/config/database.yml')
|
|
|
7
9
|
fail "Please create #{database_yml} first to configure your database. Take a look at: #{database_yml}.sample" unless File.exist?(database_yml)
|
|
8
10
|
|
|
9
11
|
ActiveRecord::Migration.verbose = false
|
|
10
|
-
ActiveRecord::Base.default_timezone = :utc
|
|
12
|
+
ActiveRecord.try(:default_timezone=, :utc) || ActiveRecord::Base.default_timezone = :utc
|
|
11
13
|
ActiveRecord::Base.configurations = YAML.load_file(database_yml)
|
|
12
|
-
ActiveRecord::Base.logger = Logger.new(File.join(
|
|
14
|
+
ActiveRecord::Base.logger = Logger.new(File.join(__dir__, '../debug.log'))
|
|
13
15
|
ActiveRecord::Base.logger.level = ENV['CI'] ? ::Logger::ERROR : ::Logger::DEBUG
|
|
14
|
-
|
|
16
|
+
configs = ActiveRecord::Base.configurations
|
|
17
|
+
config = configs.try(:find_db_config, db_name) || configs[db_name]
|
|
15
18
|
|
|
16
19
|
begin
|
|
17
20
|
ActiveRecord::Base.establish_connection(db_name.to_sym)
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: amountable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Emmanuel Turlay
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activerecord
|
|
@@ -16,34 +15,34 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
18
|
+
version: '7.0'
|
|
20
19
|
- - "<"
|
|
21
20
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
21
|
+
version: '9'
|
|
23
22
|
type: :runtime
|
|
24
23
|
prerelease: false
|
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
25
|
requirements:
|
|
27
26
|
- - ">="
|
|
28
27
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
28
|
+
version: '7.0'
|
|
30
29
|
- - "<"
|
|
31
30
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
31
|
+
version: '9'
|
|
33
32
|
- !ruby/object:Gem::Dependency
|
|
34
33
|
name: activerecord-import
|
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
|
36
35
|
requirements:
|
|
37
36
|
- - ">="
|
|
38
37
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.
|
|
38
|
+
version: 2.0.0
|
|
40
39
|
type: :runtime
|
|
41
40
|
prerelease: false
|
|
42
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
42
|
requirements:
|
|
44
43
|
- - ">="
|
|
45
44
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 0.
|
|
45
|
+
version: 2.0.0
|
|
47
46
|
- !ruby/object:Gem::Dependency
|
|
48
47
|
name: money-rails
|
|
49
48
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,20 +127,6 @@ dependencies:
|
|
|
128
127
|
- - ">="
|
|
129
128
|
- !ruby/object:Gem::Version
|
|
130
129
|
version: '0'
|
|
131
|
-
- !ruby/object:Gem::Dependency
|
|
132
|
-
name: rspec
|
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
|
134
|
-
requirements:
|
|
135
|
-
- - ">="
|
|
136
|
-
- !ruby/object:Gem::Version
|
|
137
|
-
version: '0'
|
|
138
|
-
type: :development
|
|
139
|
-
prerelease: false
|
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
141
|
-
requirements:
|
|
142
|
-
- - ">="
|
|
143
|
-
- !ruby/object:Gem::Version
|
|
144
|
-
version: '0'
|
|
145
130
|
- !ruby/object:Gem::Dependency
|
|
146
131
|
name: database_cleaner
|
|
147
132
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -189,9 +174,6 @@ files:
|
|
|
189
174
|
- Rakefile
|
|
190
175
|
- amountable.gemspec
|
|
191
176
|
- db/migrate/0_create_amounts.rb
|
|
192
|
-
- gemfiles/activerecord_5.2.gemfile
|
|
193
|
-
- gemfiles/activerecord_6.0.gemfile
|
|
194
|
-
- gemfiles/activerecord_6.1.gemfile
|
|
195
177
|
- lib/amountable.rb
|
|
196
178
|
- lib/amountable/amount.rb
|
|
197
179
|
- lib/amountable/jsonb_methods.rb
|
|
@@ -214,7 +196,6 @@ homepage: https://github.com/instacart/amountable
|
|
|
214
196
|
licenses:
|
|
215
197
|
- ISC
|
|
216
198
|
metadata: {}
|
|
217
|
-
post_install_message:
|
|
218
199
|
rdoc_options: []
|
|
219
200
|
require_paths:
|
|
220
201
|
- lib
|
|
@@ -222,15 +203,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
222
203
|
requirements:
|
|
223
204
|
- - ">="
|
|
224
205
|
- !ruby/object:Gem::Version
|
|
225
|
-
version: '
|
|
206
|
+
version: '3.3'
|
|
226
207
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
227
208
|
requirements:
|
|
228
209
|
- - ">="
|
|
229
210
|
- !ruby/object:Gem::Version
|
|
230
211
|
version: '0'
|
|
231
212
|
requirements: []
|
|
232
|
-
rubygems_version:
|
|
233
|
-
signing_key:
|
|
213
|
+
rubygems_version: 4.0.3
|
|
234
214
|
specification_version: 4
|
|
235
215
|
summary: Easy Money fields for your Rails models.
|
|
236
216
|
test_files:
|