konamio 0.2.2 → 1.0.0
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/.travis.yml +4 -0
- data/README.md +31 -13
- data/konamio.gemspec +5 -4
- data/lib/konamio/base.rb +5 -0
- data/lib/konamio/prompt.rb +3 -3
- data/lib/konamio/result.rb +5 -0
- data/lib/konamio/sequence/listener.rb +4 -6
- data/lib/konamio/sequence/requisition.rb +37 -26
- data/lib/konamio/version.rb +1 -1
- data/lib/konamio.rb +3 -1
- data/test/konamio/sequence/listener_test.rb +8 -0
- data/test/konamio/sequence/requisition_cancelled_test.rb +42 -0
- data/test/konamio/sequence/requisition_test.rb +9 -1
- data/test/minitest_helper.rb +3 -2
- metadata +39 -36
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 37ffc53d7fc6b46bcbb18189e27cc170152dc44c
|
4
|
+
data.tar.gz: 924d388a7c51e926ffecb6ffbc8058326ac7eca9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7bb9c6a000e52adea2c05c8f8c75a0e40350e35bce0fb650222260bb7805782337acef371cf2601c902e780ff3f9bae0bc3598c59341ba3da3091dbca549cae5
|
7
|
+
data.tar.gz: 889017b85fd30f1e188af487f320c4660b8cbcc413bbc8f3c9c8478dccdfb0c3e7b8e8bbf144598f33fa204cd90496de4036cb27ac16958e7077ff6840f645ae
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
## Konamio
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/konamio) [](https://travis-ci.org/rthbound/konamio) [](https://coveralls.io/r/rthbound/konamio) [](https://codeclimate.com/github/rthbound/konamio)
|
4
|
+
|
5
|
+
|
3
6
|

|
4
7
|
|
5
8
|
gem install konamio
|
@@ -9,18 +12,23 @@ and
|
|
9
12
|
require "konamio"
|
10
13
|
|
11
14
|
|
12
|
-
Default Usage
|
15
|
+
### Default Usage
|
13
16
|
```
|
14
17
|
> Konamio::Sequence::Requisition.new.execute!
|
15
18
|
Enter konami code (or hit escape)
|
16
19
|
Good job, you.
|
17
|
-
=> #<
|
20
|
+
=> #<Konamio::Result:0x937ddb4
|
18
21
|
@data={:data=>{:confirmation=>"Good job, you."}},
|
19
22
|
@success=true>
|
20
23
|
```
|
21
24
|
|
22
|
-
|
23
|
-
|
25
|
+
### Configuration
|
26
|
+
|
27
|
+
#### Sequences
|
28
|
+
|
29
|
+
You can configure it to listen for any ascii based sequence you want. This can be specified using a string (`"foobar"`) or an array of recognized symbols and one character strings (escaped characters are okay, e.g. `[:up, "1", "2", "3", "\t"]`):
|
30
|
+
|
31
|
+
```ruby
|
24
32
|
> Konamio::Sequence::Requisition.new({
|
25
33
|
sequence: "a".upto("z").to_a.reverse,
|
26
34
|
prompt: "Say the alphabet backwards",
|
@@ -28,18 +36,31 @@ You can configure it to listen for any sequence you want:
|
|
28
36
|
}).execute!
|
29
37
|
Say the alphabet backwards
|
30
38
|
Okay, you can go
|
31
|
-
=> #<
|
39
|
+
=> #<Konamio::Result:0x9265788
|
32
40
|
@data={:data=>{:confirmation=>"Okay, you can go"}},
|
33
41
|
@success=true>
|
34
42
|
```
|
35
43
|
|
36
|
-
|
44
|
+
#### Output
|
45
|
+
|
46
|
+
There are three dialogs that Konamio might send to standard out.
|
47
|
+
|
48
|
+
1. `:prompt` is the dialog displayed initially, and each time the user fails to supply the proper sequence.
|
49
|
+
2. `:confirmation` is displayed when the required sequence is entered properly.
|
50
|
+
3. `:cancellation` is displayed when user terminates by pressing the escape key.
|
51
|
+
|
52
|
+
You can customize any of these dialogs, or disable them individually by passing a falsey value.
|
53
|
+
|
54
|
+
#### Success!
|
55
|
+
|
56
|
+
It would be boring if all Konamio did was return a result object. In fact, `Konamio::Sequence::Requisition#execute!` takes a block, and will execute that block when the sequence has been successfully entered. You're limited only by your imagination and the context of your application.
|
57
|
+
|
37
58
|
The following code would prompt the user to enter the konami code twice:
|
38
|
-
```
|
59
|
+
```ruby
|
39
60
|
Konamio::Sequence::Requisition.new.execute! { Konamio::Sequence::Requisition.new.execute! }
|
40
61
|
```
|
41
62
|
This would give you +30 lives:
|
42
|
-
```
|
63
|
+
```ruby
|
43
64
|
Konamio::Sequence::Requisition.new.execute! { 30.times { puts "+1up" } }
|
44
65
|
```
|
45
66
|
|
@@ -53,10 +74,7 @@ Konamio::Sequence::Requisition.new.execute! { 30.times { puts "+1up" } }
|
|
53
74
|
|
54
75
|
```ruby
|
55
76
|
require "konamio"
|
56
|
-
Konamio::Sequence::Requisition.new.execute!
|
77
|
+
Konamio::Sequence::Requisition.new(prompt: false, confirmation: false, cancellation: false).execute!
|
57
78
|
```
|
58
|
-
|
59
|
-
to require console users to enter the konami code, or to require some other password:
|
60
79
|
|
61
|
-
|
62
|
-
Konamio::Sequence::Requisition.new(sequence: "foobar").execute!
|
80
|
+
to require console users to enter the konami code. This funny trick obviously does not provide any real protection, but it would certainly make for a nasty practical joke.
|
data/konamio.gemspec
CHANGED
@@ -7,16 +7,17 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = Konamio::VERSION
|
8
8
|
s.authors = ["Tad Hosford"]
|
9
9
|
s.email = ["tad.hosford@gmail.com"]
|
10
|
-
s.homepage = "https://github.
|
11
|
-
s.summary = "
|
12
|
-
s.description = "
|
10
|
+
s.homepage = "https://rthbound.github.io/konamio"
|
11
|
+
s.summary = "The Ruby Konami code gem."
|
12
|
+
s.description = "Tell it which sequence to listen for and what to do when the sequence is received."
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n")
|
15
15
|
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
|
18
|
-
s.add_runtime_dependency "pay_dirt"
|
18
|
+
s.add_runtime_dependency "pay_dirt", "1.0.0"
|
19
19
|
s.add_development_dependency "minitest"
|
20
20
|
s.add_development_dependency "pry"
|
21
21
|
s.add_development_dependency "rake"
|
22
|
+
s.add_development_dependency "coveralls"
|
22
23
|
end
|
data/lib/konamio/base.rb
ADDED
data/lib/konamio/prompt.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Konamio
|
2
|
-
class Prompt <
|
2
|
+
class Prompt < Konamio::Base
|
3
3
|
def initialize(options)
|
4
4
|
options = {
|
5
5
|
output: $stdout
|
@@ -9,8 +9,8 @@ module Konamio
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def execute!
|
12
|
-
|
13
|
-
return
|
12
|
+
prompt
|
13
|
+
return Konamio::Result.new(success: true, data: { prompted: @prompt })
|
14
14
|
end
|
15
15
|
|
16
16
|
def prompt
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Konamio
|
2
2
|
module Sequence
|
3
|
-
class Listener <
|
3
|
+
class Listener < Konamio::Base
|
4
4
|
include Konamio::KeyMap
|
5
5
|
|
6
6
|
def initialize(options)
|
@@ -11,13 +11,11 @@ module Konamio
|
|
11
11
|
def execute!
|
12
12
|
case listen
|
13
13
|
when true
|
14
|
-
return
|
14
|
+
return Konamio::Result.new(success: true, data: { sequence: @sequence[1..-1]})
|
15
15
|
when false
|
16
|
-
return
|
16
|
+
return Konamio::Result.new(success: false, data: { sequence: @sequence })
|
17
17
|
when :negative
|
18
|
-
return
|
19
|
-
else
|
20
|
-
return PayDirt::Result.new(success: false, data: { sequence: @sequence })
|
18
|
+
return Konamio::Result.new(success: false, data: { sequence: :negative })
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
@@ -1,15 +1,21 @@
|
|
1
1
|
module Konamio
|
2
2
|
module Sequence
|
3
|
-
class Requisition <
|
3
|
+
class Requisition < Konamio::Base
|
4
4
|
include Konamio::KeyMap
|
5
|
+
# @param [Hash] options The group of options for the sequence requisition
|
6
|
+
# @option options [Class] :speaker (Konamio::Prompt) You could theoretically replace this with a class that responds to #new with an instance that responds to #execute! Not sure why you would.
|
7
|
+
# @option options [String] :prompt ("Enter konami code (or hit escape)") override with a falsey value to skip prompt dialog
|
8
|
+
# @option options [String] :confirmation ("Enter konami code (or hit escape)") override with a falsey value to skip confirmation dialog
|
9
|
+
# @option options [String] :cancellation ("Goodbye!") override with a falsey value to skip cancellation dialog
|
10
|
+
# @option options [Array, String] :sequence ([:up,:up,:down,:down,:left,:right,:left,:right,"B","A"])
|
5
11
|
def initialize(options={})
|
6
12
|
options = {
|
7
|
-
output: $stdout,
|
8
13
|
input: $stdin,
|
9
|
-
|
14
|
+
output: $stdout,
|
10
15
|
listener: Konamio::Sequence::Listener,
|
11
|
-
|
16
|
+
speaker: Konamio::Prompt,
|
12
17
|
prompt: "Enter konami code (or hit escape)",
|
18
|
+
sequence: [:up,:up,:down,:down,:left,:right,:left,:right,"B","A"],
|
13
19
|
confirmation: "Good job, you.",
|
14
20
|
cancellation: "Goodbye!"
|
15
21
|
}.merge(options)
|
@@ -17,23 +23,39 @@ module Konamio
|
|
17
23
|
load_options(:sequence, options)
|
18
24
|
end
|
19
25
|
|
26
|
+
# @api public
|
27
|
+
# @yieldreturn The result of a block, if supplied
|
28
|
+
# @return Konamio::Result
|
20
29
|
def execute! &block
|
21
30
|
prompt
|
31
|
+
|
22
32
|
result = listen(@sequence)
|
23
33
|
yield if block_given? && result.successful?
|
24
|
-
|
34
|
+
|
35
|
+
result
|
25
36
|
end
|
26
37
|
|
27
|
-
|
28
|
-
|
38
|
+
private
|
39
|
+
# @api private
|
40
|
+
# @param prompt
|
41
|
+
# @return [Konamio::Result] unless running silently
|
42
|
+
# @return [Boolean] false if running silently
|
43
|
+
def prompt(prompt = @prompt, speaker = @speaker)
|
44
|
+
!!prompt && speaker.new(prompt: prompt, output: @output).execute!
|
29
45
|
end
|
30
46
|
|
47
|
+
# @api private
|
48
|
+
# @param [String, Array<String,Symbol>] sequence The sequence you want to require. When providing an array, each element must be a recognized symbol or the string representation of an ascii character.
|
49
|
+
# @return [Konamio::Result]
|
31
50
|
def listen(sequence)
|
32
51
|
listener = @listener.new(sequence: sequence, input: @input)
|
33
52
|
received = listener.execute!
|
34
53
|
signal = received.data[:sequence]
|
35
54
|
|
36
|
-
|
55
|
+
if signal.empty?
|
56
|
+
prompt(@confirmation)
|
57
|
+
return result true, data: { confirmation: @confirmation }
|
58
|
+
end
|
37
59
|
|
38
60
|
case signal
|
39
61
|
when :negative
|
@@ -43,28 +65,17 @@ module Konamio
|
|
43
65
|
prompt
|
44
66
|
listen(@sequence)
|
45
67
|
when sequence[1..-1]
|
46
|
-
listen
|
47
|
-
else
|
48
|
-
result(false, data: { confirmation: "Unexpected termination" })
|
68
|
+
listen signal
|
49
69
|
end
|
50
|
-
#if received.successful?
|
51
|
-
# if received.data[:sequence].empty?
|
52
|
-
# prompt(@confirmation)
|
53
|
-
# result(true, data: { confirmation: @confirmation })
|
54
|
-
# else
|
55
|
-
# listen(received.data[:sequence])
|
56
|
-
# end
|
57
|
-
#elsif received.data[:terminate]
|
58
|
-
# prompt("Goodbye!")
|
59
|
-
# result(false, data: { confirmation: :negative })
|
60
|
-
#else
|
61
|
-
# prompt
|
62
|
-
# listen(@sequence)
|
63
|
-
#end
|
64
70
|
end
|
65
71
|
|
72
|
+
# @api private
|
73
|
+
# @param [Boolean] success whether the expected sequence was received.
|
74
|
+
# @param [Hash] ({}) data
|
75
|
+
# @option data [String, Boolean] :confirmation A message about how the program exited.
|
76
|
+
# @return [Konamio::Result]
|
66
77
|
def result(success, data={})
|
67
|
-
|
78
|
+
Konamio::Result.new(success: success, data: data)
|
68
79
|
end
|
69
80
|
end
|
70
81
|
end
|
data/lib/konamio/version.rb
CHANGED
data/lib/konamio.rb
CHANGED
@@ -27,4 +27,12 @@ describe Konamio::Sequence::Listener do
|
|
27
27
|
assert @input.verify
|
28
28
|
assert !result.successful?
|
29
29
|
end
|
30
|
+
|
31
|
+
it "lets you escape" do
|
32
|
+
@input.expect(:getch, "\e")
|
33
|
+
@input.expect(:getch, "")
|
34
|
+
@input.expect(:getch, "")
|
35
|
+
result = @subject.new(sequence: @sequence, input: @input).execute!
|
36
|
+
assert !result.successful?
|
37
|
+
end
|
30
38
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "minitest_helper"
|
2
|
+
|
3
|
+
describe Konamio::Sequence::Requisition do
|
4
|
+
before do
|
5
|
+
@subject = Konamio::Sequence::Requisition
|
6
|
+
@options = {
|
7
|
+
input: @input = MiniTest::Mock.new,
|
8
|
+
output: @output = MiniTest::Mock.new,
|
9
|
+
prompt: @prompt = false,
|
10
|
+
listener: @listener = MiniTest::Mock.new,
|
11
|
+
speaker: @speaker = MiniTest::Mock.new,
|
12
|
+
sequence: @sequence = ["a"],
|
13
|
+
confirmation: @confirmation = false,
|
14
|
+
cancellation: false
|
15
|
+
}
|
16
|
+
|
17
|
+
# We will call new on @listener and return
|
18
|
+
@listener_instance = MiniTest::Mock.new
|
19
|
+
@listener.expect(:new, @listener_instance, [{ sequence: @sequence, input: @input }])
|
20
|
+
|
21
|
+
# We will call execute! on the @listener_instance and return
|
22
|
+
@listener_result = MiniTest::Mock.new
|
23
|
+
@listener_instance.expect(:execute!, @listener_result)
|
24
|
+
|
25
|
+
# The @listener_result contains some data
|
26
|
+
@data_hash = MiniTest::Mock.new
|
27
|
+
@listener_result.expect(:data, @data_hash)
|
28
|
+
@data_hash.expect(:[], :negative, [:sequence])
|
29
|
+
end
|
30
|
+
|
31
|
+
it "can be initialized" do
|
32
|
+
@subject.must_respond_to :new
|
33
|
+
end
|
34
|
+
|
35
|
+
it "must execute" do
|
36
|
+
@subject.new(@options).must_respond_to :execute!
|
37
|
+
end
|
38
|
+
|
39
|
+
it "can be cancelled" do
|
40
|
+
assert !@subject.new(@options).execute!.successful?
|
41
|
+
end
|
42
|
+
end
|
@@ -16,16 +16,24 @@ describe Konamio::Sequence::Requisition do
|
|
16
16
|
@speaker_instance = MiniTest::Mock.new
|
17
17
|
@speaker_result = MiniTest::Mock.new
|
18
18
|
@speaker_instance.expect(:execute!, @speaker_result)
|
19
|
+
@speaker_instance.expect(:execute!, @speaker_result)
|
19
20
|
|
20
21
|
@listener_instance = MiniTest::Mock.new
|
21
22
|
@listener_result = MiniTest::Mock.new
|
22
23
|
@listener_instance.expect(:execute!, @listener_result)
|
24
|
+
@listener_instance.expect(:execute!, @listener_result)
|
25
|
+
|
26
|
+
@speaker.expect(:new, @speaker_instance, [{ prompt: @prompt, output: @output }])
|
27
|
+
@listener.expect(:new, @listener_instance, [{ sequence: @sequence, input: @input }])
|
28
|
+
@data_hash = MiniTest::Mock.new
|
29
|
+
@listener_result.expect(:data, @data_hash)
|
30
|
+
@data_hash.expect(:[], ["a"], [:sequence])
|
23
31
|
|
24
32
|
@speaker.expect(:new, @speaker_instance, [{ prompt: @prompt, output: @output }])
|
25
33
|
@listener.expect(:new, @listener_instance, [{ sequence: @sequence, input: @input }])
|
26
34
|
@data_hash = MiniTest::Mock.new
|
27
35
|
@listener_result.expect(:data, @data_hash)
|
28
|
-
@data_hash.expect(:[],
|
36
|
+
@data_hash.expect(:[], [], [:sequence])
|
29
37
|
|
30
38
|
@speaker_confirmation_instance = MiniTest::Mock.new
|
31
39
|
@speaker_confirmation_result = MiniTest::Mock.new
|
data/test/minitest_helper.rb
CHANGED
metadata
CHANGED
@@ -1,81 +1,87 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konamio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tad Hosford
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-06-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: pay_dirt
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 1.0.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: 1.0.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: minitest
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: pry
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coveralls
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
68
74
|
- !ruby/object:Gem::Version
|
69
75
|
version: '0'
|
70
76
|
type: :development
|
71
77
|
prerelease: false
|
72
78
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
79
|
requirements:
|
75
|
-
- -
|
80
|
+
- - '>='
|
76
81
|
- !ruby/object:Gem::Version
|
77
82
|
version: '0'
|
78
|
-
description:
|
83
|
+
description: Tell it which sequence to listen for and what to do when the sequence
|
84
|
+
is received.
|
79
85
|
email:
|
80
86
|
- tad.hosford@gmail.com
|
81
87
|
executables: []
|
@@ -83,50 +89,47 @@ extensions: []
|
|
83
89
|
extra_rdoc_files: []
|
84
90
|
files:
|
85
91
|
- .gitignore
|
92
|
+
- .travis.yml
|
86
93
|
- Gemfile
|
87
94
|
- MIT-LICENSE
|
88
95
|
- README.md
|
89
96
|
- Rakefile
|
90
97
|
- konamio.gemspec
|
91
98
|
- lib/konamio.rb
|
99
|
+
- lib/konamio/base.rb
|
92
100
|
- lib/konamio/key_map.rb
|
93
101
|
- lib/konamio/prompt.rb
|
102
|
+
- lib/konamio/result.rb
|
94
103
|
- lib/konamio/sequence/listener.rb
|
95
104
|
- lib/konamio/sequence/requisition.rb
|
96
105
|
- lib/konamio/version.rb
|
97
106
|
- test/konamio/key_map_test.rb
|
98
107
|
- test/konamio/prompt_test.rb
|
99
108
|
- test/konamio/sequence/listener_test.rb
|
109
|
+
- test/konamio/sequence/requisition_cancelled_test.rb
|
100
110
|
- test/konamio/sequence/requisition_test.rb
|
101
111
|
- test/minitest_helper.rb
|
102
|
-
homepage: https://github.
|
112
|
+
homepage: https://rthbound.github.io/konamio
|
103
113
|
licenses: []
|
114
|
+
metadata: {}
|
104
115
|
post_install_message:
|
105
116
|
rdoc_options: []
|
106
117
|
require_paths:
|
107
118
|
- lib
|
108
119
|
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
120
|
requirements:
|
111
|
-
- -
|
121
|
+
- - '>='
|
112
122
|
- !ruby/object:Gem::Version
|
113
123
|
version: '0'
|
114
|
-
segments:
|
115
|
-
- 0
|
116
|
-
hash: -728235217
|
117
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
-
none: false
|
119
125
|
requirements:
|
120
|
-
- -
|
126
|
+
- - '>='
|
121
127
|
- !ruby/object:Gem::Version
|
122
128
|
version: '0'
|
123
|
-
segments:
|
124
|
-
- 0
|
125
|
-
hash: -728235217
|
126
129
|
requirements: []
|
127
130
|
rubyforge_project:
|
128
|
-
rubygems_version:
|
131
|
+
rubygems_version: 2.0.3
|
129
132
|
signing_key:
|
130
|
-
specification_version:
|
131
|
-
summary:
|
133
|
+
specification_version: 4
|
134
|
+
summary: The Ruby Konami code gem.
|
132
135
|
test_files: []
|