persistent_enum 1.2.4 → 1.2.5

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: 3cde6573673d70f73eb38d09bd9e4f0fc445e7953f9cf63cb3f631afc2c2b3da
4
- data.tar.gz: 2713d64c90a9e857120099c07a7cad9d51dc477f9f1c859086d1cd3d1ac2a0cb
3
+ metadata.gz: d11d2cd28eb40b76c5f0a286ba1f382342beaa62a216905357860c02e4078579
4
+ data.tar.gz: 031273743a7a2d2fa85c41c6bc0bd232e6741ac3ed96dc6cc70d2548fb5727fa
5
5
  SHA512:
6
- metadata.gz: 6c45dd0b3fb7f72e9709f8972f0a7d03b247f542f169c6534680034dee043d1287f2c29a036da1a386bf9f5cce3418f2ff30a17f6da4d4454dc290602c5a5bd7
7
- data.tar.gz: 0037fd38a29ae4da1368b0cb13d6da4ae826163dffc4b9c9c02870ee7bf66f897a533f586e73a34037e94603eba1bc015d87d2d5f95cafd062e16b26804c9c5a
6
+ metadata.gz: b1b9f31ed175df65e7cd60783c4e8892e1c7d776972dbae259581912b266a4648f5926ef0e67500d8cceaaeba603cce5b770151b91cd0a0cf849710f57e3415a
7
+ data.tar.gz: 2b1d79ba03dc20042189b6d76e785f7167b2345236b75a1ab59d66ec3c828cdba433d42d3bffbc4e6c0b3c5cb68f350510c26e63d727599df5a4f04e089b1b0f
data/.circleci/config.yml CHANGED
@@ -2,7 +2,7 @@ version: 2.1
2
2
 
3
3
  executors:
4
4
  ruby-sqlite: &ruby
5
- parameters:
5
+ parameters: &ruby_params
6
6
  ruby-version:
7
7
  type: string
8
8
  default: "2.6"
@@ -22,26 +22,36 @@ executors:
22
22
  BUNDLE_GEMFILE: << parameters.gemfile >>
23
23
  ruby-pg:
24
24
  <<: *ruby
25
+ parameters:
26
+ <<: *ruby_params
27
+ pg-version:
28
+ type: string
29
+ default: "11"
25
30
  environment:
26
31
  TEST_DATABASE_ENVIRONMENT: postgresql
27
32
  PGHOST: 127.0.0.1
28
33
  PGUSER: eikaiwa
29
34
  docker:
30
35
  - *ruby_docker_ruby
31
- - image: circleci/postgres:11-alpine
36
+ - image: circleci/postgres:<< parameters.pg-version >>-alpine
32
37
  environment:
33
38
  POSTGRES_USER: eikaiwa
34
39
  POSTGRES_DB: persistent_enum_test
35
40
  POSTGRES_PASSWORD: ""
36
41
  ruby-mysql:
37
42
  <<: *ruby
43
+ parameters:
44
+ <<: *ruby_params
45
+ mysql-version:
46
+ type: string
47
+ default: "5.6"
38
48
  environment:
39
49
  TEST_DATABASE_ENVIRONMENT: mysql2
40
50
  MYSQL_HOST: 127.0.0.1
41
51
  MYSQL_USER: root
42
52
  docker:
43
53
  - *ruby_docker_ruby
44
- - image: tkuchiki/delayed-mysql
54
+ - image: circleci/mysql:<< parameters.mysql-version >>
45
55
  environment:
46
56
  MYSQL_ALLOW_EMPTY_PASSWORD: yes
47
57
  MYSQL_ROOT_PASSWORD: ''
@@ -50,12 +60,19 @@ executors:
50
60
  jobs:
51
61
  test:
52
62
  parameters:
53
- ex:
54
- type: executor
63
+ executor-name:
64
+ type: string
65
+ ruby-version:
66
+ type: string
67
+ gemfile:
68
+ type: string
55
69
  database-steps:
56
70
  type: steps
57
71
  default: []
58
- executor: << parameters.ex >>
72
+ executor:
73
+ name: << parameters.executor-name >>
74
+ ruby-version: << parameters.ruby-version >>
75
+ gemfile: << parameters.gemfile >>
59
76
  parallelism: 1
60
77
  steps:
61
78
  - checkout
@@ -71,15 +88,15 @@ jobs:
71
88
 
72
89
  - restore_cache:
73
90
  keys:
74
- - iknow_viewmodels-{{ checksum "/tmp/gem-lock" }}
75
- - iknow_viewmodels-
91
+ - persistent_enum-<< parameters.ruby-version >>-{{ checksum "/tmp/gem-lock" }}
92
+ - persistent_enum-
76
93
 
77
94
  - run:
78
95
  name: Bundle Install
79
96
  command: bundle check || bundle install
