order_as_specified 1.2 → 1.7
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 +5 -5
- data/.dependabot/config.yml +46 -0
- data/.github/workflows/auto-approve-dependabot.yml +26 -0
- data/.github/workflows/remove-needs-qa.yml +35 -0
- data/.github/workflows/tests.yml +61 -0
- data/.rubocop.yml +2 -260
- data/CHANGELOG.md +34 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +8 -2
- data/README.md +47 -9
- data/RELEASING.md +14 -0
- data/lib/order_as_specified.rb +32 -15
- data/lib/order_as_specified/error.rb +2 -0
- data/lib/order_as_specified/version.rb +3 -1
- data/order_as_specified.gemspec +14 -11
- data/spec/config/database.yml +10 -0
- data/spec/config/test_setup_migration.rb +8 -2
- data/spec/mysql_spec.rb +16 -0
- data/spec/order_as_specified_spec.rb +2 -0
- data/spec/postgresql_spec.rb +26 -14
- data/spec/shared/order_as_specified_examples.rb +107 -7
- data/spec/spec_helper.rb +1 -2
- data/spec/sqlite3_spec.rb +4 -2
- data/spec/support/application_record.rb +5 -0
- data/spec/support/association_test_class.rb +3 -1
- data/spec/support/test_class.rb +3 -1
- metadata +50 -71
- data/.overcommit.yml +0 -8
- data/.travis.yml +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d928c44adb61e277076bd76af0ac1568b132a0f9ab49050d1b047fee59305714
|
4
|
+
data.tar.gz: bcbf4c9b1f4061ae9798535dff306c27c7b845bd827a9cd9f2e0ee7ee195c427
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58d477da354092f0f3c7e9a034c14a76b04ac80599d46850ce064dd84ce0d172cbef0efd9ac6a3a7c467ba7472250299698aad1aa6311f7f679a4cc44d231483
|
7
|
+
data.tar.gz: bcf2ab1b90641f027ea0b9200bc442d77902448764a4f473552d2f6d4ec46c30023ce7bf893ddd678787212858ee2a85a738c0d10008d85fd7911fc3a37f2b17
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# This is a dependabot configuration file. When this file is seen on github, a
|
2
|
+
# dependabot configuration is created for the project. We can use this to
|
3
|
+
# control various aspects of the automated dependency checking, such as the
|
4
|
+
# frequency and the target_branch.
|
5
|
+
#
|
6
|
+
# Reference: https://dependabot.com/docs/config-file/
|
7
|
+
version: 1
|
8
|
+
update_configs:
|
9
|
+
# This configures dependency updates for one package manager. In some
|
10
|
+
# projects, such as warehouse, where we have Ruby and Python, there can be
|
11
|
+
# separate package_manager entries.
|
12
|
+
- package_manager: "ruby:bundler"
|
13
|
+
directory: "/"
|
14
|
+
update_schedule: "weekly"
|
15
|
+
|
16
|
+
default_labels:
|
17
|
+
- "dependencies"
|
18
|
+
- "Needs QA"
|
19
|
+
|
20
|
+
# Dependabot will use a repository's default branch. This will override
|
21
|
+
# that.
|
22
|
+
# target_branch: "master"
|
23
|
+
|
24
|
+
allowed_updates:
|
25
|
+
- match:
|
26
|
+
dependency_type: "direct"
|
27
|
+
|
28
|
+
automerged_updates:
|
29
|
+
# This allows all dependencies that are used for development, e.g., rspec,
|
30
|
+
# rspec-mock, vcr, etc, to be automatically updated. This is generally
|
31
|
+
# okay because the dependencies are not used in production.
|
32
|
+
- match:
|
33
|
+
dependency_type: "development"
|
34
|
+
update_type: "all"
|
35
|
+
|
36
|
+
# # This is an example entry to enable automerging of a specific dependency
|
37
|
+
# # when the update is only for minor or patch semantic versions.
|
38
|
+
# #
|
39
|
+
# # The dependency_name can also be a wildcard.
|
40
|
+
# #
|
41
|
+
# # This is left commented, but whitelisting a dependency for automatic
|
42
|
+
# # merging is as simple as creating a new entry that looks like the below.
|
43
|
+
# - match:
|
44
|
+
# dependency_type: "all"
|
45
|
+
# dependency_name: "aws-sdk-s3"
|
46
|
+
# update_type: "semver:minor"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This workflow auto-approves pull-requests when the github actor is a
|
2
|
+
# dependabot user and it is opening a new pull request.
|
3
|
+
#
|
4
|
+
# The problem that this workflow solves is that we have branch protection on
|
5
|
+
# our repositories that prevent PRs from merging unless there is an
|
6
|
+
# approval present. The problem is that this will block PRs that dependabot
|
7
|
+
# may want to merge automatically. Auto-approving dependabot PRs will allow
|
8
|
+
# the automatic merge to complete. We control what gets automerged through
|
9
|
+
# the dependabot configuration.
|
10
|
+
#
|
11
|
+
# This is a known issue: https://github.com/dependabot/feedback/issues/852
|
12
|
+
name: Auto-approve dependabot pull requests
|
13
|
+
on:
|
14
|
+
pull_request:
|
15
|
+
types: [opened]
|
16
|
+
|
17
|
+
jobs:
|
18
|
+
dependabot-triage:
|
19
|
+
runs-on: ubuntu-latest
|
20
|
+
if: (github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
21
|
+
|
22
|
+
steps:
|
23
|
+
- name: Auto-approve for dependabot
|
24
|
+
uses: hmarr/auto-approve-action@v2.0.0
|
25
|
+
with:
|
26
|
+
github-token: "${{ secrets.GITHUB_TOKEN }}"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# This workflow removes a "Needs QA" label from a PR when the actor is the
|
2
|
+
# dependabot user merging a PR.
|
3
|
+
#
|
4
|
+
# We need this mechanism to allow for automerging whitelisted dependencies while
|
5
|
+
# also allowing for blocking a merge to master for deployment (in the way that
|
6
|
+
# our other PRs work). When the automerge script runs in henchman, it looks
|
7
|
+
# for `Needs QA` on github pull requests, and if the label is present,
|
8
|
+
# blocks the commit from merging.
|
9
|
+
name: Remove 'Needs QA' label for auto-merged PRs.
|
10
|
+
on:
|
11
|
+
pull_request:
|
12
|
+
types: [closed]
|
13
|
+
|
14
|
+
jobs:
|
15
|
+
remove-label:
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
if: >
|
18
|
+
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
19
|
+
&& github.event.pull_request.merged
|
20
|
+
|
21
|
+
steps:
|
22
|
+
# Our triage workflow adds 'Needs QA' to the PR in order to block it from
|
23
|
+
# merging to production. This removes that label when dependabot is doing
|
24
|
+
# the merging.
|
25
|
+
- name: Remove QA Label
|
26
|
+
uses: actions/github-script@0.4.0
|
27
|
+
with:
|
28
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
29
|
+
script: |
|
30
|
+
github.issues.removeLabel({
|
31
|
+
issue_number: context.issue.number,
|
32
|
+
owner: context.repo.owner,
|
33
|
+
repo: context.repo.repo,
|
34
|
+
name: 'Needs QA'
|
35
|
+
})
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# based on https://github.com/ruby/setup-ruby/blob/master/README.md
|
2
|
+
name: Tests
|
3
|
+
on: [push, pull_request]
|
4
|
+
jobs:
|
5
|
+
ci:
|
6
|
+
name: CI
|
7
|
+
strategy:
|
8
|
+
fail-fast: false
|
9
|
+
matrix:
|
10
|
+
os: [ ubuntu-latest ]
|
11
|
+
ruby: [ 2.5, 2.6, 2.7 ]
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
services:
|
14
|
+
postgres:
|
15
|
+
image: postgres:latest
|
16
|
+
env:
|
17
|
+
POSTGRES_USER: postgres
|
18
|
+
POSTGRES_PASSWORD: postgres
|
19
|
+
POSTGRES_DB: order_as_specified_test
|
20
|
+
options: >-
|
21
|
+
--health-cmd pg_isready
|
22
|
+
--health-interval 10s
|
23
|
+
--health-timeout 5s
|
24
|
+
--health-retries 5
|
25
|
+
ports:
|
26
|
+
- 5432:5432
|
27
|
+
mysql:
|
28
|
+
image: mysql:latest
|
29
|
+
env:
|
30
|
+
MYSQL_USER: mysql
|
31
|
+
MYSQL_PASSWORD: mysql
|
32
|
+
MYSQL_ROOT_PASSWORD: mysql
|
33
|
+
MYSQL_DATABASE: order_as_specified_test
|
34
|
+
ports:
|
35
|
+
- 3306:3306
|
36
|
+
options: >-
|
37
|
+
--health-cmd "mysqladmin ping"
|
38
|
+
--health-interval 10s
|
39
|
+
--health-timeout 5s
|
40
|
+
--health-retries 5
|
41
|
+
env:
|
42
|
+
CI: true
|
43
|
+
steps:
|
44
|
+
- uses: actions/checkout@v2
|
45
|
+
- uses: ruby/setup-ruby@v1
|
46
|
+
with:
|
47
|
+
ruby-version: ${{ matrix.ruby }}
|
48
|
+
- uses: actions/cache@v1
|
49
|
+
with:
|
50
|
+
path: vendor/bundle
|
51
|
+
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }}
|
52
|
+
restore-keys: |
|
53
|
+
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby }}-
|
54
|
+
- run: sudo apt-get install libsqlite3-dev
|
55
|
+
- name: bundle install
|
56
|
+
run: |
|
57
|
+
ruby -v
|
58
|
+
bundle config path vendor/bundle
|
59
|
+
bundle install --jobs 4 --retry 3
|
60
|
+
- run: bundle exec rubocop
|
61
|
+
- run: bundle exec rspec
|
data/.rubocop.yml
CHANGED
@@ -1,260 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Enabled: false
|
4
|
-
|
5
|
-
AccessorMethodName:
|
6
|
-
Enabled: false
|
7
|
-
|
8
|
-
Alias:
|
9
|
-
Enabled: false
|
10
|
-
|
11
|
-
AllCops:
|
12
|
-
RunRailsCops: true
|
13
|
-
|
14
|
-
AmbiguousOperator:
|
15
|
-
Enabled: false
|
16
|
-
|
17
|
-
AmbiguousRegexpLiteral:
|
18
|
-
Enabled: false
|
19
|
-
|
20
|
-
ArrayJoin:
|
21
|
-
Enabled: false
|
22
|
-
|
23
|
-
AsciiComments:
|
24
|
-
Enabled: false
|
25
|
-
|
26
|
-
AsciiIdentifiers:
|
27
|
-
Enabled: false
|
28
|
-
|
29
|
-
AssignmentInCondition:
|
30
|
-
Enabled: true
|
31
|
-
|
32
|
-
Attr:
|
33
|
-
Enabled: false
|
34
|
-
|
35
|
-
BlockNesting:
|
36
|
-
Enabled: false
|
37
|
-
|
38
|
-
BracesAroundHashParameters:
|
39
|
-
Enabled: false
|
40
|
-
|
41
|
-
CaseEquality:
|
42
|
-
Enabled: false
|
43
|
-
|
44
|
-
CharacterLiteral:
|
45
|
-
Enabled: false
|
46
|
-
|
47
|
-
ClassLength:
|
48
|
-
Enabled: false
|
49
|
-
|
50
|
-
ClassVars:
|
51
|
-
Enabled: false
|
52
|
-
|
53
|
-
CollectionMethods:
|
54
|
-
PreferredMethods:
|
55
|
-
find: detect
|
56
|
-
reduce: inject
|
57
|
-
collect: map
|
58
|
-
find_all: select
|
59
|
-
|
60
|
-
ColonMethodCall:
|
61
|
-
Enabled: false
|
62
|
-
|
63
|
-
CommentAnnotation:
|
64
|
-
Enabled: false
|
65
|
-
|
66
|
-
ConditionPosition:
|
67
|
-
Enabled: false
|
68
|
-
|
69
|
-
CyclomaticComplexity:
|
70
|
-
Enabled: false
|
71
|
-
|
72
|
-
Delegate:
|
73
|
-
Enabled: false
|
74
|
-
|
75
|
-
DeprecatedClassMethods:
|
76
|
-
Enabled: false
|
77
|
-
|
78
|
-
DeprecatedHashMethods:
|
79
|
-
Enabled: false
|
80
|
-
|
81
|
-
Documentation:
|
82
|
-
Enabled: false
|
83
|
-
|
84
|
-
DotPosition:
|
85
|
-
EnforcedStyle: trailing
|
86
|
-
|
87
|
-
DoubleNegation:
|
88
|
-
Enabled: false
|
89
|
-
|
90
|
-
ElseLayout:
|
91
|
-
Enabled: false
|
92
|
-
|
93
|
-
EmptyLiteral:
|
94
|
-
Enabled: false
|
95
|
-
|
96
|
-
Encoding:
|
97
|
-
Enabled: false
|
98
|
-
|
99
|
-
EvenOdd:
|
100
|
-
Enabled: false
|
101
|
-
|
102
|
-
FileName:
|
103
|
-
Enabled: false
|
104
|
-
|
105
|
-
FlipFlop:
|
106
|
-
Enabled: false
|
107
|
-
|
108
|
-
FormatString:
|
109
|
-
Enabled: false
|
110
|
-
|
111
|
-
GlobalVars:
|
112
|
-
Enabled: false
|
113
|
-
|
114
|
-
GuardClause:
|
115
|
-
Enabled: false
|
116
|
-
|
117
|
-
HandleExceptions:
|
118
|
-
Enabled: false
|
119
|
-
|
120
|
-
IfUnlessModifier:
|
121
|
-
Enabled: false
|
122
|
-
|
123
|
-
IfWithSemicolon:
|
124
|
-
Enabled: false
|
125
|
-
|
126
|
-
InvalidCharacterLiteral:
|
127
|
-
Enabled: false
|
128
|
-
|
129
|
-
Lambda:
|
130
|
-
Enabled: false
|
131
|
-
|
132
|
-
LambdaCall:
|
133
|
-
Enabled: false
|
134
|
-
|
135
|
-
LineEndConcatenation:
|
136
|
-
Enabled: false
|
137
|
-
|
138
|
-
LineLength:
|
139
|
-
Max: 80
|
140
|
-
|
141
|
-
LiteralInCondition:
|
142
|
-
Enabled: false
|
143
|
-
|
144
|
-
LiteralInInterpolation:
|
145
|
-
Enabled: false
|
146
|
-
|
147
|
-
Loop:
|
148
|
-
Enabled: false
|
149
|
-
|
150
|
-
MethodLength:
|
151
|
-
Enabled: false
|
152
|
-
|
153
|
-
ModuleFunction:
|
154
|
-
Enabled: false
|
155
|
-
|
156
|
-
NegatedIf:
|
157
|
-
Enabled: false
|
158
|
-
|
159
|
-
NegatedWhile:
|
160
|
-
Enabled: false
|
161
|
-
|
162
|
-
Next:
|
163
|
-
Enabled: false
|
164
|
-
|
165
|
-
NilComparison:
|
166
|
-
Enabled: false
|
167
|
-
|
168
|
-
Not:
|
169
|
-
Enabled: false
|
170
|
-
|
171
|
-
NumericLiterals:
|
172
|
-
Enabled: false
|
173
|
-
|
174
|
-
OneLineConditional:
|
175
|
-
Enabled: false
|
176
|
-
|
177
|
-
OpMethod:
|
178
|
-
Enabled: false
|
179
|
-
|
180
|
-
ParameterLists:
|
181
|
-
Enabled: false
|
182
|
-
|
183
|
-
ParenthesesAsGroupedExpression:
|
184
|
-
Enabled: false
|
185
|
-
|
186
|
-
PercentLiteralDelimiters:
|
187
|
-
PreferredDelimiters:
|
188
|
-
'%': '{}'
|
189
|
-
|
190
|
-
PerceivedComplexity:
|
191
|
-
Enabled: false
|
192
|
-
|
193
|
-
PerlBackrefs:
|
194
|
-
Enabled: false
|
195
|
-
|
196
|
-
PredicateName:
|
197
|
-
Enabled: false
|
198
|
-
|
199
|
-
Proc:
|
200
|
-
Enabled: false
|
201
|
-
|
202
|
-
RaiseArgs:
|
203
|
-
Enabled: false
|
204
|
-
|
205
|
-
RedundantReturn:
|
206
|
-
AllowMultipleReturnValues: true
|
207
|
-
|
208
|
-
RegexpLiteral:
|
209
|
-
Enabled: false
|
210
|
-
|
211
|
-
RequireParentheses:
|
212
|
-
Enabled: false
|
213
|
-
|
214
|
-
SelfAssignment:
|
215
|
-
Enabled: false
|
216
|
-
|
217
|
-
SignalException:
|
218
|
-
EnforcedStyle: only_raise
|
219
|
-
|
220
|
-
SingleLineBlockParams:
|
221
|
-
Enabled: false
|
222
|
-
|
223
|
-
SingleLineMethods:
|
224
|
-
Enabled: false
|
225
|
-
|
226
|
-
SpecialGlobalVars:
|
227
|
-
Enabled: false
|
228
|
-
|
229
|
-
StringLiterals:
|
230
|
-
EnforcedStyle: double_quotes
|
231
|
-
|
232
|
-
Style/MultilineBlockChain:
|
233
|
-
Enabled: false
|
234
|
-
|
235
|
-
VariableInterpolation:
|
236
|
-
Enabled: false
|
237
|
-
|
238
|
-
TrailingComma:
|
239
|
-
Enabled: false
|
240
|
-
|
241
|
-
TrivialAccessors:
|
242
|
-
Enabled: false
|
243
|
-
|
244
|
-
UnderscorePrefixedVariableName:
|
245
|
-
Enabled: false
|
246
|
-
|
247
|
-
VariableInterpolation:
|
248
|
-
Enabled: false
|
249
|
-
|
250
|
-
Void:
|
251
|
-
Enabled: false
|
252
|
-
|
253
|
-
WhenThen:
|
254
|
-
Enabled: false
|
255
|
-
|
256
|
-
WhileUntilModifier:
|
257
|
-
Enabled: false
|
258
|
-
|
259
|
-
WordArray:
|
260
|
-
Enabled: false
|
1
|
+
inherit_gem:
|
2
|
+
panolint: rubocop.yml
|