rufo 0.13.0 → 0.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +60 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +16 -0
- data/README.md +3 -3
- data/bin/verify-sample-code +2 -0
- data/lib/rufo/erb_formatter.rb +39 -2
- data/lib/rufo/formatter.rb +50 -29
- data/lib/rufo/version.rb +1 -1
- data/rufo.gemspec +1 -1
- metadata +5 -5
- data/.circleci/config.yml +0 -101
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '050197c783154878217024914afe1fc208e624521b5c3c1c4cd182c29ce70795'
|
4
|
+
data.tar.gz: 8ec88b8b3bc5fa60afbfa7eb7bcf395a2dd906c2b51e2c256d9f11876540279f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cce9d7529456084473d761247402c659950460bb75155d3689d8c89bc89993793d9638fc0bc47d45a40d97eaf2d06d13c175f1db0aeef1356ad12a8124f5bfe
|
7
|
+
data.tar.gz: f4e46d300e1a94fc05c1d2aaa99ea6f24fa244faba984e8841f9874e5326ef324cc38b915008948156ec5825c572024dc0e57a0600f6b235fe06f7b7f3695e60
|
@@ -0,0 +1,60 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
pull_request:
|
8
|
+
schedule:
|
9
|
+
- cron: '0 0 * * 0'
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby_version: ['3.2', '3.1', '3.0', '2.7']
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v3
|
20
|
+
|
21
|
+
- name: Setup Ruby
|
22
|
+
uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby_version }}
|
25
|
+
bundler-cache: true
|
26
|
+
|
27
|
+
- name: Bundle update
|
28
|
+
run: |
|
29
|
+
bundle update
|
30
|
+
|
31
|
+
- name: Run test
|
32
|
+
run: |
|
33
|
+
bundle exec rspec --profile 10 \
|
34
|
+
--format RspecJunitFormatter \
|
35
|
+
--out test_results/rspec.xml \
|
36
|
+
--format progress
|
37
|
+
|
38
|
+
- name: Upload code coverage
|
39
|
+
uses: codecov/codecov-action@v3
|
40
|
+
with:
|
41
|
+
files: ./coverage/coverage.xml
|
42
|
+
|
43
|
+
- name: Run rubocop
|
44
|
+
run: |
|
45
|
+
bundle exec rake rubocop
|
46
|
+
|
47
|
+
- name: Run rufo
|
48
|
+
run: |
|
49
|
+
bundle exec rake rufo:run
|
50
|
+
|
51
|
+
- name: Verify rufo works against sample codebases
|
52
|
+
run: |
|
53
|
+
bin/verify-sample-code
|
54
|
+
|
55
|
+
- name: Save test results
|
56
|
+
uses: actions/upload-artifact@v3
|
57
|
+
if: always()
|
58
|
+
with:
|
59
|
+
name: coverage-ruby-${{ matrix.ruby_version }}
|
60
|
+
path: coverage
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -12,6 +12,22 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
12
12
|
|
13
13
|
### Added
|
14
14
|
|
15
|
+
## [0.14.0] - 2023-01-25
|
16
|
+
|
17
|
+
### Fixed
|
18
|
+
|
19
|
+
- Correctly interpret erb scriptlets with more than one control-flow/block statement
|
20
|
+
|
21
|
+
### Changed
|
22
|
+
|
23
|
+
- Dropped support for Ruby 2.6 as it is end of life.
|
24
|
+
|
25
|
+
### Added
|
26
|
+
|
27
|
+
- Support for partial argument forwarding. (issue [268](https://github.com/ruby-formatter/rufo/issues/268))
|
28
|
+
- Support for endless method. (issue [271](https://github.com/ruby-formatter/rufo/issues/271))
|
29
|
+
- Add Ruby 3.2.0 to test runs on CI.
|
30
|
+
|
15
31
|
## [0.13.0] - 2021-05-07
|
16
32
|
|
17
33
|
### Fixed
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Rufo
|
2
2
|
|
3
|
-
[![
|
3
|
+
[![GitHub Actions](https://github.com/ruby-formatter/rufo/workflows/CI/badge.svg)](https://github.com/ruby-formatter/rufo/actions/workflows/ci.yml)
|
4
4
|
[![Gem](https://img.shields.io/gem/v/rufo.svg)](https://rubygems.org/gems/rufo)
|
5
5
|
|
6
6
|
**Ru**by **fo**rmatter
|
@@ -12,7 +12,7 @@ Unlike the best known Ruby formatter [RuboCop](https://github.com/bbatsov/ruboco
|
|
12
12
|
|
13
13
|
RuboCop does much more than just format code though, so feel free to run them both!
|
14
14
|
|
15
|
-
Rufo supports all Ruby versions >= 2.
|
15
|
+
Rufo supports all Ruby versions >= 2.7.0.
|
16
16
|
|
17
17
|
## Installation
|
18
18
|
|
@@ -35,7 +35,7 @@ Or install it system wide with:
|
|
35
35
|
Once the gem is installed, enable format on save integration in your editor of choice with the following libraries:
|
36
36
|
|
37
37
|
- Atom: [rufo-atom](https://github.com/bmulvihill/rufo-atom) :construction:
|
38
|
-
- Emacs [emacs-rufo](https://github.com/aleandros/emacs-rufo) :construction: or [rufo.el](https://github.com/danielma/rufo.el)
|
38
|
+
- Emacs [emacs-rufo](https://github.com/aleandros/emacs-rufo) :construction: or [rufo.el](https://github.com/danielma/rufo.el) or [run rufo with reformatter](https://gist.github.com/kzkn/5c80c24d39e5e7b7881d55ad04605c5b)
|
39
39
|
- Sublime Text: [sublime-rufo](https://github.com/ruby-formatter/sublime-rufo)
|
40
40
|
- Vim: [rufo-vim](https://github.com/splattael/rufo-vim)
|
41
41
|
- Visual Studio Code: [vscode-rufo](https://marketplace.visualstudio.com/items?itemName=mbessey.vscode-rufo) or [rufo-vscode](https://marketplace.visualstudio.com/items?itemName=siliconsenthil.rufo-vscode)
|
data/bin/verify-sample-code
CHANGED
@@ -9,6 +9,8 @@ repos = {
|
|
9
9
|
"spec/rspec/core/metadata_spec.rb",
|
10
10
|
"spec/rspec/core/formatters/html_formatter_spec.rb",
|
11
11
|
"spec/rspec/core/formatters_spec.rb",
|
12
|
+
"spec/rspec/core/formatters/documentation_formatter_spec.rb",
|
13
|
+
"spec/rspec/core/formatters/progress_formatter_spec.rb"
|
12
14
|
].join(","),
|
13
15
|
},
|
14
16
|
}
|
data/lib/rufo/erb_formatter.rb
CHANGED
@@ -104,11 +104,48 @@ class Rufo::ErbFormatter
|
|
104
104
|
result.strip
|
105
105
|
end
|
106
106
|
|
107
|
+
def format_affix(affix, levels, type)
|
108
|
+
string = ""
|
109
|
+
case type
|
110
|
+
when :prefix
|
111
|
+
count = 0
|
112
|
+
while count < levels
|
113
|
+
count += 1
|
114
|
+
string += (" " * Rufo::Formatter::INDENT_SIZE * (count > 0 ? count - 1 : 0)) + affix
|
115
|
+
string += "\n" if count < levels
|
116
|
+
end
|
117
|
+
when :suffix
|
118
|
+
count = levels
|
119
|
+
while count > 0
|
120
|
+
count -= 1
|
121
|
+
string += "\n"
|
122
|
+
string += (" " * Rufo::Formatter::INDENT_SIZE * (count > 0 ? count - 1 : 0)) + affix
|
123
|
+
end
|
124
|
+
end
|
125
|
+
string
|
126
|
+
end
|
127
|
+
|
107
128
|
def determine_code_wrappers(code_str)
|
108
|
-
|
129
|
+
keywords = Ripper.lex("#{code_str}").filter { |lex_token| lex_token[1] == :on_kw }
|
130
|
+
lexical_tokens = keywords.filter { |lex_token| lex_token[2] != "when" }.map { |lex_token| lex_token[3].to_s }
|
131
|
+
state_tally = lexical_tokens.group_by(&:itself).transform_values(&:count)
|
132
|
+
beg_token = state_tally["BEG"] || state_tally["EXPR_BEG"] || 0
|
133
|
+
end_token = state_tally["END"] || state_tally["EXPR_END"] || 0
|
134
|
+
depth = beg_token - end_token
|
135
|
+
|
136
|
+
if depth > 0
|
137
|
+
affix = format_affix("end", depth.abs, :suffix)
|
138
|
+
return nil, affix if Ripper.sexp("#{code_str}#{affix}")
|
139
|
+
end
|
140
|
+
|
109
141
|
return nil, "}" if Ripper.sexp("#{code_str} }")
|
110
142
|
return "{", nil if Ripper.sexp("{ #{code_str}")
|
111
|
-
|
143
|
+
|
144
|
+
if depth < 0
|
145
|
+
affix = format_affix("begin", depth.abs, :prefix)
|
146
|
+
return affix, nil if Ripper.sexp("#{affix}#{code_str}")
|
147
|
+
end
|
148
|
+
|
112
149
|
return "begin\n", "\nend" if Ripper.sexp("begin\n#{code_str}\nend")
|
113
150
|
return "if a\n", "\nend" if Ripper.sexp("if a\n#{code_str}\nend")
|
114
151
|
return "case a\n", "\nend" if Ripper.sexp("case a\n#{code_str}\nend")
|
data/lib/rufo/formatter.rb
CHANGED
@@ -1456,14 +1456,10 @@ class Rufo::Formatter
|
|
1456
1456
|
# check for ||
|
1457
1457
|
if empty_params && !local_params
|
1458
1458
|
# Don't write || as it's meaningless
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
1463
|
-
next_token
|
1464
|
-
else
|
1465
|
-
next_token
|
1466
|
-
end
|
1459
|
+
next_token
|
1460
|
+
skip_space_or_newline
|
1461
|
+
check :on_op
|
1462
|
+
next_token
|
1467
1463
|
return
|
1468
1464
|
end
|
1469
1465
|
|
@@ -1575,7 +1571,12 @@ class Rufo::Formatter
|
|
1575
1571
|
|
1576
1572
|
line = @line
|
1577
1573
|
|
1578
|
-
|
1574
|
+
endless = body[0].is_a?(Symbol)
|
1575
|
+
if endless
|
1576
|
+
visit body
|
1577
|
+
else
|
1578
|
+
indent_body body
|
1579
|
+
end
|
1579
1580
|
|
1580
1581
|
while rescue_body
|
1581
1582
|
# [:rescue, type, name, body, more_rescue]
|
@@ -1620,7 +1621,7 @@ class Rufo::Formatter
|
|
1620
1621
|
end
|
1621
1622
|
|
1622
1623
|
write_indent if @line != line
|
1623
|
-
consume_keyword "end"
|
1624
|
+
consume_keyword "end" unless endless
|
1624
1625
|
end
|
1625
1626
|
|
1626
1627
|
def visit_rescue_types(node)
|
@@ -1996,6 +1997,19 @@ class Rufo::Formatter
|
|
1996
1997
|
# [:@ident, "foo", [1, 6]],
|
1997
1998
|
# [:params, nil, nil, nil, nil, nil, nil, nil],
|
1998
1999
|
# [:bodystmt, [[:void_stmt]], nil, nil, nil]]
|
2000
|
+
#
|
2001
|
+
# OR For endless methods (in 3.0)
|
2002
|
+
# [:def,
|
2003
|
+
# [:@ident, "foo", [1, 6]],
|
2004
|
+
# nil,
|
2005
|
+
# [:string_literal, [:string_content, [:@tstring_content, "bar", [1, 11]
|
2006
|
+
# OR For endless methods (in 3.1)
|
2007
|
+
# [:def,
|
2008
|
+
# [:@ident, "foo", [1, 6]],
|
2009
|
+
# nil,
|
2010
|
+
# [:bodystmt,
|
2011
|
+
# [:string_literal, [:string_content, [:@tstring_content, "bar", [1, 11]
|
2012
|
+
|
1999
2013
|
_, name, params, body = node
|
2000
2014
|
|
2001
2015
|
consume_keyword "def"
|
@@ -2032,6 +2046,7 @@ class Rufo::Formatter
|
|
2032
2046
|
def visit_def_from_name(name, params, body)
|
2033
2047
|
visit name
|
2034
2048
|
|
2049
|
+
params = [] if params.nil?
|
2035
2050
|
params = params[1] if params[0] == :paren
|
2036
2051
|
|
2037
2052
|
skip_space
|
@@ -2072,6 +2087,7 @@ class Rufo::Formatter
|
|
2072
2087
|
end
|
2073
2088
|
write ")"
|
2074
2089
|
next_token
|
2090
|
+
skip_space
|
2075
2091
|
end
|
2076
2092
|
elsif !empty_params?(params)
|
2077
2093
|
if parens_in_def == :yes
|
@@ -2085,9 +2101,18 @@ class Rufo::Formatter
|
|
2085
2101
|
skip_space
|
2086
2102
|
end
|
2087
2103
|
|
2104
|
+
format_endless_method if current_token_kind == :on_op
|
2105
|
+
|
2088
2106
|
visit body
|
2089
2107
|
end
|
2090
2108
|
|
2109
|
+
def format_endless_method
|
2110
|
+
consume_space
|
2111
|
+
consume_op "="
|
2112
|
+
consume_space
|
2113
|
+
skip_space
|
2114
|
+
end
|
2115
|
+
|
2091
2116
|
def empty_params?(node)
|
2092
2117
|
_, a, b, c, d, e, f, g = node
|
2093
2118
|
!a && !b && !c && !d && !e && !f && !g
|
@@ -2143,6 +2168,7 @@ class Rufo::Formatter
|
|
2143
2168
|
when 0, [:excessed_comma]
|
2144
2169
|
write_params_comma
|
2145
2170
|
when [:args_forward]
|
2171
|
+
write_params_comma if needs_comma
|
2146
2172
|
consume_op "..."
|
2147
2173
|
else
|
2148
2174
|
# [:rest_param, [:@ident, "x", [1, 15]]]
|
@@ -2179,16 +2205,22 @@ class Rufo::Formatter
|
|
2179
2205
|
|
2180
2206
|
if double_star_param
|
2181
2207
|
write_params_comma if needs_comma
|
2182
|
-
|
2183
|
-
|
2208
|
+
case double_star_param
|
2209
|
+
when [:args_forward] # may be [:args_forward] in 3.1.0
|
2210
|
+
consume_op "..."
|
2211
|
+
else
|
2212
|
+
consume_op "**" # here
|
2213
|
+
skip_space_or_newline
|
2184
2214
|
|
2185
|
-
|
2186
|
-
|
2187
|
-
|
2188
|
-
|
2215
|
+
# A nameless double star comes as an... Integer? :-S
|
2216
|
+
visit double_star_param if double_star_param.is_a?(Array)
|
2217
|
+
skip_space_or_newline
|
2218
|
+
needs_comma = true
|
2219
|
+
end
|
2189
2220
|
end
|
2190
2221
|
|
2191
|
-
|
2222
|
+
# In 3.1.0 blockarg may be just a symbol `:&`
|
2223
|
+
if blockarg && blockarg.is_a?(Array)
|
2192
2224
|
# [:blockarg, [:@ident, "block", [1, 16]]]
|
2193
2225
|
write_params_comma if needs_comma
|
2194
2226
|
skip_space_or_newline
|
@@ -3188,13 +3220,6 @@ class Rufo::Formatter
|
|
3188
3220
|
last_space = current_token
|
3189
3221
|
next_token
|
3190
3222
|
when :on_nl, :on_ignored_nl
|
3191
|
-
# I don't know why but sometimes a on_ignored_nl
|
3192
|
-
# can appear with nil as the "text", and that's wrong
|
3193
|
-
if current_token[2].nil?
|
3194
|
-
next_token
|
3195
|
-
next
|
3196
|
-
end
|
3197
|
-
|
3198
3223
|
if last == :newline
|
3199
3224
|
# If we pass through consecutive newlines, don't print them
|
3200
3225
|
# yet, but remember this fact
|
@@ -3888,11 +3913,7 @@ class Rufo::Formatter
|
|
3888
3913
|
when :assoclist_from_args
|
3889
3914
|
node_line(beginning ? node[1][0] : node[1].last, beginning: beginning)
|
3890
3915
|
when :dyna_symbol
|
3891
|
-
|
3892
|
-
node_line(node[1], beginning: beginning)
|
3893
|
-
else
|
3894
|
-
node_line(node[1][0], beginning: beginning)
|
3895
|
-
end
|
3916
|
+
node_line(node[1], beginning: beginning)
|
3896
3917
|
when :@label, :@int, :@ident, :@tstring_content, :@kw
|
3897
3918
|
node[2][0]
|
3898
3919
|
end
|
data/lib/rufo/version.rb
CHANGED
data/rufo.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.bindir = "exe"
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
|
-
spec.required_ruby_version = ">= 2.
|
23
|
+
spec.required_ruby_version = ">= 2.7.0"
|
24
24
|
|
25
25
|
spec.add_development_dependency "bundler", ">= 1.15"
|
26
26
|
spec.add_development_dependency "byebug", "~> 11.0.1"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rufo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ary Borenszweig
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -158,8 +158,8 @@ executables:
|
|
158
158
|
extensions: []
|
159
159
|
extra_rdoc_files: []
|
160
160
|
files:
|
161
|
-
- ".circleci/config.yml"
|
162
161
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
162
|
+
- ".github/workflows/ci.yml"
|
163
163
|
- ".gitignore"
|
164
164
|
- ".rspec"
|
165
165
|
- ".rubocop.yml"
|
@@ -202,14 +202,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
202
202
|
requirements:
|
203
203
|
- - ">="
|
204
204
|
- !ruby/object:Gem::Version
|
205
|
-
version: 2.
|
205
|
+
version: 2.7.0
|
206
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
207
|
requirements:
|
208
208
|
- - ">="
|
209
209
|
- !ruby/object:Gem::Version
|
210
210
|
version: '0'
|
211
211
|
requirements: []
|
212
|
-
rubygems_version: 3.
|
212
|
+
rubygems_version: 3.3.7
|
213
213
|
signing_key:
|
214
214
|
specification_version: 4
|
215
215
|
summary: Ruby code formatter
|
data/.circleci/config.yml
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
"-": &dockerbuild
|
2
|
-
steps:
|
3
|
-
- checkout
|
4
|
-
|
5
|
-
# Which version of ruby?
|
6
|
-
- run:
|
7
|
-
name: Which ruby?
|
8
|
-
command: ruby --version | tee ruby-version-for-ci.txt
|
9
|
-
|
10
|
-
# Which version of bundler?
|
11
|
-
- run:
|
12
|
-
name: Which bundler?
|
13
|
-
command: bundle -v
|
14
|
-
|
15
|
-
# Restore bundle cache
|
16
|
-
- restore_cache:
|
17
|
-
keys:
|
18
|
-
- bundler-packages-v2-{{ checksum "ruby-version-for-ci.txt" }}-{{ checksum "rufo.gemspec" }}-{{ checksum "bin/verify-sample-code" }}
|
19
|
-
|
20
|
-
- run:
|
21
|
-
name: Bundle Install
|
22
|
-
command: bundle check || bundle install
|
23
|
-
|
24
|
-
- run:
|
25
|
-
name: Run rspec
|
26
|
-
command: |
|
27
|
-
bundle exec rspec --profile 10 \
|
28
|
-
--format RspecJunitFormatter \
|
29
|
-
--out test_results/rspec.xml \
|
30
|
-
--format progress
|
31
|
-
- run:
|
32
|
-
name: Upload code coverage
|
33
|
-
command: bash <(curl -s https://codecov.io/bash) -f 'coverage/coverage.xml'
|
34
|
-
- run:
|
35
|
-
name: Run RuboCop
|
36
|
-
command: |
|
37
|
-
bundle exec rake rubocop
|
38
|
-
- run:
|
39
|
-
name: Run Rufo
|
40
|
-
command: |
|
41
|
-
bundle exec rake rufo:run
|
42
|
-
|
43
|
-
- run:
|
44
|
-
name: Verify rufo works against sample codebases
|
45
|
-
command: |
|
46
|
-
bin/verify-sample-code
|
47
|
-
|
48
|
-
# Store bundle cache
|
49
|
-
- save_cache:
|
50
|
-
key: bundler-packages-v2-{{ checksum "ruby-version-for-ci.txt" }}-{{ checksum "rufo.gemspec" }}-{{ checksum "bin/verify-sample-code" }}
|
51
|
-
paths:
|
52
|
-
- vendor/bundle
|
53
|
-
- Gemfile.lock
|
54
|
-
|
55
|
-
# Save test results for timing analysis
|
56
|
-
- store_test_results:
|
57
|
-
path: test_results
|
58
|
-
|
59
|
-
version: 2
|
60
|
-
jobs:
|
61
|
-
build-3-0-1:
|
62
|
-
<<: *dockerbuild
|
63
|
-
docker:
|
64
|
-
- image: circleci/ruby:3.0.1
|
65
|
-
environment:
|
66
|
-
BUNDLE_JOBS: "3"
|
67
|
-
BUNDLE_RETRY: "3"
|
68
|
-
BUNDLE_PATH: /home/circleci/project/vendor/bundle
|
69
|
-
build-2-7-3:
|
70
|
-
<<: *dockerbuild
|
71
|
-
docker:
|
72
|
-
- image: circleci/ruby:2.7.3
|
73
|
-
environment:
|
74
|
-
BUNDLE_JOBS: "3"
|
75
|
-
BUNDLE_RETRY: "3"
|
76
|
-
BUNDLE_PATH: /home/circleci/project/vendor/bundle
|
77
|
-
build-2-6-7:
|
78
|
-
<<: *dockerbuild
|
79
|
-
docker:
|
80
|
-
- image: circleci/ruby:2.6.7
|
81
|
-
environment:
|
82
|
-
BUNDLE_JOBS: "3"
|
83
|
-
BUNDLE_RETRY: "3"
|
84
|
-
BUNDLE_PATH: /home/circleci/project/vendor/bundle
|
85
|
-
build-2-6-1:
|
86
|
-
<<: *dockerbuild
|
87
|
-
docker:
|
88
|
-
- image: circleci/ruby:2.6.1
|
89
|
-
environment:
|
90
|
-
BUNDLE_JOBS: "3"
|
91
|
-
BUNDLE_RETRY: "3"
|
92
|
-
BUNDLE_PATH: vendor/bundle
|
93
|
-
|
94
|
-
workflows:
|
95
|
-
version: 2
|
96
|
-
test:
|
97
|
-
jobs:
|
98
|
-
- build-3-0-1
|
99
|
-
- build-2-7-3
|
100
|
-
- build-2-6-7
|
101
|
-
- build-2-6-1
|