highline 2.0.0.pre.develop.16 → 2.1.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: 8d1af4546ccbd56901aee7db32d287c0a599a2ae06cb96d5ab4e10293735c0c0
4
- data.tar.gz: 167e3f5567b04dcc76a0276b0596800bfb0c67c33b22d8abff6f897789d33edd
3
+ metadata.gz: 0bb41764d2e42ab3b3c52ca1735f0cd6a587ff5ed3bb4525d0e7703dc4ccb61f
4
+ data.tar.gz: 0424d1467c1f787881abfe6558afdc0aceeb0e854d05efac8c5c6db9d07ba3cf
5
5
  SHA512:
6
- metadata.gz: b4c016dfdd3d1d3af5e81747597d20166886c26bc8713855238c947ecdd71c80e425759273b6624c3c3ed2c90dac07e770e380d8d6ce058ed3c61bfad6109c57
7
- data.tar.gz: cf388f1550ade7cbcd06477dda3d550e11b45089d1959aedea57849dc76d9424b21024743e76cbaa646e59a7b6d01fccfe8bbe1e73f5570648676a15a199127b
6
+ metadata.gz: df0dd1fa4d206aace9512f7ad414bc1e6bdcbfe804fd91b3811a2bc5860dbe7862d3ab81a502fc812747134be1122a647ac9fdd8e95e88e3f9388f7a05f38c22
7
+ data.tar.gz: 70cbe01e01aeff63d8321a4768caaa43992082030ad4e3f93533693d7f7908b30175852c11286fe3a744c4a3a3be63ad3328e7b5b605a045ad4f634887e1340d
@@ -0,0 +1,50 @@
1
+ name: Tests
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ os: [ubuntu-latest]
11
+ ruby-version:
12
+ - head
13
+ - '3.2'
14
+ - '3.1'
15
+ - '3.0'
16
+ - '2.7'
17
+ - '2.6'
18
+ - '2.5'
19
+ - '2.4'
20
+ - '2.3'
21
+ - jruby
22
+ - jruby-head
23
+ - truffleruby
24
+ - truffleruby-head
25
+ - truffleruby+graalvm
26
+ include:
27
+ - os: windows-latest
28
+ ruby-version: head
29
+ - os: windows-latest
30
+ ruby-version: '3.1'
31
+ - os: windows-latest
32
+ ruby-version: mingw
33
+ - os: windows-latest
34
+ ruby-version: mswin
35
+ - os: windows-latest
36
+ ruby-version: ucrt
37
+ - os: macos-latest
38
+ ruby-version: 'head'
39
+ - os: macos-latest
40
+ ruby-version: '3.1'
41
+ runs-on: ${{ matrix.os }}
42
+ steps:
43
+ - uses: actions/checkout@v3
44
+ - name: Set up Ruby ${{ matrix.ruby-version }}
45
+ uses: ruby/setup-ruby@v1
46
+ with:
47
+ ruby-version: ${{ matrix.ruby-version }}
48
+ bundler-cache: true # 'bundle install' and cache
49
+ - name: Run tests
50
+ run: bundle exec rake test
data/.rubocop.yml CHANGED
@@ -4,7 +4,7 @@
4
4
  # https://github.com/bbatsov/rubocop/tree/master/config
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 1.9
7
+ TargetRubyVersion: 2.1
8
8
 
9
9
  # General
10
10
 
@@ -50,7 +50,6 @@ Naming/MethodName:
50
50
  # SupportedStyles: when_needed, always, never
51
51
  Style/Encoding:
52
52
  Enabled: true
53
- EnforcedStyle: always
54
53
 
55
54
  # If we fix this, it will change method signature.
56
55
  # Save it for major release.
data/Changelog.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  Below is a complete listing of changes for each revision of HighLine.
4
4
 
