textbringer 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/.github/workflows/macos.yml +15 -0
  4. data/.github/workflows/ruby-head.yml +30 -0
  5. data/.github/workflows/ubuntu.yml +26 -0
  6. data/.github/workflows/windows.yml +22 -0
  7. data/CHANGES.md +5 -0
  8. data/README.md +4 -7
  9. data/lib/textbringer.rb +0 -2
  10. data/lib/textbringer/buffer.rb +4 -6
  11. data/lib/textbringer/color.rb +0 -2
  12. data/lib/textbringer/commands.rb +0 -2
  13. data/lib/textbringer/commands/buffers.rb +0 -2
  14. data/lib/textbringer/commands/clipboard.rb +0 -2
  15. data/lib/textbringer/commands/ctags.rb +0 -2
  16. data/lib/textbringer/commands/dabbrev.rb +0 -2
  17. data/lib/textbringer/commands/files.rb +0 -2
  18. data/lib/textbringer/commands/fill.rb +1 -1
  19. data/lib/textbringer/commands/help.rb +0 -2
  20. data/lib/textbringer/commands/isearch.rb +0 -2
  21. data/lib/textbringer/commands/keyboard_macro.rb +0 -2
  22. data/lib/textbringer/commands/misc.rb +0 -2
  23. data/lib/textbringer/commands/register.rb +0 -2
  24. data/lib/textbringer/commands/replace.rb +0 -2
  25. data/lib/textbringer/commands/server.rb +0 -2
  26. data/lib/textbringer/commands/windows.rb +0 -2
  27. data/lib/textbringer/config.rb +0 -2
  28. data/lib/textbringer/controller.rb +0 -2
  29. data/lib/textbringer/errors.rb +0 -2
  30. data/lib/textbringer/face.rb +0 -2
  31. data/lib/textbringer/faces/basic.rb +0 -2
  32. data/lib/textbringer/faces/programming.rb +0 -2
  33. data/lib/textbringer/keymap.rb +0 -2
  34. data/lib/textbringer/mode.rb +0 -2
  35. data/lib/textbringer/modes/backtrace_mode.rb +0 -2
  36. data/lib/textbringer/modes/buffer_list_mode.rb +0 -2
  37. data/lib/textbringer/modes/c_mode.rb +0 -2
  38. data/lib/textbringer/modes/completion_list_mode.rb +0 -2
  39. data/lib/textbringer/modes/fundamental_mode.rb +0 -2
  40. data/lib/textbringer/modes/help_mode.rb +0 -2
  41. data/lib/textbringer/modes/programming_mode.rb +1 -3
  42. data/lib/textbringer/modes/ruby_mode.rb +5 -4
  43. data/lib/textbringer/plugin.rb +0 -2
  44. data/lib/textbringer/ring.rb +0 -2
  45. data/lib/textbringer/utils.rb +0 -2
  46. data/lib/textbringer/version.rb +1 -3
  47. data/lib/textbringer/window.rb +0 -2
  48. metadata +8 -5
  49. data/.travis.yml +0 -56
  50. data/appveyor.yml +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 670221472ba70164a2f44759e11011d8e70a5f467e067e4e400d732fe4082323
4
- data.tar.gz: 26d15a0030cc1217f131ba761309b3d9bb17078fa5cfd1db24c651bdd5384fb1
3
+ metadata.gz: '009c68bcdc928faff20b7ca1b75f92b21641dc6d29e392a05a279267418983d1'
4
+ data.tar.gz: cad85dfebd2dc1b70cdbf9212bcda296bcde8204e529b0d82ce1663434a05d4b
5
5
  SHA512:
