array_enum 1.4.0 → 1.5.0

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: 5d2df08c37b57f1ab526c97e96687aaa26d6f4cdbbd7cf189a1671b4fc2ad309
4
- data.tar.gz: a4a87c06b773f5b8210d67e869372e99e838853962789a5d030bd8ec2fbc9a9e
3
+ metadata.gz: 532d9c63da0d5670890af1f3236821651e5df2939a360086138af660363f7917
4
+ data.tar.gz: 296725907a06887551117c12a554bc1b3b1c0d6852bd7ab714be2cbcda6cbbae
5
5
  SHA512:
6
- metadata.gz: 153d73f33212247cba61d862b31948bd66c50c352f2984fbfbe00c71ce77a8086a8925e3256bfa03013a32050442a6be7014da888493a3c422256ac85d24108a
7
- data.tar.gz: 273ababe94efae433b8577e872cc44f0a69e85b482b9deda86dc83b39f0440d973e2755ca2bc85b7e36ab90d2313b77e0ed0dc94e932a4b681a26eeaf592a908
6
+ metadata.gz: adb8025e3538639f748d2752d5cf05facb3494ced82c550a40d6a400f5569fffe3e977a7159d0e3a0c685b76c887c7b14158d854863761ec3f444310552aa45b
7
+ data.tar.gz: d9d7f665c33d61254bdbc758f0b4ccd998f9b81cd974e1d17b4345184ce41f1a29d137a070c2f9bdc5bf9ea118222d68cd0c4e7006ef3d3d55820326592b5a1f
@@ -10,7 +10,7 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
  strategy:
12
12
  matrix:
13
- ruby-version: [2.7, '3.0', 3.1]
13
+ ruby-version: [3.0, 3.1, 3.3]
14
14
 
15
15
  services:
16
16
  postgres:
@@ -40,10 +40,10 @@ jobs:
40
40
  psql -c 'create database "array_enum_test";'
41
41
 
42
42
  - name: Checkout code
43
- uses: actions/checkout@v2
43
+ uses: actions/checkout@v4.1.1
44
44
 
45
45
  - name : Ruby Setup
46
- uses: ruby/setup-ruby@v1
46
+ uses: ruby/setup-ruby@v1.173.0
47
47
  with:
48
48
  ruby-version: ${{ matrix.ruby-version }}
49
49
  bundler-cache: true
@@ -1,13 +1,15 @@
1
1
  name: CI
2
2
 
3
- on: [pull_request]
3
+ on:
4
+ - pull_request
5
+ - push
4
6
 
5
7
  jobs:
6
8
  test:
7
9
  runs-on: ubuntu-latest
8
10
  strategy:
9
11
  matrix:
10
- ruby-version: [2.7, '3.0', 3.1]
12
+ ruby-version: [3.0, 3.1, 3.3]
11
13
 
12
14
  services:
13
15
  postgres:
@@ -37,10 +39,10 @@ jobs:
37
39
  psql -c 'create database "array_enum_test";'
38
40
 
39
41
  - name: Checkout code
40
- uses: actions/checkout@v2
42
+ uses: actions/checkout@v4.1.1
41
43
 
42
44
  - name : Ruby Setup
43
- uses: ruby/setup-ruby@v1
45
+ uses: ruby/setup-ruby@v1.173.0
44
46
  with:
45
47
  ruby-version: ${{ matrix.ruby-version }}
46
48
  bundler-cache: true
data/.gitignore CHANGED
@@ -6,3 +6,5 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ .tool-versions
10
+ .byebug_history
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in array_enum.gemspec
4
4
  gemspec
data/Gemfile.lock CHANGED
@@ -1,32 +1,42 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- array_enum (1.4.0)
4
+ array_enum (1.5.0)
5
5
  activemodel
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (6.1.3)
11
- activesupport (= 6.1.3)
12
- activerecord (6.1.3)
13
- activemodel (= 6.1.3)
14
- activesupport (= 6.1.3)
15
- activesupport (6.1.3)
10
+ activemodel (7.1.3.2)
11
+ activesupport (= 7.1.3.2)
12
+ activerecord (7.1.3.2)
13
+ activemodel (= 7.1.3.2)
14
+ activesupport (= 7.1.3.2)
15
+ timeout (>= 0.4.0)
16
+ activesupport (7.1.3.2)
17
+ base64
18
+ bigdecimal
16
19
  concurrent-ruby (~> 1.0, >= 1.0.2)
