greenletters 0.2.0 → 0.3.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.
@@ -1,3 +1,6 @@
1
+ == 0.3.0 / 2012-12-28
2
+ * Now works properly with MRI 1.9.2
3
+
1
4
  == 0.0.1 / 2010-07-19
2
5
 
3
6
  * 1 major enhancement
data/README.org CHANGED
@@ -77,7 +77,7 @@ Or, in Cucumber format:
77
77
  pseudoterminal under Ruby's control. Of course, this means that it is
78
78
  MacOSX/Linux/*NIX-only; Windows users need not apply.
79
79
 
80
- The advantage of using a PTY is that *any* output - inclding output written to
80
+ The advantage of using a PTY is that *any* output - including output written to
81
81
  the console instead of STDOUT/STDERR - will be captured by Greenletters.
82
82
 
83
83
  * Cucumber
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "greenletters"
5
- s.version = "0.2.0"
5
+ s.version = "0.3.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Avdi Grimm"]
9
- s.date = "2012-07-31"
9
+ s.date = "2012-12-28"
10
10
  s.description = " Greenletterrs is a console automation framework, similar to the classic\n utility Expect. You give it a command to execute, and tell it which outputs\n or events to expect and how to respond to them.\n\n Greenletters also includes a set of Cucumber steps which simplify the task\n of spcifying interactive command-line applications.\n"
11
11
  s.email = "avdi@avdi.org"
12
12
  s.executables = ["greenletters"]
13
13
  s.extra_rdoc_files = ["History.txt", "bin/greenletters"]
14
- s.files = [".gitignore", "Gemfile", "Gemfile.lock", "History.txt", "README.org", "Rakefile", "bin/greenletters", "examples/adventure.rb", "examples/cucumber/adventure.feature", "examples/cucumber/greenletters.log", "examples/cucumber/support/env.rb", "examples/greenletters.log", "greenletters.gemspec", "lib/greenletters.rb", "lib/greenletters/cucumber_steps.rb", "script/console", "spec/greenletters_spec.rb", "spec/spec_helper.rb", "version.txt"]
14
+ s.files = [".gitignore", "Gemfile", "Gemfile.lock", "History.txt", "README.org", "Rakefile", "bin/greenletters", "examples/adventure.rb", "examples/cucumber/adventure.feature", "examples/cucumber/support/env.rb", "greenletters.gemspec", "lib/greenletters.rb", "lib/greenletters/cucumber_steps.rb", "script/console", "spec/greenletters_spec.rb", "spec/spec_helper.rb", "version.txt"]
15
15
  s.homepage = "http://github.com/avdi/greenletters"
16
16
  s.rdoc_options = ["--main", "README.org"]
17
17
  s.require_paths = ["lib"]
@@ -324,6 +324,10 @@ module Greenletters
324
324
  }
325
325
  @history = TranscriptHistoryBuffer.new(@transcript)
326
326
  @timeout = options.fetch(:timeout) { DEFAULT_TIMEOUT }
327
+
328
+ ObjectSpace.define_finalizer(self) do
329
+ kill!
330
+ end
327
331
  end
328
332
 
329
333
  def on(event, *args, &block)
@@ -397,6 +401,7 @@ module Greenletters
397
401
 
398
402
  def kill!(signal="TERM")
399
403
  handle_child_exit do
404
+ @logger.info "Killing process #{@pid}"
400
405
  ::Process.kill(signal, @pid)
401
406
  end
402
407
  end
@@ -516,6 +521,7 @@ module Greenletters
516
521
  # Soon we should get a PTY::ChildExited
517
522
  while running? || ended?
518
523
  @logger.debug "waiting for child #{@pid} to die"
524
+ PTY.check(@pid, true) if PTY.respond_to? :check
519
525
  sleep 0.1
520
526
  end
521
527
  end
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greenletters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-31 00:00:00.000000000 Z
12
+ date: 2012-12-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bones
16
- requirement: &28211160 !ruby/object:Gem::Requirement
16
+ requirement: &16153060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 3.8.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *28211160
24
+ version_requirements: *16153060
25
25
  description: ! " Greenletterrs is a console automation framework, similar to the
26
26
  classic\n utility Expect. You give it a command to execute, and tell it which
27
27
  outputs\n or events to expect and how to respond to them.\n\n Greenletters
@@ -44,9 +44,7 @@ files:
44
44
  - bin/greenletters
45
45
  - examples/adventure.rb
46
46
  - examples/cucumber/adventure.feature
47
- - examples/cucumber/greenletters.log
48
47
  - examples/cucumber/support/env.rb
49
- - examples/greenletters.log
50
48
  - greenletters.gemspec
51
49
  - lib/greenletters.rb
52
50
  - lib/greenletters/cucumber_steps.rb
@@ -1,266 +0,0 @@
1
- D, [2010-07-31T07:37:35.732465 #16613] DEBUG -- : added trigger on output matching /Would\s+you\s+like\s+instructions\?/
2
- D, [2010-07-31T07:37:35.732612 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against ""
3
- D, [2010-07-31T07:37:35.732694 #16613] DEBUG -- : no match
4
- D, [2010-07-31T07:37:35.734485 #16613] DEBUG -- : added trigger on output matching /Do\s+you\s+really\s+want\s+to\s+quit/
5
- D, [2010-07-31T07:37:35.734645 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against ""
6
- D, [2010-07-31T07:37:35.734770 #16613] DEBUG -- : no match
7
- D, [2010-07-31T07:37:35.737143 #16613] DEBUG -- : installing end marker handler for __GREENLETTERS_PROCESS_ENDED__
8
- D, [2010-07-31T07:37:35.737434 #16613] DEBUG -- : prepended trigger on output matching /__GREENLETTERS_PROCESS_ENDED__/
9
- D, [2010-07-31T07:37:35.737642 #16613] DEBUG -- : executing /usr/bin/ruby1.8 -C /home/avdi/dev/greenletters/examples -e system(*["adventure"]) -e puts("__GREENLETTERS_PROCESS_ENDED__") -e gets -e exit $?.exitstatus
10
- D, [2010-07-31T07:37:35.738178 #16613] DEBUG -- : command environment:
11
- {"LIBGL_DRIVERS_PATH"=>"/usr/lib/fglrx/dri:/usr/lib32/fglrx/dri", "GDM_LANG"=>"en_US.utf8", "LANGUAGE"=>"", "KONSOLE_DBUS_SERVICE"=>":1.25", "LOGNAME"=>"avdi", "GTK_MODULES"=>"canberra-gtk-module", "DBUS_SESSION_BUS_ADDRESS"=>"unix:abstract=/tmp/dbus-yzwJzQz2K2,guid=6bd7f6db661aa3d4c38b7d944c53873f", "SPEECHD_PORT"=>"7560", "PATH"=>"/home/avdi/bin:/home/avdi/share/bin:/home/avdi/.gem/ruby/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games", "USER"=>"avdi", "GNOME_KEYRING_PID"=>"2057", "LANG"=>"en_US.utf8", "DEFAULTS_PATH"=>"/usr/share/gconf/gnome.default.path", "WINDOWID"=>"46137398", "XDG_CONFIG_DIRS"=>"/etc/xdg/xdg-gnome:/etc/xdg", "ORBIT_SOCKETDIR"=>"/tmp/orbit-avdi", "XDG_DATA_DIRS"=>"/usr/share/gnome:/usr/local/share/:/usr/share/", "GNOME_DESKTOP_SESSION_ID"=>"this-is-deprecated", "DISPLAY"=>":0.0", "PWD"=>"/home/avdi/dev/greenletters/examples", "GDMSESSION"=>"gnome", "GDM_KEYBOARD_LAYOUT"=>"us", "COLORFGBG"=>"15;0", "XAUTHORITY"=>"/var/run/gdm/auth-for-avdi-pwU0Bi/database", "SSH_AGENT_PID"=>"2116", "XDG_SESSION_COOKIE"=>"95da948d870c084a39cf95e74bcf1d12-1280542527.346178-1033032164", "TERM"=>"xterm", "PROFILEHOME"=>"", "SESSION_MANAGER"=>"local/petronius:@/tmp/.ICE-unix/2075,unix/petronius:/tmp/.ICE-unix/2075", "DESKTOP_AUTOSTART_ID"=>"109b01964624068715128054252796155900000020750004", "SSH_AUTH_SOCK"=>"/tmp/keyring-eGT6zq/ssh", "KONSOLE_DBUS_SESSION"=>"/Sessions/2", "GNOME_KEYRING_CONTROL"=>"/tmp/keyring-eGT6zq", "DESKTOP_SESSION"=>"gnome", "USERNAME"=>"avdi", "MANDATORY_PATH"=>"/usr/share/gconf/gnome.mandatory.path", "HOME"=>"/home/avdi", "GPG_AGENT_INFO"=>"/tmp/gpg-AW2u0g/S.gpg-agent:2117:1", "SHELL"=>"/bin/zsh", "SHLVL"=>"1", "OLDPWD"=>"/home/avdi/dev/greenletters", "EDITOR"=>"/home/avdi/share/bin/emacs-newwindow", "GEM_EDITOR"=>"/home/avdi/share/bin/emacs-newwindow", "ZSH"=>"/home/avdi/.oh-my-zsh", "ZSH_THEME"=>"robbyrussell", "LSCOLORS"=>"Gxfxcxdxbxegedabagacad", "GREP_OPTIONS"=>"--color=auto", "GREP_COLOR"=>"1;32", "PAGER"=>"less", "LC_CTYPE"=>"en_US.UTF-8", "rvm_path"=>"/home/avdi/.rvm", "rvm_rubies_path"=>"/home/avdi/.rvm/rubies", "rvm_scripts_path"=>"/home/avdi/.rvm/scripts", "rvm_archives_path"=>"/home/avdi/.rvm/archives", "rvm_src_path"=>"/home/avdi/.rvm/src", "rvm_log_path"=>"/home/avdi/.rvm/log", "rvm_bin_path"=>"/home/avdi/.rvm/bin", "rvm_gems_path"=>"/home/avdi/.rvm/gems", "rvm_config_path"=>"/home/avdi/.rvm/config", "rvm_tmp_path"=>"/home/avdi/.rvm/tmp", "rvm_hooks_path"=>"/home/avdi/.rvm/hooks", "rvm_gems_cache_path"=>"/home/avdi/.rvm/gems/cache", "rvm_gemset_separator"=>"@", "rvm_version"=>"0.1.28", "_"=>"/home/avdi/.gem/ruby/1.8/bin/cucumber"}
12
- D, [2010-07-31T07:37:35.753426 #16613] DEBUG -- : spawned pid 16618
13
- D, [2010-07-31T07:37:35.756271 #16613] DEBUG -- : added trigger on output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
14
- D, [2010-07-31T07:37:35.756524 #16613] DEBUG -- : waiting for output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
15
- D, [2010-07-31T07:37:35.756700 #16613] DEBUG -- : matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./ against ""
16
- D, [2010-07-31T07:37:35.756833 #16613] DEBUG -- : no match
17
- D, [2010-07-31T07:37:35.756988 #16613] DEBUG -- : select()
18
- D, [2010-07-31T07:37:35.757249 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
19
- D, [2010-07-31T07:37:35.757442 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
20
- D, [2010-07-31T07:37:35.757708 #16613] DEBUG -- :
21
- <<
22
- << Welcome to Adventure!! Would you like instructions?
23
- D, [2010-07-31T07:37:35.757859 #16613] DEBUG -- : read 56 bytes
24
- D, [2010-07-31T07:37:35.758074 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
25
- D, [2010-07-31T07:37:35.758246 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nWelcome to Adventure!! Would you like instructions?\r\n"
26
- D, [2010-07-31T07:37:35.758396 #16613] DEBUG -- : no match
27
- D, [2010-07-31T07:37:35.758531 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
28
- D, [2010-07-31T07:37:35.758685 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nWelcome to Adventure!! Would you like instructions?\r\n"
29
- D, [2010-07-31T07:37:35.758838 #16613] DEBUG -- : matched /Would\s+you\s+like\s+instructions\?/
30
- D, [2010-07-31T07:37:35.759027 #16613] DEBUG -- : match trigger output matching /Would\s+you\s+like\s+instructions\?/
31
- D, [2010-07-31T07:37:35.759189 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
32
- D, [2010-07-31T07:37:35.759330 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\n"
33
- D, [2010-07-31T07:37:35.759459 #16613] DEBUG -- : no match
34
- D, [2010-07-31T07:37:35.759614 #16613] DEBUG -- : checking output against output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
35
- D, [2010-07-31T07:37:35.759762 #16613] DEBUG -- : matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./ against "\r\n"
36
- D, [2010-07-31T07:37:35.759890 #16613] DEBUG -- : no match
37
- D, [2010-07-31T07:37:35.760033 #16613] DEBUG -- : select()
38
- D, [2010-07-31T07:37:35.760244 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
39
- D, [2010-07-31T07:37:35.760485 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
40
- D, [2010-07-31T07:37:35.760685 #16613] DEBUG -- :
41
- >> no
42
- D, [2010-07-31T07:37:35.760825 #16613] DEBUG -- : wrote 3 bytes
43
- D, [2010-07-31T07:37:35.760958 #16613] DEBUG -- : select()
44
- D, [2010-07-31T07:37:35.761134 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
45
- D, [2010-07-31T07:37:35.780392 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
46
- D, [2010-07-31T07:37:35.780589 #16613] DEBUG -- :
47
- << no
48
- <<
49
- << You are standing at the end of a road before a small brick building.
50
- << Around you is a forest. A small stream flows out of the building and
51
- << down a gully.
52
- D, [2010-07-31T07:37:35.780668 #16613] DEBUG -- : read 162 bytes
53
- D, [2010-07-31T07:37:35.780785 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
54
- D, [2010-07-31T07:37:35.780890 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
55
- D, [2010-07-31T07:37:35.781057 #16613] DEBUG -- : no match
56
- D, [2010-07-31T07:37:35.781203 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
57
- D, [2010-07-31T07:37:35.781356 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
58
- D, [2010-07-31T07:37:35.781478 #16613] DEBUG -- : no match
59
- D, [2010-07-31T07:37:35.781590 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
60
- D, [2010-07-31T07:37:35.781747 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
61
- D, [2010-07-31T07:37:35.781878 #16613] DEBUG -- : no match
62
- D, [2010-07-31T07:37:35.782025 #16613] DEBUG -- : checking output against output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
63
- D, [2010-07-31T07:37:35.782197 #16613] DEBUG -- : matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./ against "\r\nno\r\n\r\nYou are standing at the end of a road before a small brick building.\r\nAround you is a forest. A small stream flows out of the building and\r\ndown a gully.\r\n"
64
- D, [2010-07-31T07:37:35.782368 #16613] DEBUG -- : matched /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
65
- D, [2010-07-31T07:37:35.782489 #16613] DEBUG -- : match trigger output matching /You\s+are\s+standing\s+at\s+the\s+end\s+of\s+a\s+road\s+before\s+a\s+small\s+brick\s+building\.\s+Around\s+you\s+is\s+a\s+forest\.\s+A\s+small\s+stream\s+flows\s+out\s+of\s+the\s+building\s+and\s+down\s+a\s+gully\./
66
- D, [2010-07-31T07:37:35.782572 #16613] DEBUG -- : unblocked
67
- D, [2010-07-31T07:37:35.782654 #16613] DEBUG -- : trigger removed
68
- D, [2010-07-31T07:37:35.785517 #16613] DEBUG -- : added trigger on output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
69
- D, [2010-07-31T07:37:35.785600 #16613] DEBUG -- : waiting for output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
70
- D, [2010-07-31T07:37:35.785667 #16613] DEBUG -- : matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./ against "\r\n"
71
- D, [2010-07-31T07:37:35.785719 #16613] DEBUG -- : no match
72
- D, [2010-07-31T07:37:35.785776 #16613] DEBUG -- : select()
73
- D, [2010-07-31T07:37:35.785875 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
74
- D, [2010-07-31T07:37:35.785960 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
75
- D, [2010-07-31T07:37:35.786052 #16613] DEBUG -- :
76
- >> east
77
- D, [2010-07-31T07:37:35.786108 #16613] DEBUG -- : wrote 5 bytes
78
- D, [2010-07-31T07:37:35.786157 #16613] DEBUG -- : select()
79
- D, [2010-07-31T07:37:35.786234 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
80
- D, [2010-07-31T07:37:35.800435 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
81
- D, [2010-07-31T07:37:35.800788 #16613] DEBUG -- :
82
- << east
83
- <<
84
- << You are inside a building, a well house for a large spring.
85
- <<
86
- << There are some keys on the ground here.
87
- <<
88
- << There is a shiny brass lamp nearby.
89
- <<
90
- << There is food here.
91
- <<
92
- << There is a bottle of water here.
93
- D, [2010-07-31T07:37:35.800945 #16613] DEBUG -- : read 210 bytes
94
- D, [2010-07-31T07:37:35.801086 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
95
- D, [2010-07-31T07:37:35.801204 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
96
- D, [2010-07-31T07:37:35.801285 #16613] DEBUG -- : no match
97
- D, [2010-07-31T07:37:35.801373 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
98
- D, [2010-07-31T07:37:35.801484 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
99
- D, [2010-07-31T07:37:35.801563 #16613] DEBUG -- : no match
100
- D, [2010-07-31T07:37:35.801645 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
101
- D, [2010-07-31T07:37:35.801756 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
102
- D, [2010-07-31T07:37:35.801835 #16613] DEBUG -- : no match
103
- D, [2010-07-31T07:37:35.801917 #16613] DEBUG -- : checking output against output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
104
- D, [2010-07-31T07:37:35.802020 #16613] DEBUG -- : matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./ against "\r\neast\r\n\r\nYou are inside a building, a well house for a large spring.\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
105
- D, [2010-07-31T07:37:35.802119 #16613] DEBUG -- : matched /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
106
- D, [2010-07-31T07:37:35.802212 #16613] DEBUG -- : match trigger output matching /You\s+are\s+inside\s+a\s+building,\s+a\s+well\s+house\s+for\s+a\s+large\s+spring\./
107
- D, [2010-07-31T07:37:35.802288 #16613] DEBUG -- : unblocked
108
- D, [2010-07-31T07:37:35.802369 #16613] DEBUG -- : trigger removed
109
- D, [2010-07-31T07:37:35.805831 #16613] DEBUG -- : added trigger on output matching /You're\s+at\s+end\s+of\s+road\s+again\./
110
- D, [2010-07-31T07:37:35.805956 #16613] DEBUG -- : waiting for output matching /You're\s+at\s+end\s+of\s+road\s+again\./
111
- D, [2010-07-31T07:37:35.806066 #16613] DEBUG -- : matching /You're\s+at\s+end\s+of\s+road\s+again\./ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\n"
112
- D, [2010-07-31T07:37:35.806152 #16613] DEBUG -- : no match
113
- D, [2010-07-31T07:37:35.806244 #16613] DEBUG -- : select()
114
- D, [2010-07-31T07:37:35.806388 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
115
- D, [2010-07-31T07:37:35.806504 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
116
- D, [2010-07-31T07:37:35.806638 #16613] DEBUG -- :
117
- >> west
118
- D, [2010-07-31T07:37:35.806723 #16613] DEBUG -- : wrote 5 bytes
119
- D, [2010-07-31T07:37:35.806805 #16613] DEBUG -- : select()
120
- D, [2010-07-31T07:37:35.806935 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
121
- D, [2010-07-31T07:37:35.813204 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
122
- D, [2010-07-31T07:37:35.813825 #16613] DEBUG -- :
123
- << west
124
- <<
125
- << You're at end of road again.
126
- D, [2010-07-31T07:37:35.813915 #16613] DEBUG -- : read 38 bytes
127
- D, [2010-07-31T07:37:35.813997 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
128
- D, [2010-07-31T07:37:35.814065 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
129
- D, [2010-07-31T07:37:35.814111 #16613] DEBUG -- : no match
130
- D, [2010-07-31T07:37:35.814158 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
131
- D, [2010-07-31T07:37:35.814217 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
132
- D, [2010-07-31T07:37:35.814260 #16613] DEBUG -- : no match
133
- D, [2010-07-31T07:37:35.814306 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
134
- D, [2010-07-31T07:37:35.814361 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
135
- D, [2010-07-31T07:37:35.814410 #16613] DEBUG -- : no match
136
- D, [2010-07-31T07:37:35.814455 #16613] DEBUG -- : checking output against output matching /You're\s+at\s+end\s+of\s+road\s+again\./
137
- D, [2010-07-31T07:37:35.814511 #16613] DEBUG -- : matching /You're\s+at\s+end\s+of\s+road\s+again\./ against "\r\n\r\nThere are some keys on the ground here.\r\n\r\nThere is a shiny brass lamp nearby.\r\n\r\nThere is food here.\r\n\r\nThere is a bottle of water here.\r\nwest\r\n\r\nYou're at end of road again.\r\n"
138
- D, [2010-07-31T07:37:35.814564 #16613] DEBUG -- : matched /You're\s+at\s+end\s+of\s+road\s+again\./
139
- D, [2010-07-31T07:37:35.814613 #16613] DEBUG -- : match trigger output matching /You're\s+at\s+end\s+of\s+road\s+again\./
140
- D, [2010-07-31T07:37:35.814660 #16613] DEBUG -- : unblocked
141
- D, [2010-07-31T07:37:35.814705 #16613] DEBUG -- : trigger removed
142
- D, [2010-07-31T07:37:35.817046 #16613] DEBUG -- : added trigger on output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
143
- D, [2010-07-31T07:37:35.817133 #16613] DEBUG -- : waiting for output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
144
- D, [2010-07-31T07:37:35.817212 #16613] DEBUG -- : matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./ against "\r\n"
145
- D, [2010-07-31T07:37:35.817261 #16613] DEBUG -- : no match
146
- D, [2010-07-31T07:37:35.817310 #16613] DEBUG -- : select()
147
- D, [2010-07-31T07:37:35.817393 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
148
- D, [2010-07-31T07:37:35.817464 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
149
- D, [2010-07-31T07:37:35.817542 #16613] DEBUG -- :
150
- >> south
151
- D, [2010-07-31T07:37:35.817597 #16613] DEBUG -- : wrote 6 bytes
152
- D, [2010-07-31T07:37:35.817640 #16613] DEBUG -- : select()
153
- D, [2010-07-31T07:37:35.817705 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
154
- D, [2010-07-31T07:37:35.830371 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
155
- D, [2010-07-31T07:37:35.830569 #16613] DEBUG -- :
156
- << south
157
- <<
158
- << You are in a valley in the forest beside a stream tumbling along a
159
- << rocky bed.
160
- D, [2010-07-31T07:37:35.830649 #16613] DEBUG -- : read 89 bytes
161
- D, [2010-07-31T07:37:35.830766 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
162
- D, [2010-07-31T07:37:35.830866 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
163
- D, [2010-07-31T07:37:35.831004 #16613] DEBUG -- : no match
164
- D, [2010-07-31T07:37:35.831152 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
165
- D, [2010-07-31T07:37:35.831317 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
166
- D, [2010-07-31T07:37:35.831452 #16613] DEBUG -- : no match
167
- D, [2010-07-31T07:37:35.831592 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
168
- D, [2010-07-31T07:37:35.831763 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
169
- D, [2010-07-31T07:37:35.831903 #16613] DEBUG -- : no match
170
- D, [2010-07-31T07:37:35.832047 #16613] DEBUG -- : checking output against output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
171
- D, [2010-07-31T07:37:35.832212 #16613] DEBUG -- : matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./ against "\r\nsouth\r\n\r\nYou are in a valley in the forest beside a stream tumbling along a\r\nrocky bed.\r\n"
172
- D, [2010-07-31T07:37:35.832388 #16613] DEBUG -- : matched /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
173
- D, [2010-07-31T07:37:35.832528 #16613] DEBUG -- : match trigger output matching /You\s+are\s+in\s+a\s+valley\s+in\s+the\s+forest\s+beside\s+a\s+stream\s+tumbling\s+along\s+a\s+rocky\s+bed\./
174
- D, [2010-07-31T07:37:35.832667 #16613] DEBUG -- : unblocked
175
- D, [2010-07-31T07:37:35.832802 #16613] DEBUG -- : trigger removed
176
- D, [2010-07-31T07:37:35.838590 #16613] DEBUG -- : added trigger on exit with status 0
177
- D, [2010-07-31T07:37:35.838770 #16613] DEBUG -- : waiting for exit with status 0
178
- D, [2010-07-31T07:37:35.838907 #16613] DEBUG -- : no match
179
- D, [2010-07-31T07:37:35.839082 #16613] DEBUG -- : select()
180
- D, [2010-07-31T07:37:35.839303 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
181
- D, [2010-07-31T07:37:35.839493 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
182
- D, [2010-07-31T07:37:35.839721 #16613] DEBUG -- :
183
- >> quit
184
- D, [2010-07-31T07:37:35.839865 #16613] DEBUG -- : wrote 5 bytes
185
- D, [2010-07-31T07:37:35.839991 #16613] DEBUG -- : select()
186
- D, [2010-07-31T07:37:35.840194 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
187
- D, [2010-07-31T07:37:35.870399 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
188
- D, [2010-07-31T07:37:35.870536 #16613] DEBUG -- :
189
- << quit
190
- <<
191
- << Do you really want to quit now?
192
- D, [2010-07-31T07:37:35.870575 #16613] DEBUG -- : read 41 bytes
193
- D, [2010-07-31T07:37:35.870635 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
194
- D, [2010-07-31T07:37:35.870681 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against "\r\nquit\r\n\r\nDo you really want to quit now?\r\n"
195
- D, [2010-07-31T07:37:35.870716 #16613] DEBUG -- : no match
196
- D, [2010-07-31T07:37:35.870752 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
197
- D, [2010-07-31T07:37:35.870788 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against "\r\nquit\r\n\r\nDo you really want to quit now?\r\n"
198
- D, [2010-07-31T07:37:35.870819 #16613] DEBUG -- : no match
199
- D, [2010-07-31T07:37:35.870852 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
200
- D, [2010-07-31T07:37:35.870886 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against "\r\nquit\r\n\r\nDo you really want to quit now?\r\n"
201
- D, [2010-07-31T07:37:35.870931 #16613] DEBUG -- : matched /Do\s+you\s+really\s+want\s+to\s+quit/
202
- D, [2010-07-31T07:37:35.871096 #16613] DEBUG -- : match trigger output matching /Do\s+you\s+really\s+want\s+to\s+quit/
203
- D, [2010-07-31T07:37:35.871211 #16613] DEBUG -- : select()
204
- D, [2010-07-31T07:37:35.871352 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
205
- D, [2010-07-31T07:37:35.871463 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
206
- D, [2010-07-31T07:37:35.871595 #16613] DEBUG -- :
207
- >> yes
208
- D, [2010-07-31T07:37:35.871680 #16613] DEBUG -- : wrote 4 bytes
209
- D, [2010-07-31T07:37:35.871756 #16613] DEBUG -- : select()
210
- D, [2010-07-31T07:37:35.871871 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
211
- D, [2010-07-31T07:37:35.890580 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
212
- D, [2010-07-31T07:37:35.890819 #16613] DEBUG -- :
213
- << yes
214
- <<
215
- << OK
216
- <<
217
- <<
218
- <<
219
- << You scored 32 out of a possible 350 using 4 turns.
220
- <<
221
- << You are obviously a rank amateur. Better luck next time.
222
- << To achieve the next higher rating, you need 4 more points.
223
- << __GREENLETTERS_PROCESS_ENDED__
224
- D, [2010-07-31T07:37:35.890915 #16613] DEBUG -- : read 222 bytes
225
- D, [2010-07-31T07:37:35.891038 #16613] DEBUG -- : checking output against output matching /__GREENLETTERS_PROCESS_ENDED__/
226
- D, [2010-07-31T07:37:35.891156 #16613] DEBUG -- : matching /__GREENLETTERS_PROCESS_ENDED__/ against " now?\r\nyes\r\n\r\nOK\r\n\r\n\r\n\r\nYou scored 32 out of a possible 350 using 4 turns.\r\n\r\nYou are obviously a rank amateur. Better luck next time.\r\nTo achieve the next higher rating, you need 4 more points.\r\n__GREENLETTERS_PROCESS_ENDED__\r\n"
227
- D, [2010-07-31T07:37:35.891252 #16613] DEBUG -- : matched /__GREENLETTERS_PROCESS_ENDED__/
228
- D, [2010-07-31T07:37:35.891340 #16613] DEBUG -- : end marker found
229
- D, [2010-07-31T07:37:35.891468 #16613] DEBUG -- : end marker expunged from output buffer
230
- D, [2010-07-31T07:37:35.891551 #16613] DEBUG -- : acknowledging end marker
231
- D, [2010-07-31T07:37:35.891650 #16613] DEBUG -- : match trigger output matching /__GREENLETTERS_PROCESS_ENDED__/
232
- D, [2010-07-31T07:37:35.891740 #16613] DEBUG -- : checking output against output matching /Would\s+you\s+like\s+instructions\?/
233
- D, [2010-07-31T07:37:35.891846 #16613] DEBUG -- : matching /Would\s+you\s+like\s+instructions\?/ against " now?\r\nyes\r\n\r\nOK\r\n\r\n\r\n\r\nYou scored 32 out of a possible 350 using 4 turns.\r\n\r\nYou are obviously a rank amateur. Better luck next time.\r\nTo achieve the next higher rating, you need 4 more points.\r\n"
234
- D, [2010-07-31T07:37:35.891925 #16613] DEBUG -- : no match
235
- D, [2010-07-31T07:37:35.892007 #16613] DEBUG -- : checking output against output matching /Do\s+you\s+really\s+want\s+to\s+quit/
236
- D, [2010-07-31T07:37:35.892107 #16613] DEBUG -- : matching /Do\s+you\s+really\s+want\s+to\s+quit/ against " now?\r\nyes\r\n\r\nOK\r\n\r\n\r\n\r\nYou scored 32 out of a possible 350 using 4 turns.\r\n\r\nYou are obviously a rank amateur. Better luck next time.\r\nTo achieve the next higher rating, you need 4 more points.\r\n"
237
- D, [2010-07-31T07:37:35.892184 #16613] DEBUG -- : no match
238
- D, [2010-07-31T07:37:35.892267 #16613] DEBUG -- : flushing triggers matching Greenletters::OutputTrigger
239
- D, [2010-07-31T07:37:35.892365 #16613] DEBUG -- : flushing triggers matching Greenletters::BytesTrigger
240
- D, [2010-07-31T07:37:35.892447 #16613] DEBUG -- : select()
241
- D, [2010-07-31T07:37:35.892581 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [#<File:/dev/pts/3>], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
242
- D, [2010-07-31T07:37:35.892692 #16613] DEBUG -- : input ready #<File:/dev/pts/3>
243
- D, [2010-07-31T07:37:35.892827 #16613] DEBUG -- :
244
-
245
- D, [2010-07-31T07:37:35.892911 #16613] DEBUG -- : wrote 1 bytes
246
- D, [2010-07-31T07:37:35.892988 #16613] DEBUG -- : select()
247
- D, [2010-07-31T07:37:35.893100 #16613] DEBUG -- : select() on [[#<File:/dev/pts/3>], [], [#<File:/dev/pts/3>, #<File:/dev/pts/3>], 1.0]
248
- D, [2010-07-31T07:37:35.900995 #16613] DEBUG -- : output ready #<File:/dev/pts/3>
249
- D, [2010-07-31T07:37:35.670905 #16613] DEBUG -- :
250
- <<
251
- D, [2010-07-31T07:37:35.671079 #16613] DEBUG -- : read 2 bytes
252
- D, [2010-07-31T07:37:35.671244 #16613] DEBUG -- : flushing triggers matching Greenletters::OutputTrigger
253
- D, [2010-07-31T07:37:35.671384 #16613] DEBUG -- : flushing triggers matching Greenletters::BytesTrigger
254
- D, [2010-07-31T07:37:35.671509 #16613] DEBUG -- : select()
255
- D, [2010-07-31T07:37:35.671681 #16613] DEBUG -- : select() on [[#<File:/dev/pts/2>], [], [#<File:/dev/pts/2>, #<File:/dev/pts/2>], 1.0]
256
- D, [2010-07-31T07:37:35.671835 #16613] DEBUG -- : output ready #<File:/dev/pts/2>
257
- D, [2010-07-31T07:37:35.672236 #16613] DEBUG -- : Errno::EIO caught
258
- D, [2010-07-31T07:37:35.672378 #16613] DEBUG -- : waiting for child 16615 to die
259
- D, [2010-07-31T07:37:35.723882 #16613] DEBUG -- : caught PTY::ChildExited
260
- D, [2010-07-31T07:37:35.724461 #16613] DEBUG -- : collecting remaining output
261
- D, [2010-07-31T07:37:35.724849 #16613] DEBUG -- : Input/output error - /dev/pts/2
262
- D, [2010-07-31T07:37:35.724989 #16613] DEBUG -- : handling exit of process 16615
263
- D, [2010-07-31T07:37:35.725153 #16613] DEBUG -- : checking exit against exit with status 0
264
- D, [2010-07-31T07:37:35.725323 #16613] DEBUG -- : match trigger exit with status 0
265
- D, [2010-07-31T07:37:35.725445 #16613] DEBUG -- : unblocked
266
- D, [2010-07-31T07:37:35.725571 #16613] DEBUG -- : trigger removed