80
97
 
81
98
  - save_cache:
82
- key: iknow_viewmodels-{{ checksum "/tmp/gem-lock" }}
99
+ key: persistent_enum-<< parameters.ruby-version >>-{{ checksum "/tmp/gem-lock" }}
83
100
  paths:
84
101
  - vendor/bundle
85
102
 
@@ -114,45 +131,39 @@ workflows:
114
131
  jobs:
115
132
  - test:
116
133
  name: 'ruby 2.6 rails 5.2 sqlite'
117
- ex:
118
- name: ruby-sqlite
119
- ruby-version: "2.6"
120
- gemfile: gemfiles/rails_5_2.gemfile
134
+ executor-name: ruby-sqlite
135
+ ruby-version: "2.6"
136
+ gemfile: gemfiles/rails_5_2.gemfile
121
137
  - test:
122
138
  name: 'ruby 2.6 rails 6.0 sqlite'
123
- ex:
124
- name: ruby-sqlite
125
- ruby-version: "2.6"
126
- gemfile: gemfiles/rails_6_0_beta.gemfile
139
+ executor-name: ruby-sqlite
140
+ ruby-version: "2.6"
141
+ gemfile: gemfiles/rails_6_0_beta.gemfile
127
142
  - test:
128
143
  name: 'ruby 2.6 rails 5.2 pg'
129
- ex:
130
- name: ruby-pg
131
- ruby-version: "2.6"
132
- gemfile: gemfiles/rails_5_2.gemfile
144
+ executor-name: ruby-pg
145
+ ruby-version: "2.6"
146
+ gemfile: gemfiles/rails_5_2.gemfile
133
147
  database-steps: &pg_wait
134
148
  - run: dockerize -wait tcp://localhost:5432 -timeout 1m
135
149
  - test:
136
150
  name: 'ruby 2.6 rails 6.0 pg'
137
- ex:
138
- name: ruby-pg
139
- ruby-version: "2.6"
140
- gemfile: gemfiles/rails_6_0_beta.gemfile
151
+ executor-name: ruby-pg
152
+ ruby-version: "2.6"
153
+ gemfile: gemfiles/rails_6_0_beta.gemfile
141
154
  database-steps: *pg_wait
142
155
  - test:
143
156
  name: 'ruby 2.6 rails 5.2 mysql'
144
- ex:
145
- name: ruby-mysql
146
- ruby-version: "2.6"
147
- gemfile: gemfiles/rails_5_2.gemfile
157
+ executor-name: ruby-mysql
158
+ ruby-version: "2.6"
159
+ gemfile: gemfiles/rails_5_2.gemfile
148
160
  database-steps: &mysql_wait
149
161
  - run: dockerize -wait tcp://localhost:3306 -timeout 1m
150
162
  - test:
151
163
  name: 'ruby 2.6 rails 6.0 mysql'
152
- ex:
153
- name: ruby-mysql
154
- ruby-version: "2.6"
155
- gemfile: gemfiles/rails_6_0_beta.gemfile
164
+ executor-name: ruby-mysql
165
+ ruby-version: "2.6"
166
+ gemfile: gemfiles/rails_6_0_beta.gemfile
156
167
  database-steps: *mysql_wait
157
168
  - publish:
158
169
  filters:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PersistentEnum
4
- VERSION = '1.2.4'
4
+ VERSION = '1.2.5'
5
5
  end
@@ -265,10 +265,12 @@ module PersistentEnum
265
265
  when 'PostgreSQL'
266
266
  model.import!(rows, on_duplicate_key_update: { conflict_target: [name_attr], columns: upsert_columns })
267
267
  when 'Mysql2'
268
+ # Even for identical rows in the same order, a INSERT .. ON DUPLICATE
269
+ # KEY UPDATE or INSERT IGNORE can deadlock with itself. Obtain write
270
+ # locks in advance.
271
+ model.lock('FOR UPDATE').order(:id).pluck(:id)
272
+
268
273
  if upsert_columns.present?
269
- # Even for identical rows in the same order, a INSERT .. ON DUPLICATE
270
- # KEY UPDATE can deadlock with itself. Obtain write locks in advance.
271
- model.lock('FOR UPDATE').order(:id).pluck(:id)
272
274
  model.import!(rows, on_duplicate_key_update: upsert_columns)
273
275
  else
274
276
  model.import!(rows, on_duplicate_key_ignore: true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistent_enum
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - iKnow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-08 00:00:00.000000000 Z
11
+ date: 2021-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  - !ruby/object:Gem::Version
227
227
  version: '0'
228
228
  requirements: []
229
- rubygems_version: 3.0.3
229
+ rubygems_version: 3.0.3.1
230
230
  signing_key:
231
231
  specification_version: 4
232
232
  summary: Database-backed enums for Rails