6
- metadata.gz: 000e800e06a430312b133dce7017c560723a473866cbb2c82754ac6af1da6f398be2cdf17b9708f20109784b698b70bb073c744afa4d7f7cc0e086b51db17ffc
7
- data.tar.gz: ccb23431483eabe736e285d9ee72a17f7cb4f72be07fd049ec091f727a5671cd396e30504cd725d0938614a0fd58a56b8c5547a9e4d1275fd8faf8b654c6b25d
6
+ metadata.gz: 4923385439037b9ce5aa099a029f9ca6a3bc87205f85a74febaf165c3e512501303ad25c86cdc73191bf1fcd9cf9faa15b9633996bd1efdc69bb231fba781afe
7
+ data.tar.gz: 9a624d55143b47100a6fc9a538d29c9f1151d7c6c38d3fdb4865739fd8d2b7a9c76bda2f8a29a6921ddc9e9e8cd8e5c73f1c25031fc9244e81da3547946559a4
@@ -0,0 +1 @@
1
+ *.rb diff=ruby
@@ -0,0 +1,15 @@
1
+ name: macos
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: macos-latest
8
+ steps:
9
+ - uses: actions/checkout@master
10
+ - name: Install dependencies
11
+ run: |
12
+ gem install bundler --no-document
13
+ bundle install
14
+ - name: Run test
15
+ run: bundle exec rake test
@@ -0,0 +1,30 @@
1
+ name: ruby-head
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@master
10
+ - name: Set up RVM
11
+ run: |
12
+ curl -sSL https://get.rvm.io | bash
13
+ - name: Set up Ruby
14
+ run: |
15
+ source $HOME/.rvm/scripts/rvm
16
+ rvm install ruby-head --binary
17
+ rvm --default use ruby-head
18
+ - name: Install dependencies
19
+ run: |
20
+ source $HOME/.rvm/scripts/rvm
21
+ sudo apt install libncursesw5-dev
22
+ gem install bundler --no-document
23
+ bundle install
24
+ - name: Run test
25
+ run: |
26
+ source $HOME/.rvm/scripts/rvm
27
+ xvfb-run bundle exec rake test
28
+ env:
29
+ UPLOAD_TO_CODECOV: 1
30
+ CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
@@ -0,0 +1,26 @@
1
+ name: ubuntu
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.6.x', '2.5.x', '2.4.x' ]
11
+ steps:
12
+ - uses: actions/checkout@master
13
+ - name: Set up Ruby
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ ruby-version: ${{ matrix.ruby }}
17
+ - name: Install dependencies
18
+ run: |
19
+ sudo apt install libncursesw5-dev
20
+ gem install bundler --no-document
21
+ bundle install
22
+ - name: Run test
23
+ run: xvfb-run bundle exec rake test
24
+ env:
25
+ UPLOAD_TO_CODECOV: 1
26
+ CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
@@ -0,0 +1,22 @@
1
+ name: windows
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: windows-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: [ '2.6.x', '2.5.x', '2.4.x' ]
11
+ steps:
12
+ - uses: actions/checkout@master
13
+ - name: Set up Ruby
14
+ uses: actions/setup-ruby@v1
15
+ with:
16
+ ruby-version: ${{ matrix.ruby }}
17
+ - name: Set up Bundler
18
+ run: gem install bundler --no-document
19
+ - name: Install dependencies
20
+ run: bundle install
21
+ - name: Run test
22
+ run: bundle exec rake test
data/CHANGES.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.0.1
2
+
3
+ * Support pattern matching in the Ruby mode.
4
+ * Bug fixes.
5
+
1
6
  ## 1.0.0
2
7
 
