room 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,6 +3,8 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
+ gem "highline"
7
+
6
8
  # Add dependencies to develop your gem here.
7
9
  # Include everything needed to run rake, tests, features, etc.
8
10
  group :development do
data/Gemfile.lock CHANGED
@@ -2,6 +2,7 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  git (1.2.5)
5
+ highline (1.6.1)
5
6
  jeweler (1.5.2)
6
7
  bundler (~> 1.0.0)
7
8
  git (>= 1.2.5)
@@ -13,4 +14,5 @@ PLATFORMS
13
14
 
14
15
  DEPENDENCIES
15
16
  bundler (~> 1.0.0)
17
+ highline
16
18
  jeweler (~> 1.5.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
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
- while line = Readline.readline('> ', true)
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
- unknown_command
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
- unknown_command
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
- unknown_command
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
- unknown_command
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.count
7
+ old_count = Room.rooms.keys.length
9
8
  load FILENAME
10
- Room.rooms.keys.count - old_count
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 unknown_command(action)
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 unknown_command action = nil
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.0"
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.4.2}
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: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
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
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- version_requirements: &id002 !ruby/object:Gem::Requirement
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.4.2
116
+ rubygems_version: 1.6.2
103
117
  signing_key:
104
118
  specification_version: 3
105
119
  summary: the game is making the game