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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f15a987389dd56fc45dcddf6145adddbfe47bfc8b3b7666180c1bd51d7638a1
4
- data.tar.gz: 1a23700ce3d891c26c35e53fe2d2e3c2d07dea910b0e6057a71aa17740933b6b
3
+ metadata.gz: 117dc0615f7234531a1bc2c82e198a92240350de974861bcd8c894475cd560bb
4
+ data.tar.gz: b7bc49c40bbc3b76bc0cf43b6acae5396f28d94fe71f24d7a3153b57481ef67d
5
5
  SHA512:
6
- metadata.gz: 3642a8c7ad8a7eb8ff0e039cb77abadb6ee11b4d53521e53028d2b4c74ad71e8a3ed1ab3762e36e55067d8e31813dfde1c0a2fdf1ae15fdf7583bac6f4ba65b4
7
- data.tar.gz: 68285488fe760b730d09fd54640e2529bd579dbb3227cd313842ae8c7f5d4aa6db6d46d0e7bc7dc7a03541c0cf8de78a6aadb731fb654252df217f2ffa4a7a38
6
+ metadata.gz: 5dc6d1475f0d577507167d0ce2f2781c15ca96312eba2c0de63867c8e9aecb9eb3a0b7970e1b24804fc44d8ccc6efef05ebe50c3aa8aeae6fc2a8f654a3ef57c
7
+ data.tar.gz: 9f52cda5ac6ad90460a7c4669f39c6e6caae271aa86d3dfda67da24a79a068a84ab3a91574e53328d771e35d2b00583f97ad3fc0d0c9549d25ca649ea8f14087
@@ -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: "daily"
11
+ interval: "weekly"
12
+ - package-ecosystem: github-actions
13
+ directory: "/"
14
+ schedule:
15
+ interval: "weekly"
@@ -12,15 +12,17 @@ jobs:
12
12
  strategy:
13
13
  matrix:
14
14
  ruby:
15
- - '2.6'
16
- - '2.7'
15
+ - '3.3'
16
+ - '3.4'
17
17
  activerecord:
18
- - '6.1'
19
- - '6.0'
20
- - '5.2'
18
+ - '7.0'
19
+ - '7.1'
20
+ - '7.2'
21
+ - '8.0'
22
+ - '8.1'
21
23
  services:
22
24
  postgres:
23
- image: postgres:12
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
- BUNDLE_GEMFILE: gemfiles/activerecord_${{ matrix.activerecord }}.gemfile
39
+ RAILS_VERSION: ${{ matrix.activerecord }}
38
40
  steps:
39
- - uses: actions/checkout@v2
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"
@@ -12,7 +12,9 @@ jobs:
12
12
 
13
13
  steps:
14
14
  - uses: actions/checkout@v2
15
- - uses: actions/setup-ruby@v1
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ruby
16
18
  - name: Build
17
19
  run: |
18
20
  gem build *.gemspec
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem "activerecord", "~> #{ENV.fetch('RAILS_VERSION', '7.2')}.0"
4
+
3
5
  gemspec
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 = '>= 2.6'
18
+ gem.required_ruby_version = '>= 3.3'
19
19
 
20
- gem.add_dependency 'activerecord', '>= 5.2', '< 7'
21
- gem.add_dependency 'activerecord-import', '>= 0.19.1'
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(args)
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(args)
30
+ save_amounts! if super
31
31
  end
32
32
  end
33
33
 
@@ -1,5 +1,5 @@
1
1
  # Copyright 2015-2021, Instacart
2
2
 
3
3
  module Amountable
4
- VERSION = '0.4.0'
4
+ VERSION = '0.6.0'
5
5
  end
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
@@ -12,6 +12,9 @@ require 'amountable/amount'
12
12
  require 'database_cleaner'
13
13
  require 'db-query-matchers'
14
14
 
15
+ Money.locale_backend = :i18n
16
+ Money.default_currency = "USD"
17
+
15
18
  RSpec.configure do |config|
16
19
 
17
20
  config.before(:suite) do
@@ -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(File.dirname(__FILE__), '../debug.log'))
14
+ ActiveRecord::Base.logger = Logger.new(File.join(__dir__, '../debug.log'))
13
15
  ActiveRecord::Base.logger.level = ENV['CI'] ? ::Logger::ERROR : ::Logger::DEBUG
14
- config = ActiveRecord::Base.configurations[db_name]
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.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: 2021-10-01 00:00:00.000000000 Z
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: '5.2'
18
+ version: '7.0'
20
19
  - - "<"
21
20
  - !ruby/object:Gem::Version
22
- version: '7'
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: '5.2'
28
+ version: '7.0'
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
- version: '7'
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.19.1
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.19.1
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: '2.6'
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: 3.2.22
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:
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: "../"
4
-
5
- gem "activerecord", "~> 5.2.0"
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: "../"
4
-
5
- gem "activerecord", "~> 6.0.0"
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: "../"
4
-
5
- gem "activerecord", "~> 6.1.0"