highline 2.0.0.pre.develop.15 → 2.0.0.pre.develop.16

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: 6f6f0077459b346ac0550722ee90fe5bab80bdab266d7fd109400593d0e44494
4
- data.tar.gz: 0ae39b4928822060ec41ffa58619f450996feddde22d3b56bc710fe7748b1b0e
3
+ metadata.gz: 8d1af4546ccbd56901aee7db32d287c0a599a2ae06cb96d5ab4e10293735c0c0
4
+ data.tar.gz: 167e3f5567b04dcc76a0276b0596800bfb0c67c33b22d8abff6f897789d33edd
5
5
  SHA512:
6
- metadata.gz: f52b6371cfc81e28f87dd8771ba7ac1c9e6b80404b14a4c6741be0b7c1e2395dd76855aed167520dc6e88692371cb4b0ecaf376fa0080a7cffbcebc121af7766
7
- data.tar.gz: 64a65b6dd14cf5ac70cc3fdb3a7038f322f412a9b72ca2f3c32c4059f31a4c7543ddcf6ed1371a0e1eaee34c0b85419e83633c0d4b8868c0f850e4d3c0fd5e16
6
+ metadata.gz: b4c016dfdd3d1d3af5e81747597d20166886c26bc8713855238c947ecdd71c80e425759273b6624c3c3ed2c90dac07e770e380d8d6ce058ed3c61bfad6109c57
7
+ data.tar.gz: cf388f1550ade7cbcd06477dda3d550e11b45089d1959aedea57849dc76d9424b21024743e76cbaa646e59a7b6d01fccfe8bbe1e73f5570648676a15a199127b
@@ -2,6 +2,10 @@
2
2
 
3
3
  Below is a complete listing of changes for each revision of HighLine.
4
4
 
5
+ ### 2.0.0-develop.16 / 2018-05-12
6
+ * PR #231 - Deprecate safe_level of ERB.new in Ruby 2.6 (@koic)
7
+ * PR #230 - Fix behavior when shell and gather options are selected together
8
+
5
9
  ### 2.0.0-develop.15 / 2017-12-28
6
10
  * PR #229 - Update .travis.yml. Add Ruby 2.5 to matrix (@abinoam)
7
11
 
@@ -257,7 +257,16 @@ class HighLine
257
257
  return unless selected
258
258
 
259
259
  if menu.shell
260
- selection, details = selected
260
+ if menu.gather
261
+ selection = []
262
+ details = []
263
+ selected.each do |value|
264
+ selection << value[0]
265
+ details << value[1]
266
+ end
267
+ else
268
+ selection, details = selected
269
+ end
261
270
  else
262
271
  selection = selected
263
272
  end
@@ -533,9 +542,11 @@ class HighLine
533
542
  break if ["\n", "\r"].include? character
534
543
 
535
544
  # honor backspace and delete
536
- if character == "\b"
545
+ if character == "\b" || character == "\u007F"
537
546
  chopped = line.chop!
538
547
  output_erase_char if chopped && question.echo
548
+ elsif character == "\e"
549
+ ignore_arrow_key
539
550
  else
540
551
  line << character
541
552
  say_last_char_or_echo_char(line, question)
@@ -561,6 +572,12 @@ class HighLine
561
572
  end
562
573
  end
563
574
 
575
+ def ignore_arrow_key
576
+ 2.times do
577
+ terminal.get_character
578
+ end
579
+ end
580
+
564
581
  def say_last_char_or_echo_char(line, question)
565
582
  @output.print(line[-1]) if question.echo == true
566
583
  @output.print(question.echo) if question.echo && question.echo != true
@@ -92,7 +92,11 @@ class HighLine
92
92
  def render_list_items(items)
93
93
  items.to_ary.map do |item|
94
94
  item = String(item)
95
- template = ERB.new(item, nil, "%")
95
+ template = if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
96
+ ERB.new(item, trim_mode: "%")
97
+ else
98
+ ERB.new(item, nil, "%")
99
+ end
96
100
  template_renderer =
97
101
  HighLine::TemplateRenderer.new(template, self, highline)
98
102
  template_renderer.render
@@ -472,16 +472,22 @@ class HighLine
472
472
  selected_items = selections.map do |selection|
473
473
  find_item_from_selection(items, selection)
474
474
  end
475
+ index = 0
475
476
  selected_items.map do |selected_item|
476
- value_for_selected_item(selected_item, details)
477
+ value = value_for_selected_item(selected_item, self.shell ? details[index] : nil)
478
+ index += 1
479
+ value
477
480
  end
478
481
  end
479
482
 
480
483
  def value_for_hash_selections(items, selections, details)
481
484
  # Find the selected items and return in hash form
485
+ index = 0
482
486
  selections.each_with_object({}) do |(key, selection), memo|
483
487
  selected_item = find_item_from_selection(items, selection)
484
- memo[key] = value_for_selected_item(selected_item, details)
488
+ value = value_for_selected_item(selected_item, self.shell ? details[index] : nil)
489
+ index += 1
490
+ memo[key] = value
485
491
  end
486
492
  end
487
493
 
@@ -548,7 +548,11 @@ class HighLine
548
548
  else
549
549
  # evaluate ERb under initial scope, so it will have
550
550
  # access to question and answer
551
- template = ERB.new(confirm, nil, "%")
551
+ template = if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
552
+ ERB.new(confirm, trim_mode: "%")
553
+ else
554
+ ERB.new(confirm, nil, "%")
555
+ end
552
556
  template_renderer = TemplateRenderer.new(template, self, highline)
553
557
  template_renderer.render
554
558
  end
@@ -78,7 +78,11 @@ class HighLine
78
78
  end
79
79
 
80
80
  def template
81
- @template ||= ERB.new(template_string, nil, "%")
81
+ @template ||= if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
82
+ ERB.new(template_string, trim_mode: "%")
83
+ else
84
+ ERB.new(template_string, nil, "%")
85
+ end
82
86
  end
83
87
  end
84
88
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  class HighLine
4
4
  # The version of the installed library.
5
- VERSION = "2.0.0-develop.15".freeze
5
+ VERSION = "2.0.0-develop.16".freeze
6
6
  end
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.15
4
+ version: 2.0.0.pre.develop.16
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-03-30 00:00:00.000000000 Z
11
+ date: 2018-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler