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 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