5
+ ### 2.1.0 / 2022-12-31
6
+ * PR #255 - Change minimum Ruby version requirement to 2.3 (@abinoam)
7
+ * PR #254 - Improve Github Actions file (@abinoam)
8
+ * PR #253, PR #251 - Setup GitHub Actions and remove Travis (@petergoldstein, rev by @AlexWayfer)
9
+ * PR #250 - Fix file permissions (@bdunne)
10
+
11
+ ### 2.0.3 / 2019-10-11
12
+ * PR #245 - Suppress `Psych.safe_load` arg warn (@koic)
13
+
14
+ ### 2.0.2 / 2019-04-08
15
+ * PR #243 - Add new capital_letter option to menu index (@Ana06)
16
+ * This is a really special PR. It has come from "The Biggest
17
+ Mobprogramming Session Ever" and around 250 people
18
+ participated in crafting it!
19
+ * PR #241 - CI: Add 2.6 (@olleolleolle)
20
+ * PR #240 - Avoid YARD warning UnknownParam (@olleolleolle)
21
+
22
+ ### 2.0.1 / 2019-01-23
23
+ * PR #238 / I #237 - Rescue Errno::ENOTTY when pipeing
24
+
25
+ ### 2.0.0 / 2018-06-10
26
+ * Release 2.0.0 (major version release).
27
+
5
28
  ### 2.0.0-develop.16 / 2018-05-12
6
29
  * PR #231 - Deprecate safe_level of ERB.new in Ruby 2.6 (@koic)
7
30
  * PR #230 - Fix behavior when shell and gather options are selected together
@@ -573,7 +596,7 @@ Patch by Jeremy Hinegardner:
573
596
  HighLine's own cross-platform terminal input routine.
574
597
  * Improved type conversion to handle user defined classes.
575
598
 
576
- ### 0.2.0
599
+ ### 0.2.0 / 2005-04-29
577
600
 
578
601
  * Added Unit Tests to cover an already fixed output bug in the future.
579
602
  * Added Rakefile and setup test action (default).
data/Gemfile CHANGED
@@ -7,16 +7,13 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
7
7
  # Specify your gem's dependencies in tgem.gemspec
8
8
  gemspec
9
9
 
10
- platform :ruby do
11
- # Running only on MRI
12
- gem "simplecov", group: :test
13
- end
10
+ gem "simplecov", group: :test, require: false
14
11
 
15
12
  group :code_quality do
16
13
  gem "flog", require: false
17
14
  gem "pronto", require: false, platform: :ruby
18
15
  gem "pronto-flay", require: false, platform: :ruby
19
- gem "pronto-poper", require: false, platform: :ruby
16
+ # gem "pronto-poper", require: false, platform: :ruby
20
17
  gem "pronto-reek", require: false, platform: :ruby
21
18
  gem "pronto-rubocop", require: false, platform: :ruby
22
19
  end
data/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  HighLine
2
2
  ========
3
3
 