20
+ connection_pool (>= 2.2.5)
21
+ drb
17
22
  i18n (>= 1.6, < 2)
18
23
  minitest (>= 5.1)
24
+ mutex_m
19
25
  tzinfo (~> 2.0)
20
- zeitwerk (~> 2.3)
21
- concurrent-ruby (1.1.8)
22
- i18n (1.8.9)
26
+ base64 (0.2.0)
27
+ bigdecimal (3.1.7)
28
+ concurrent-ruby (1.2.3)
29
+ connection_pool (2.4.1)
30
+ drb (2.2.1)
31
+ i18n (1.14.4)
23
32
  concurrent-ruby (~> 1.0)
24
- minitest (5.11.3)
25
- pg (1.1.4)
26
- rake (12.3.3)
27
- tzinfo (2.0.4)
33
+ minitest (5.22.3)
34
+ mutex_m (0.2.0)
35
+ pg (1.5.6)
36
+ rake (13.2.0)
37
+ timeout (0.4.1)
38
+ tzinfo (2.0.6)
28
39
  concurrent-ruby (~> 1.0)
29
- zeitwerk (2.4.2)
30
40
 
31
41
  PLATFORMS
32
42
  ruby
@@ -40,4 +50,4 @@ DEPENDENCIES
40
50
  rake (>= 10.0)
41
51
 
42
52
  BUNDLED WITH
43
- 2.2.3
53
+ 2.5.6
data/array_enum.gemspec CHANGED
@@ -1,45 +1,44 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "array_enum/version"
3
+ require 'array_enum/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "array_enum"
6
+ spec.name = 'array_enum'
8
7
  spec.version = ArrayEnum::VERSION
9
- spec.authors = ["Wojciech Wnętrzak"]
10
- spec.email = ["w.wnetrzak@gmail.com", "eng@freeletics.com"]
8
+ spec.authors = ['Wojciech Wnętrzak']
9
+ spec.email = ['w.wnetrzak@gmail.com', 'eng@freeletics.com']
11
10
 
12
- spec.summary = %q{String to integer mapping for PostgreSQL array columns.}
13
- spec.description = %q{Extension for ActiveRecord that adds support for PostgreSQL array columns, mapping string values to integers.}
14
- spec.homepage = "https://github.com/freeletics/array_enum"
15
- spec.license = "MIT"
11
+ spec.summary = 'String to integer mapping for PostgreSQL array columns.'
12
+ spec.description = 'Extension for ActiveRecord that adds support for PostgreSQL array columns, mapping string values to integers.'
13
+ spec.homepage = 'https://github.com/freeletics/array_enum'
14
+ spec.license = 'MIT'
16
15
 
17
16
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
17
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
18
  if spec.respond_to?(:metadata)
20
- spec.metadata["homepage_uri"] = spec.homepage
21
- spec.metadata["source_code_uri"] = "https://github.com/freeletics/array_enum"
19
+ spec.metadata['homepage_uri'] = spec.homepage
20
+ spec.metadata['source_code_uri'] = 'https://github.com/freeletics/array_enum'
22
21
  else
23
- raise "RubyGems 2.0 or newer is required to protect against " \
24
- "public gem pushes."
22
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
23
+ 'public gem pushes.'
25
24
  end
26
25
 
27
26
  # Specify which files should be added to the gem when it is released.
28
27
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
29
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
30
29
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
30
  end
32
- spec.bindir = "exe"
31
+ spec.bindir = 'exe'
33
32
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
- spec.require_paths = ["lib"]
33
+ spec.require_paths = ['lib']
35
34
 
36
- spec.required_ruby_version = ">= 2.3"
35
+ spec.required_ruby_version = '>= 3.0'
37
36
 
38
- spec.add_dependency "activemodel"
37
+ spec.add_dependency 'activemodel'
39
38
 
