press_any_key 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/press_any_key.rb +45 -0
  3. metadata +102 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0e4da1f23ab6762838e90f45b2d410a1382291ad
4
+ data.tar.gz: 6dff8a39a3f5ba79e6c02a9f152b456772a84190
5
+ SHA512:
6
+ metadata.gz: e458032aaab7ac5728a766fbdede4d57e45dc80ddb9b5e7976b5aeeac3dd042b2fcb2cf0a8570036d00eb3cc71b1e159e70275c0f230c6d6be3829d7449ccc82
7
+ data.tar.gz: 0f8177d651c4f27a30262d3b4faddfe662ad2a91c446cead406d451440cc9b7398ba6831d472de335a487ccfc52b47572eade7bd4bb4bfc67a01548d9e755801
@@ -0,0 +1,45 @@
1
+ require 'io/console'
2
+
3
+ class PressAnyKey
4
+ MESSAGE = 'Press any key to continue...'
5
+ CTRL_C = "\u0003"
6
+
7
+ def initialize(console: nil, message: MESSAGE)
8
+ with(console) do |console_rd, console_wr|
9
+ console_wr.puts message
10
+ key = console_rd.getch
11
+ raise Interrupt if key == CTRL_C
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def with(console)
18
+ console_rd, console_wr = parse_console(console)
19
+ yield(console_rd, console_wr)
20
+ rescue
21
+ warn "Couldn't connect to TTY!"
22
+ warn $!
23
+ warn $!.backtrace
24
+ end
25
+
26
+ def parse_console(console)
27
+ return console if console.kind_of?(Array) && console.count == 2
28
+ return [console, console] unless console.nil?
29
+
30
+ if $stdin.tty? && $stdout.tty?
31
+ console_rd = $stdin
32
+ console_wr = $stdout
33
+ else
34
+ console_rd = console_wr = IO.console
35
+ end
36
+
37
+ [console_rd, console_wr]
38
+ end
39
+ end
40
+
41
+ if $0 == __FILE__
42
+ puts "Starting..."
43
+ PressAnyKey.new
44
+ puts "...done!"
45
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: press_any_key
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tim Uruski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: io-console
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.4.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.4.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 10.3.2
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 10.3.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.8'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.8'
69
+ description: You can use PressAnyKey to halt a program until the user presses any
70
+ key.
71
+ email: nerd@timuruski.net
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - lib/press_any_key.rb
77
+ homepage: https://rubygems.org/gems/press_any_key
78
+ licenses:
79
+ - MIT
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 2.4.5
98
+ signing_key:
99
+ specification_version: 4
100
+ summary: A tiny helper for waiting on user input.
101
+ test_files: []
102
+ has_rdoc: