konamio 0.0.2 → 0.0.3
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 +7 -0
- data/lib/konamio/prompt.rb +11 -4
- data/lib/konamio/sequence/listener.rb +4 -4
- data/lib/konamio/sequence/requisition.rb +8 -6
- data/lib/konamio/version.rb +1 -1
- data/test/konamio/prompt_test.rb +18 -0
- data/test/konamio/sequence/listener_test.rb +30 -0
- data/test/konamio/sequence/requisition_test.rb +18 -0
- data/test/minitest_helper.rb +1 -1
- metadata +44 -67
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: be14bb94a4354ba1896b52ad536ff6cf36e29b17
|
4
|
+
data.tar.gz: 0a23d2a6923744f6d19cd53638a64d15c6d56b25
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 008311b489c40171950903bfd3abfafc9a7f41d52f1a98a8aca86308736ef5076550bc8ccd7b15c306728ce0748de68cabcadee76469c44880ec6c7267513267
|
7
|
+
data.tar.gz: 739859a5d69e6d55fc1518d1cf3c2f369f3ddc9d68ff4df2c5167d71ab9a1e0ab0769084897d78098954eb3077215287331dff7cc5cbece7e1b3d31af47bc386
|
data/lib/konamio/prompt.rb
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
module Konamio
|
2
2
|
class Prompt < PayDirt::Base
|
3
3
|
def initialize(options)
|
4
|
-
|
4
|
+
options = {
|
5
|
+
output: $stdout
|
6
|
+
}.merge(options)
|
5
7
|
|
6
|
-
|
8
|
+
load_options(:output, :prompt, options)
|
7
9
|
end
|
8
10
|
|
9
|
-
def
|
10
|
-
puts prompt
|
11
|
+
def execute!
|
12
|
+
@output.puts @prompt
|
13
|
+
return PayDirt::Result.new(success: true, data: { prompted: @prompt })
|
14
|
+
end
|
15
|
+
|
16
|
+
def prompt
|
17
|
+
@output.puts @prompt
|
11
18
|
end
|
12
19
|
end
|
13
20
|
end
|
@@ -7,20 +7,20 @@ module Konamio
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def execute!
|
10
|
-
result = listen
|
10
|
+
result = listen
|
11
11
|
|
12
12
|
if result == true
|
13
13
|
return PayDirt::Result.new(success: true, data: { sequence: @sequence[1..-1]})
|
14
14
|
elsif result == false
|
15
|
-
return PayDirt::Result.new(success: false)
|
15
|
+
return PayDirt::Result.new(success: false, data: {})
|
16
16
|
elsif result.nil?
|
17
17
|
return PayDirt::Result.new(success: false, data: {terminate: true })
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
def listen
|
21
|
+
def listen
|
22
22
|
case @input.getch
|
23
|
-
when sequence[0]
|
23
|
+
when @sequence[0]
|
24
24
|
true
|
25
25
|
when "\e"
|
26
26
|
nil
|
@@ -3,24 +3,26 @@ module Konamio
|
|
3
3
|
class Requisition < PayDirt::Base
|
4
4
|
def initialize(options={})
|
5
5
|
options = {
|
6
|
-
|
6
|
+
speaker: Konamio::Prompt,
|
7
|
+
listener: Konamio::Sequence::Listener,
|
8
|
+
sequence: "\e[A\e[A\e[B\e[B\e[D\e[C\e[D\e[CBA",
|
7
9
|
prompt: "Enter konami code (or hit escape)",
|
8
10
|
confirmation: "Good job, you."
|
9
11
|
}.merge(options)
|
10
12
|
|
11
13
|
load_options(:sequence, options)
|
12
14
|
|
13
|
-
prompt
|
15
|
+
prompt
|
14
16
|
listen(@sequence)
|
15
17
|
finish(false)
|
16
18
|
end
|
17
19
|
|
18
|
-
def prompt
|
19
|
-
|
20
|
+
def prompt
|
21
|
+
@speaker.new(prompt: @prompt).execute!
|
20
22
|
end
|
21
23
|
|
22
24
|
def listen(sequence)
|
23
|
-
listener =
|
25
|
+
listener = @listener.new(sequence: sequence)
|
24
26
|
received = listener.execute!
|
25
27
|
|
26
28
|
if received.successful?
|
@@ -32,7 +34,7 @@ module Konamio
|
|
32
34
|
elsif received.data[:terminate]
|
33
35
|
finish(false)
|
34
36
|
else
|
35
|
-
prompt
|
37
|
+
prompt
|
36
38
|
listen(@sequence)
|
37
39
|
end
|
38
40
|
end
|
data/lib/konamio/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require "minitest_helper"
|
2
|
+
|
3
|
+
describe Konamio::Prompt do
|
4
|
+
before do
|
5
|
+
@subject = Konamio::Prompt
|
6
|
+
@prompt = rand(100000).to_s
|
7
|
+
@output = MiniTest::Mock.new
|
8
|
+
|
9
|
+
@output.expect(:puts, nil, [@prompt])
|
10
|
+
end
|
11
|
+
|
12
|
+
it "can be initialized" do
|
13
|
+
@subject.must_respond_to :new
|
14
|
+
prompted = @subject.new(prompt: @prompt, output: @output).execute!
|
15
|
+
assert prompted.successful?
|
16
|
+
assert @output.verify
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "minitest_helper"
|
2
|
+
|
3
|
+
describe Konamio::Sequence::Listener do
|
4
|
+
before do
|
5
|
+
@subject = Konamio::Sequence::Listener
|
6
|
+
|
7
|
+
@sequence = "a"
|
8
|
+
@input = MiniTest::Mock.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "can be initialized" do
|
12
|
+
@subject.must_respond_to :new
|
13
|
+
end
|
14
|
+
|
15
|
+
it "knows when you're right" do
|
16
|
+
@input.expect(:getch, "a")
|
17
|
+
result = @subject.new(sequence: @sequence, input: @input).execute!
|
18
|
+
|
19
|
+
assert @input.verify
|
20
|
+
assert result.successful?
|
21
|
+
end
|
22
|
+
|
23
|
+
it "knows when you're right" do
|
24
|
+
@input.expect(:getch, "b")
|
25
|
+
result = @subject.new(sequence: @sequence, input: @input).execute!
|
26
|
+
|
27
|
+
assert @input.verify
|
28
|
+
assert !result.successful?
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "minitest_helper"
|
2
|
+
|
3
|
+
describe Konamio::Sequence::Requisition do
|
4
|
+
before do
|
5
|
+
@subject = Konamio::Sequence::Requisition
|
6
|
+
@options = {
|
7
|
+
prompt: "Foo diddly doobardy party hardy",
|
8
|
+
listener: @listener = MiniTest::Mock.new,
|
9
|
+
sequence: "a",
|
10
|
+
speaker: @speaker = MiniTest::Mock.new,
|
11
|
+
confirmation: "Good job, you."
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
it "can be initialized" do
|
16
|
+
@subject.must_respond_to :new
|
17
|
+
end
|
18
|
+
end
|
data/test/minitest_helper.rb
CHANGED
metadata
CHANGED
@@ -1,88 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konamio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.0.2
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tad Hosford
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
11
|
date: 2013-05-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: pay_dirt
|
16
|
-
version_requirements: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ! '>='
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: !binary |-
|
21
|
-
MA==
|
22
|
-
none: false
|
23
15
|
requirement: !ruby/object:Gem::Requirement
|
24
16
|
requirements:
|
25
|
-
- -
|
17
|
+
- - '>='
|
26
18
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
-
MA==
|
29
|
-
none: false
|
30
|
-
prerelease: false
|
19
|
+
version: '0'
|
31
20
|
type: :runtime
|
32
|
-
|
33
|
-
name: minitest
|
21
|
+
prerelease: false
|
34
22
|
version_requirements: !ruby/object:Gem::Requirement
|
35
23
|
requirements:
|
36
|
-
- -
|
24
|
+
- - '>='
|
37
25
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
39
|
-
|
40
|
-
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
41
29
|
requirement: !ruby/object:Gem::Requirement
|
42
30
|
requirements:
|
43
|
-
- -
|
31
|
+
- - '>='
|
44
32
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
MA==
|
47
|
-
none: false
|
48
|
-
prerelease: false
|
33
|
+
version: '0'
|
49
34
|
type: :development
|
50
|
-
|
51
|
-
name: pry
|
35
|
+
prerelease: false
|
52
36
|
version_requirements: !ruby/object:Gem::Requirement
|
53
37
|
requirements:
|
54
|
-
- -
|
38
|
+
- - '>='
|
55
39
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
57
|
-
|
58
|
-
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
59
43
|
requirement: !ruby/object:Gem::Requirement
|
60
44
|
requirements:
|
61
|
-
- -
|
45
|
+
- - '>='
|
62
46
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
64
|
-
MA==
|
65
|
-
none: false
|
66
|
-
prerelease: false
|
47
|
+
version: '0'
|
67
48
|
type: :development
|
68
|
-
|
69
|
-
name: rake
|
49
|
+
prerelease: false
|
70
50
|
version_requirements: !ruby/object:Gem::Requirement
|
71
51
|
requirements:
|
72
|
-
- -
|
52
|
+
- - '>='
|
73
53
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
|
76
|
-
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
77
57
|
requirement: !ruby/object:Gem::Requirement
|
78
58
|
requirements:
|
79
|
-
- -
|
59
|
+
- - '>='
|
80
60
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
82
|
-
MA==
|
83
|
-
none: false
|
84
|
-
prerelease: false
|
61
|
+
version: '0'
|
85
62
|
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
86
69
|
description: Recognize sequences in Ruby... just for fun.
|
87
70
|
email:
|
88
71
|
- tad.hosford@gmail.com
|
@@ -101,37 +84,31 @@ files:
|
|
101
84
|
- lib/konamio/sequence/listener.rb
|
102
85
|
- lib/konamio/sequence/requisition.rb
|
103
86
|
- lib/konamio/version.rb
|
87
|
+
- test/konamio/prompt_test.rb
|
88
|
+
- test/konamio/sequence/listener_test.rb
|
89
|
+
- test/konamio/sequence/requisition_test.rb
|
104
90
|
- test/minitest_helper.rb
|
105
91
|
homepage: https://github.com/rthbound/konamio
|
106
92
|
licenses: []
|
107
|
-
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
108
95
|
rdoc_options: []
|
109
96
|
require_paths:
|
110
97
|
- lib
|
111
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
99
|
requirements:
|
113
|
-
- -
|
100
|
+
- - '>='
|
114
101
|
- !ruby/object:Gem::Version
|
115
|
-
|
116
|
-
- 0
|
117
|
-
hash: 2
|
118
|
-
version: !binary |-
|
119
|
-
MA==
|
120
|
-
none: false
|
102
|
+
version: '0'
|
121
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
104
|
requirements:
|
123
|
-
- -
|
105
|
+
- - '>='
|
124
106
|
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
- 0
|
127
|
-
hash: 2
|
128
|
-
version: !binary |-
|
129
|
-
MA==
|
130
|
-
none: false
|
107
|
+
version: '0'
|
131
108
|
requirements: []
|
132
|
-
rubyforge_project:
|
133
|
-
rubygems_version:
|
134
|
-
signing_key:
|
135
|
-
specification_version:
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 2.0.0.rc.2
|
111
|
+
signing_key:
|
112
|
+
specification_version: 4
|
136
113
|
summary: I'm gonna recognize the konami sequence
|
137
114
|
test_files: []
|