4
- [![Build Status](https://travis-ci.org/JEG2/highline.svg?branch=master)](https://travis-ci.org/JEG2/highline)
5
- [![Build status](https://ci.appveyor.com/api/projects/status/4p05fijpah77d28x/branch/master?svg=true)](https://ci.appveyor.com/project/JEG2/highline/branch/master)
4
+ [![Tests](https://github.com/JEG2/highline/actions/workflows/ci.yml/badge.svg)](https://github.com/JEG2/highline/actions/workflows/ci.yml)
6
5
  [![Gem Version](https://badge.fury.io/rb/highline.svg)](https://badge.fury.io/rb/highline)
7
6
  [![Code Climate](https://codeclimate.com/github/JEG2/highline/badges/gpa.svg)](https://codeclimate.com/github/JEG2/highline)
8
7
  [![Test Coverage](https://codeclimate.com/github/JEG2/highline/badges/coverage.svg)](https://codeclimate.com/github/JEG2/highline/coverage)
data/examples/menus.rb CHANGED
@@ -33,7 +33,7 @@ end
33
33
 
34
34
  say("\nThis is letter indexing...")
35
35
  choose do |menu|
36
- menu.index = :letter
36
+ menu.index = :letter # Use :capital_letter for uppercase
37
37
  menu.index_suffix = ") "
38
38
 
39
39
  menu.prompt = "Please choose your favorite programming language? "
data/highline.gemspec CHANGED
@@ -27,7 +27,7 @@ DESCRIPTION
27
27
 
28
28
  spec.extra_rdoc_files = %w[README.md TODO Changelog.md LICENSE]
29
29
 
30
- spec.required_ruby_version = ">= 1.9.3"
30
+ spec.required_ruby_version = ">= 2.3"
31
31
 
32
32
  spec.add_development_dependency "bundler"
33
33
  spec.add_development_dependency "rake"
data/lib/highline/menu.rb CHANGED
@@ -374,9 +374,10 @@ class HighLine
374
374
  end
375
375
 
376
376
  def map_items_by_index
377
- if @index == :letter
378
- l_index = "`"
379
- all_items.map { l_index.succ!.dup }
377
+ if [:letter, :capital_letter].include?(@index)
378
+ # @ and ` are the previous ASCII characters to A and a respectively
379
+ prev_char = (@index == :capital_letter ? '@' : '`')
380
+ all_items.map { prev_char.succ!.dup }
380
381
  else
381
382
  (1..all_items.size).map(&:to_s)
382
383
  end
@@ -436,7 +437,7 @@ class HighLine
436
437
 
437
438
  # 97 is the "a" letter at ascii table
438
439
  # Ex: For "a" it will return 0, and for "c" it will return 2
439
- index = selection.ord - 97
440
+ index = selection.downcase.ord - 97
440
441
  items[index]
441
442
  end
442
443
 
@@ -517,8 +518,9 @@ class HighLine
517
518
  case @index
518
519
  when :number
519
520
  ["#{ix + 1}#{@index_suffix}", text]
520
- when :letter
521
- ["#{('a'.ord + ix).chr}#{@index_suffix}", text]
521
+ when :letter, :capital_letter
522
+ first_letter = (@index == :capital_letter ? 'A' : 'a')
523
+ ["#{(first_letter.ord + ix).chr}#{@index_suffix}", text]
522
524
  when :none
523
525
  [text, ""]
524
526
  else
File without changes
File without changes
@@ -1,28 +1,35 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  class HighLine
4
4
  class Terminal
5
5
  # io/console option for HighLine::Terminal.
6
6
  # It's the most used terminal.
7
+ # TODO: We're rescuing when not a terminal.
8
+ # We should make a more robust implementation.
7
9
  class IOConsole < Terminal
8
10
  # (see Terminal#terminal_size)
9
11
  def terminal_size
10
12
  output.winsize.reverse
13
+ rescue Errno::ENOTTY
11
14
  end
12
15
 
13
16
  # (see Terminal#raw_no_echo_mode)
14
17
  def raw_no_echo_mode
15
18
  input.echo = false
19
+ rescue Errno::ENOTTY
16
20
  end
17
21
 
18
22
  # (see Terminal#restore_mode)
19
23
  def restore_mode
20
24
  input.echo = true
25
+ rescue Errno::ENOTTY
21
26
  end
22
27
 
23
28
  # (see Terminal#get_character)
24
- def get_character # rubocop:disable Naming/AccessorMethodName
29
+ def get_character
25
30
  input.getch # from ruby io/console
31
+ rescue Errno::ENOTTY
32
+ input.getc
26
33
  end
27
34
  end
28
35
  end
@@ -81,7 +81,6 @@ class HighLine
81
81
  # Use readline if question has readline mode set.
82
82
  # @param question [HighLine::Question]
83
83
  # @param highline [HighLine]
84
- # @param options [Hash]
85
84
  def get_line(question, highline)
86
85
  raw_answer =
87
86
  if question.readline
@@ -108,7 +107,6 @@ class HighLine
108
107
  end
109
108
 
110
109
  # Use readline to read one line
111
- # @param prompt [String] Readline prompt
112
110
  # @param question [HighLine::Question] question from where to get
113
111
  # autocomplete candidate strings
114
112
  def readline_read(question)
@@ -2,5 +2,5 @@
2
2
 
3
3
  class HighLine
4
4
  # The version of the installed library.
5
- VERSION = "2.0.0-develop.16".freeze
5
+ VERSION = "2.1.0".freeze
6
6
  end
data/lib/highline.rb CHANGED
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: highline
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.develop.16
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Edward Gray II
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-13 00:00:00.000000000 Z
11
+ date: 2022-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,10 +66,10 @@ extra_rdoc_files:
66
66
  - Changelog.md
67
67
  - LICENSE
68
68
  files:
69
+ - ".github/workflows/ci.yml"
69
70
  - ".gitignore"
70
71
  - ".rubocop.yml"
71
72
  - ".simplecov"
72
- - ".travis.yml"
73
73
  - AUTHORS
74
74
  - COPYING
75
75
  - Changelog.md
@@ -78,7 +78,6 @@ files:
78
78
  - README.md
79
79
  - Rakefile
80
80
  - TODO
81
- - appveyor.yml
82
81
  - doc/.cvsignore
83
82
  - examples/ansi_colors.rb
84
83
  - examples/asking_for_arrays.rb
@@ -137,15 +136,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
136
  requirements:
138
137
  - - ">="
139
138
  - !ruby/object:Gem::Version
140
- version: 1.9.3
139
+ version: '2.3'
141
140
  required_rubygems_version: !ruby/object:Gem::Requirement
142
141
  requirements:
143
- - - ">"
142
+ - - ">="
144
143
  - !ruby/object:Gem::Version
145
- version: 1.3.1
144
+ version: '0'
146
145
  requirements: []
147
- rubyforge_project:
148
- rubygems_version: 2.7.6
146
+ rubygems_version: 3.4.1
149
147
  signing_key:
150
148
  specification_version: 4
151
149
  summary: HighLine is a high-level command-line IO library.
data/.travis.yml DELETED
@@ -1,41 +0,0 @@
1
- ---
2
- language: ruby
3
- dist: trusty
4
- sudo: false
5
- cache: bundler
6
- script: "bundle exec rake test"
7
- rvm:
8
- - 2.0
9
- - 2.1
10
- - 2.2
11
- - 2.3
12
- - 2.4
13
- - jruby-19mode # JRuby in 1.9 mode
14
- - jruby-head
15
-
16
- notifications:
17
- email: false
18
- matrix:
19
- allow_failures:
20
- - rvm: 1.9
21
- - rvm: ruby-head
22
- - rvm: rbx-3.81
23
- - rvm: jruby-19mode # JRuby in 1.9 mode
24
- - rvm: jruby-head
25
- fast_finish: true
26
- include:
27
- - rvm: 1.9
28
- before_install:
29
- - "gem update --system -N"
30
- - "gem update bundler -N"
31
- - rvm: 2.5
32
- before_install:
33
- - gem install bundler
34
- - rvm: ruby-head
35
- before_install:
36
- - gem install bundler
37
- - rvm: rbx-3.81
38
- before_install:
39
- - gem install bundler
40
-
41
- bundler_args: --without code_quality
data/appveyor.yml DELETED
@@ -1,37 +0,0 @@
1
- version: 2.0.{build}-{branch}
2
-
3
- cache:
4
- - vendor/bundle
5
-
6
- environment:
7
- matrix:
8
- - RUBY_VERSION: "193"
9
- - RUBY_VERSION: "200"
10
- - RUBY_VERSION: "200-x64"
11
- - RUBY_VERSION: "21"
12
- - RUBY_VERSION: "21-x64"
13
- - RUBY_VERSION: "22"
14
- - RUBY_VERSION: "22-x64"
15
- - RUBY_VERSION: "23"
16
- - RUBY_VERSION: "23-x64"
17
- - RUBY_VERSION: "24"
18
- - RUBY_VERSION: "24-x64"
19
-
20
- matrix:
21
- allow_failures:
22
- - RUBY_VERSION: "193"
23
-
24
- install:
25
- - set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
26
- - bundle config --local path vendor/bundle
27
- - bundle install --retry=3 --without code_quality
28
-
29
- build: off
30
-
31
- before_test:
32
- - ruby -v
33
- - gem -v
34
- - bundle -v
35
-
36
- test_script:
37
- - bundle exec rake