room 0.1.0 → 0.1.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.
- data/Gemfile +2 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/bin/room +9 -1
- data/examples/example1.rb +9 -4
- data/lib/room.rb +16 -9
- data/room.gemspec +5 -2
- metadata +24 -10
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/room
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
require "rubygems"
|
4
4
|
require "optparse"
|
5
|
+
require "readline"
|
6
|
+
require "highline"
|
5
7
|
|
6
8
|
# for testing inside gem dir
|
7
9
|
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
@@ -28,7 +30,13 @@ reload!
|
|
28
30
|
3.times { Printer.puts }
|
29
31
|
|
30
32
|
Room.do "look"
|
31
|
-
|
33
|
+
loop do
|
34
|
+
line = if $secretive
|
35
|
+
$secretive = false
|
36
|
+
HighLine.new.ask("> ") { |q| q.echo = false }
|
37
|
+
else
|
38
|
+
Readline.readline("> ", true)
|
39
|
+
end
|
32
40
|
Room.do line.chomp
|
33
41
|
end
|
34
42
|
|
data/examples/example1.rb
CHANGED
@@ -97,7 +97,7 @@ class Bedroom < Room
|
|
97
97
|
lose :pencil
|
98
98
|
"You whittle the pencil to nothing."
|
99
99
|
else
|
100
|
-
|
100
|
+
huh?
|
101
101
|
end
|
102
102
|
end
|
103
103
|
dup :sharpen_the_pencil
|
@@ -106,7 +106,7 @@ class Bedroom < Room
|
|
106
106
|
if have? :pencil
|
107
107
|
"That's a mighty fine pencil sharpener. Red."
|
108
108
|
else
|
109
|
-
|
109
|
+
huh?
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
@@ -117,7 +117,7 @@ class Bedroom < Room
|
|
117
117
|
"hurtling down a snow-covered slope at break-neck speed!" |
|
118
118
|
go("skiing1")
|
119
119
|
else
|
120
|
-
|
120
|
+
huh?
|
121
121
|
end
|
122
122
|
end
|
123
123
|
dup :jump_into_the_chute
|
@@ -139,6 +139,10 @@ class Closet < Room
|
|
139
139
|
end)
|
140
140
|
end
|
141
141
|
|
142
|
+
def stub_toe
|
143
|
+
"You already did that!"
|
144
|
+
end
|
145
|
+
|
142
146
|
def open_door
|
143
147
|
"The door won't budge."
|
144
148
|
end
|
@@ -146,7 +150,7 @@ class Closet < Room
|
|
146
150
|
|
147
151
|
def look_pencil
|
148
152
|
if @got_pencil
|
149
|
-
|
153
|
+
huh?
|
150
154
|
else
|
151
155
|
"It's too dark to see, so you settle for stubbing your" |
|
152
156
|
"foot on it again. Definitely a No. 3 pencil." |
|
@@ -163,6 +167,7 @@ class Closet < Room
|
|
163
167
|
"Awesome, a pencil! You place the pencil in your pocket."
|
164
168
|
end
|
165
169
|
end
|
170
|
+
dup :get_the_pencil
|
166
171
|
|
167
172
|
def exit
|
168
173
|
"You somehow manage to leave the closet." |
|
data/lib/room.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
|
2
2
|
require "thread"
|
3
|
-
require "readline"
|
4
3
|
|
5
4
|
def reload!
|
6
5
|
$commands = {}
|
7
6
|
|
8
|
-
old_count = Room.rooms.keys.
|
7
|
+
old_count = Room.rooms.keys.length
|
9
8
|
load FILENAME
|
10
|
-
Room.rooms.keys.
|
9
|
+
Room.rooms.keys.length - old_count
|
11
10
|
end
|
12
11
|
|
13
12
|
class String
|
@@ -41,6 +40,10 @@ class Room
|
|
41
40
|
Room.go key
|
42
41
|
end
|
43
42
|
|
43
|
+
def be_secretive
|
44
|
+
$secretive = true
|
45
|
+
end
|
46
|
+
|
44
47
|
def inventory
|
45
48
|
$inventory ||= []
|
46
49
|
end
|
@@ -60,24 +63,28 @@ class Room
|
|
60
63
|
def do action
|
61
64
|
Printer.puts
|
62
65
|
if action.strip == ""
|
63
|
-
elsif (r = self.class.commands.detect { |c, m| c =~ action })
|
64
|
-
command, method = r
|
65
|
-
args = command.match(action).to_a.drop(1)
|
66
|
-
Printer.puts self.send(method, *args).to_s.rstrip
|
67
66
|
elsif action == "reload!"
|
68
67
|
d = reload!
|
69
68
|
Printer.puts "A great wave of relief washes over you."
|
70
69
|
Printer.puts "The world seems larger by about #{d}." if d > 0
|
70
|
+
elsif (r = self.class.commands.detect { |c, m| c =~ action })
|
71
|
+
command, method = r
|
72
|
+
args = command.match(action).to_a.drop(1)
|
73
|
+
Printer.puts self.send(method, *args).to_s.rstrip
|
71
74
|
else
|
72
|
-
Printer.puts
|
75
|
+
Printer.puts huh?(action)
|
73
76
|
end
|
74
77
|
end
|
75
78
|
|
79
|
+
def immediate *text
|
80
|
+
Printer.puts *text
|
81
|
+
end
|
82
|
+
|
76
83
|
def look
|
77
84
|
"A nondescript room."
|
78
85
|
end
|
79
86
|
|
80
|
-
def
|
87
|
+
def huh? action = nil
|
81
88
|
"I don't understand."
|
82
89
|
end
|
83
90
|
|
data/room.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{room}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tom Lieber"]
|
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
]
|
32
32
|
s.homepage = %q{http://github.com/alltom/room}
|
33
33
|
s.require_paths = ["lib"]
|
34
|
-
s.rubygems_version = %q{1.
|
34
|
+
s.rubygems_version = %q{1.6.2}
|
35
35
|
s.summary = %q{the game is making the game}
|
36
36
|
s.test_files = [
|
37
37
|
"examples/example1.rb"
|
@@ -41,13 +41,16 @@ Gem::Specification.new do |s|
|
|
41
41
|
s.specification_version = 3
|
42
42
|
|
43
43
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
44
|
+
s.add_runtime_dependency(%q<highline>, [">= 0"])
|
44
45
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
45
46
|
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
46
47
|
else
|
48
|
+
s.add_dependency(%q<highline>, [">= 0"])
|
47
49
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
48
50
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
49
51
|
end
|
50
52
|
else
|
53
|
+
s.add_dependency(%q<highline>, [">= 0"])
|
51
54
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
52
55
|
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
53
56
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: room
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tom Lieber
|
@@ -19,7 +19,21 @@ date: 2011-03-17 00:00:00 -07:00
|
|
19
19
|
default_executable: room
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
hash: 3
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
name: highline
|
32
|
+
version_requirements: *id001
|
33
|
+
prerelease: false
|
34
|
+
type: :runtime
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
23
37
|
none: false
|
24
38
|
requirements:
|
25
39
|
- - ~>
|
@@ -30,12 +44,12 @@ dependencies:
|
|
30
44
|
- 0
|
31
45
|
- 0
|
32
46
|
version: 1.0.0
|
33
|
-
requirement: *id001
|
34
|
-
prerelease: false
|
35
47
|
name: bundler
|
48
|
+
version_requirements: *id002
|
49
|
+
prerelease: false
|
36
50
|
type: :development
|
37
51
|
- !ruby/object:Gem::Dependency
|
38
|
-
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
53
|
none: false
|
40
54
|
requirements:
|
41
55
|
- - ~>
|
@@ -46,9 +60,9 @@ dependencies:
|
|
46
60
|
- 5
|
47
61
|
- 2
|
48
62
|
version: 1.5.2
|
49
|
-
requirement: *id002
|
50
|
-
prerelease: false
|
51
63
|
name: jeweler
|
64
|
+
version_requirements: *id003
|
65
|
+
prerelease: false
|
52
66
|
type: :development
|
53
67
|
description: the game is making the game
|
54
68
|
email: tom@alltom.com
|
@@ -99,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
113
|
requirements: []
|
100
114
|
|
101
115
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.
|
116
|
+
rubygems_version: 1.6.2
|
103
117
|
signing_key:
|
104
118
|
specification_version: 3
|
105
119
|
summary: the game is making the game
|