3
8
  * Add mark_whole_buffer.
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # ![Textbringer](logo/logo.png)
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/textbringer.svg)](https://badge.fury.io/rb/textbringer)
4
- [![Build Status](https://travis-ci.org/shugo/textbringer.svg?branch=master)](https://travis-ci.org/shugo/textbringer)
5
- [![Build status](https://ci.appveyor.com/api/projects/status/n20vtpfgcgii5jtc?svg=true)](https://ci.appveyor.com/project/shugo31737/textbringer)
4
+ [![ubuntu](https://github.com/shugo/textbringer/workflows/ubuntu/badge.svg)](https://github.com/shugo/textbringer/actions?query=workflow%3Aubuntu)
5
+ [![windows](https://github.com/shugo/textbringer/workflows/windows/badge.svg)](https://github.com/shugo/textbringer/actions?query=workflow%3Awindows)
6
+ [![macos](https://github.com/shugo/textbringer/workflows/macos/badge.svg)](https://github.com/shugo/textbringer/actions?query=workflow%3Amacos)
7
+ [![ruby-head](https://github.com/shugo/textbringer/workflows/ruby-head/badge.svg)](https://github.com/shugo/textbringer/actions?query=workflow%3Aruby-head)
6
8
  [![codecov](https://codecov.io/gh/shugo/textbringer/branch/master/graph/badge.svg)](https://codecov.io/gh/shugo/textbringer)
7
9
 
8
10
  Textbringer is a member of a demon race that takes on the form of an Emacs-like
@@ -107,8 +109,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/shugo/
107
109
  ## License
108
110
 
109
111
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
110
-
111
-
112
- ## Credit
113
-
114
- Logo made with [DesignEvo](https://www.designevo.com/en/).
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require_relative "textbringer/version"
4
2
  require_relative "textbringer/config"
5
3
  require_relative "textbringer/errors"
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "nkf"
4
2
  require "unicode/display_width"
5
3
  require "json"
@@ -524,7 +522,7 @@ def goto_char(pos)
524
522
  if pos < 0 || pos > size
525
523
  raise RangeError, "Out of buffer"
526
524
  end
527
- if !@binary && /[\x80-\xbf]/n.match?(byte_after(pos))
525
+ if !@binary && byte_after(pos)&.match?(/[\x80-\xbf]/n)
528
526
  raise ArgumentError, "Position is in the middle of a character"
529
527
  end
530
528
  @goal_column = nil
@@ -578,12 +576,12 @@ def insert(x, merge_undo = false)
578
576
 
579
577
  def newline
580
578
  indentation = save_point { |saved|
581
- if /[ \t]/.match?(char_after)
579
+ if char_after&.match?(/[ \t]/)
582
580
  next ""
583
581
  end
584
582
  beginning_of_line
585
583
  s = @point
586
- while /[ \t]/.match?(char_after)
584
+ while char_after&.match?(/[ \t]/)
587
585
  forward_char
588
586
  end
589
587
  str = substring(s, @point)
@@ -1247,7 +1245,7 @@ def transpose_chars
1247
1245
  end
1248
1246
 
1249
1247
  def gap_filled_with_nul?
1250
- /\A\0*\z/.match?(@contents[@gap_start...@gap_end])
1248
+ @contents[@gap_start...@gap_end]&.match?(/\A\0*\z/)
1251
1249
  end
1252
1250
 
1253
1251
  def composite_edit
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "curses"
4
2
 
5
3
  module Textbringer
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "open3"
4
2
  require "io/wait"
5
3
 
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  define_command(:forward_char,
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Clipboard
4
2
  @implementation = nil
5
3
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  CTAGS = {
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module DabbrevExtension
5
3
  refine Buffer do
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "editorconfig"
4
2
 
5
3
  module Textbringer
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ require "stringio"
2
2
 
3
3
  module Textbringer
4
4
  module FillExtension
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  HELP_RING = Ring.new
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  ISEARCH_MODE_MAP = Keymap.new
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  KEYBOARD_MACROS = {}
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  define_command(:version) do
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  class BufferPosition
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  RE_SEARCH_STATUS = {
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "drb"
4
2
 
5
3
  module Textbringer
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Commands
5
3
  define_command(:resize_window,
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  CONFIG = {
5
3
  east_asian_ambiguous_width: 1,
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  TOP_LEVEL_TAG = Object.new
5
3
  RECURSIVE_EDIT_TAG = Object.new
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class EditorError < StandardError
5
3
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "curses"
4
2
 
5
3
  module Textbringer
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  Face.define :mode_line, reverse: true
5
3
  Face.define :link, foreground: "blue", bold: true
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  Face.define :comment, foreground: "yellow"
5
3
  Face.define :preprocessing_directive, foreground: "green"
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class Keymap
5
3
  include Enumerable
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class Mode
5
3
  extend Commands
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class BacktraceMode < Mode
5
3
  define_generic_command :jump_to_source_location
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class BufferListMode < Mode
5
3
  BUFFER_LIST_MODE_MAP = Keymap.new
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  CONFIG[:c_indent_level] = 4
5
3
  CONFIG[:c_indent_tabs_mode] = true
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class CompletionListMode < Mode
5
3
  define_generic_command :choose_completion
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class FundamentalMode < Mode
5
3
  def symbol_pattern
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class HelpMode < Mode
5
3
  define_generic_command :jump_to_link
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class ProgrammingMode < FundamentalMode
5
3
  # abstract mode
@@ -32,7 +30,7 @@ def initialize(buffer)
32
30
  def indent_line
33
31
  result = false
34
32
  level = calculate_indentation
35
- return result if level.nil?
33
+ return result if level.nil? || level < 0
36
34
  @buffer.save_excursion do
37
35
  @buffer.beginning_of_line
38
36
  @buffer.composite_edit do
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "ripper"
4
2
 
5
3
  module Textbringer
@@ -175,7 +173,7 @@ def toggle_test
175
173
 
176
174
  private
177
175
 
178
- INDENT_BEG_RE = /^([ \t]*)((class|module|def|if|unless|case|while|until|for|begin|end)\b|\})/
176
+ INDENT_BEG_RE = /^([ \t]*)(class|module|def|if|unless|case|while|until|for|begin|end)\b/
179
177
 
180
178
  def space_width(s)
181
179
  s.gsub(/\t/, " " * @buffer[:tab_width]).size
@@ -209,6 +207,9 @@ def calculate_indentation
209
207
  start_line = @buffer.current_line
210
208
  tokens = Ripper.lex(@buffer.substring(start_pos, bol_pos))
211
209
  _, event, text = tokens.last
210
+ if event == :on_nl
211
+ _, event, text = tokens[-2]
212
+ end
212
213
  if event == :on_tstring_beg ||
213
214
  event == :on_heredoc_beg ||
214
215
  event == :on_regexp_beg ||
@@ -243,7 +244,7 @@ def calculate_indentation
243
244
  else
244
245
  indentation = base_indentation + @buffer[:indent_level]
245
246
  end
246
- if @buffer.looking_at?(/[ \t]*([}\])]|(end|else|elsif|when|rescue|ensure)\b)/)
247
+ if @buffer.looking_at?(/[ \t]*([}\])]|(end|else|elsif|when|in|rescue|ensure)\b)/)
247
248
  indentation -= @buffer[:indent_level]
248
249
  end
249
250
  _, last_event, last_text = tokens.reverse_each.find { |_, e, _|
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  module Plugin
5
3
  class << self
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
2
  class Ring
5
3
  include Enumerable
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "rbconfig"
4
2
 
5
3
  module Textbringer
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module Textbringer
4
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
5
3
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require "curses"
4
2
  require "unicode/display_width"
5
3
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: textbringer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shugo Maeda
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-16 00:00:00.000000000 Z
11
+ date: 2019-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses
@@ -176,14 +176,17 @@ extensions: []
176
176
  extra_rdoc_files: []
177
177
  files:
178
178
  - ".editorconfig"
179
+ - ".gitattributes"
180
+ - ".github/workflows/macos.yml"
181
+ - ".github/workflows/ruby-head.yml"
182
+ - ".github/workflows/ubuntu.yml"
183
+ - ".github/workflows/windows.yml"
179
184
  - ".gitignore"
180
- - ".travis.yml"
181
185
  - CHANGES.md
182
186
  - Gemfile
183
187
  - LICENSE.txt
184
188
  - README.md
185
189
  - Rakefile
186
- - appveyor.yml
187
190
  - bin/console
188
191
  - exe/tbclient
189
192
  - exe/tbtags
@@ -250,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
250
253
  - !ruby/object:Gem::Version
251
254
  version: '0'
252
255
  requirements: []
253
- rubygems_version: 3.1.0.pre1
256
+ rubygems_version: 3.1.0.pre2
254
257
  signing_key:
255
258
  specification_version: 4
256
259
  summary: An Emacs-like text editor
@@ -1,56 +0,0 @@
1
- language: ruby
2
- matrix:
3
- include:
4
- - os: linux
5
- dist: trusty
6
- sudo: false
7
- rvm: 2.4.5
8
- - os: linux
9
- dist: trusty
10
- sudo: false
11
- rvm: 2.5.2
12
- - os: linux
13
- dist: trusty
14
- sudo: false
15
- rvm: 2.6.0
16
- - os: linux
17
- dist: trusty
18
- sudo: false
19
- rvm: ruby-head
20
- - os: osx
21
- osx_image: xcode8.2
22
- rvm: 2.4.5
23
- - os: osx
24
- osx_image: xcode8.2
25
- rvm: 2.5.2
26
- - os: osx
27
- osx_image: xcode8.2
28
- rvm: 2.6.0
29
- - os: osx
30
- osx_image: xcode8.2
31
- rvm: ruby-head
32
- allow_failures:
33
- - os: osx
34
- - rvm: ruby-head
35
- fast_finish: true
36
- cache: bundler
37
- before_install:
38
- - gem update --system
39
- - gem install bundler-audit
40
- script:
41
- - if [ "$TRAVIS_OS_NAME" == "linux" ]; then
42
- xvfb-run bundle exec rake test;
43
- else
44
- bundle exec rake test;
45
- fi
46
- env:
47
- global:
48
- UPLOAD_TO_CODECOV: 1
49
- notifications:
50
- email:
51
- on_success: never
52
- on_failure: always
53
- addons:
54
- apt:
55
- packages:
56
- - xclip
@@ -1,19 +0,0 @@
1
- ---
2
- clone_depth: 10
3
- install:
4
- - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
5
- - bundle install
6
- - ps: '[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12'
7
- - ps: Invoke-WebRequest -Uri https://curl.haxx.se/ca/cacert.pem -OutFile C:\projects\textbringer\cacert.pem
8
- build: off
9
- test_script:
10
- - rake
11
- deploy: off
12
- environment:
13
- UPLOAD_TO_CODECOV: 1
14
- SSL_CERT_FILE: C:\projects\textbringer\cacert.pem
15
- matrix:
16
- - ruby_version: "24"
17
- - ruby_version: "24-x64"
18
- - ruby_version: "25"
19
- - ruby_version: "25-x64"