40
- spec.add_development_dependency "activerecord"
41
- spec.add_development_dependency "pg"
42
- spec.add_development_dependency "bundler", ">= 1.17"
43
- spec.add_development_dependency "rake", ">= 10.0"
44
- spec.add_development_dependency "minitest", ">= 5.0"
39
+ spec.add_development_dependency 'activerecord'
40
+ spec.add_development_dependency 'bundler', '>= 1.17'
41
+ spec.add_development_dependency 'minitest', '>= 5.0'
42
+ spec.add_development_dependency 'pg'
43
+ spec.add_development_dependency 'rake', '>= 10.0'
45
44
  end
@@ -1,3 +1,3 @@
1
1
  module ArrayEnum
2
- VERSION = "1.4.0"
2
+ VERSION = '1.5.0'
3
3
  end
data/lib/array_enum.rb CHANGED
@@ -1,11 +1,11 @@
1
- require "array_enum/version"
2
- require "array_enum/subset_validator"
3
- require "array_enum/railtie" if defined?(Rails::Railtie)
4
- require "active_support/hash_with_indifferent_access"
5
- require "active_support/core_ext/string/inflections"
1
+ require 'array_enum/version'
2
+ require 'array_enum/subset_validator'
3
+ require 'array_enum/railtie' if defined?(Rails::Railtie)
4
+ require 'active_support/hash_with_indifferent_access'
5
+ require 'active_support/core_ext/string/inflections'
6
6
 
7
7
  module ArrayEnum
8
- MISSING_VALUE_MESSAGE = "%{value} is not a valid value for %{attr}".freeze
8
+ MISSING_VALUE_MESSAGE = '%<value>s is not a valid value for %<attr>s'.freeze
9
9
  private_constant :MISSING_VALUE_MESSAGE
10
10
 
11
11
  def array_enum(definitions)
@@ -24,9 +24,9 @@ module ArrayEnum
24
24
  }.each do |method_name, comparison_operator|
25
25
  define_singleton_method(method_name.to_sym) do |values|
26
26
  db_values = Array(values).map do |value|
27
- mapping_hash[value] || raise(ArgumentError, MISSING_VALUE_MESSAGE % {value: value, attr: attr_name})
27
+ mapping_hash[value] || raise(ArgumentError, format(MISSING_VALUE_MESSAGE, value: value, attr: attr_name))
28
28
  end
29
- where("#{attr_name} #{comparison_operator} ARRAY[:db_values]", db_values: db_values)
29
+ where("#{table_name}.#{attr_name} #{comparison_operator} ARRAY[:db_values]", db_values: db_values)
30
30
  end
31
31
  end
32
32
 
@@ -36,7 +36,7 @@ module ArrayEnum
36
36
 
37
37
  define_method("#{attr_name}=".to_sym) do |values|
38
38
  self[attr_symbol] = Array(values).map do |value|
39
- mapping_hash[value] || raise(ArgumentError, MISSING_VALUE_MESSAGE % {value: value, attr: attr_name})
39
+ mapping_hash[value] || raise(ArgumentError, format(MISSING_VALUE_MESSAGE, value: value, attr: attr_name))
40
40
  end.uniq
41
41
  end
42
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: array_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wojciech Wnętrzak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-05 00:00:00.000000000 Z
11
+ date: 2024-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -39,61 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pg
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.17'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1.17'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '1.17'
61
+ version: '5.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '1.17'
68
+ version: '5.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ name: pg
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '5.0'
89
+ version: '10.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '5.0'
96
+ version: '10.0'
97
97
  description: Extension for ActiveRecord that adds support for PostgreSQL array columns,
98
98
  mapping string values to integers.
99
99
  email:
@@ -132,14 +132,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
132
  requirements:
133
133
  - - ">="
134
134
  - !ruby/object:Gem::Version
135
- version: '2.3'
135
+ version: '3.0'
136
136
  required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - ">="
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  requirements: []
142
- rubygems_version: 3.2.3
142
+ rubygems_version: 3.5.3
143
143
  signing_key:
144
144
  specification_version: 4
145
145
  summary: String to integer mapping for PostgreSQL array columns.