expectr 0.5.0 → 0.5.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/Rakefile CHANGED
@@ -17,8 +17,8 @@ Jeweler::Tasks.new do |gem|
17
17
  gem.homepage = "http://github.com/cwuest/expectr"
18
18
  gem.license = "MIT"
19
19
  gem.summary = %Q{Expect for Ruby}
20
- gem.description = %Q{Implementation of NIST Expect in Ruby, allowing for fine-grained control of several aspects of program flow and implementing "interact" mode.}
21
- gem.email = "chris.wuest@rackspace.com"
20
+ gem.description = %Q{Implementation of functionality from NIST Expect in Ruby, with an emphasis on control and extensibility}
21
+ gem.email = "chris@chriswuest.com"
22
22
  gem.authors = ["Chris Wuest"]
23
23
  # dependencies defined in Gemfile
24
24
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
@@ -0,0 +1,58 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "expectr"
8
+ s.version = "0.5.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Chris Wuest"]
12
+ s.date = "2012-02-23"
13
+ s.description = "Implementation of functionality from NIST Expect in Ruby, with an emphasis on control and extensibility"
14
+ s.email = "chris@chriswuest.com"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ "Gemfile",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "expectr.gemspec",
27
+ "lib/expectr.rb",
28
+ "test/helper.rb",
29
+ "test/test_expectr.rb"
30
+ ]
31
+ s.homepage = "http://github.com/cwuest/expectr"
32
+ s.licenses = ["MIT"]
33
+ s.require_paths = ["lib"]
34
+ s.rubygems_version = "1.8.10"
35
+ s.summary = "Expect for Ruby"
36
+
37
+ if s.respond_to? :specification_version then
38
+ s.specification_version = 3
39
+
40
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
41
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
42
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
43
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
44
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
45
+ else
46
+ s.add_dependency(%q<shoulda>, [">= 0"])
47
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
48
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
49
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
50
+ end
51
+ else
52
+ s.add_dependency(%q<shoulda>, [">= 0"])
53
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
54
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
55
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
56
+ end
57
+ end
58
+
@@ -13,6 +13,23 @@ end
13
13
  require 'timeout'
14
14
  require 'thread'
15
15
 
16
+ # Fixes specifically for Ruby 1.8
17
+ if RUBY_VERSION =~ /^1.8/
18
+ # Enforcing encoding is not needed in 1.8 (probably.) So, we'll define
19
+ # String#encode! to do nothing, for interoperability.
20
+ class String #:nodoc:
21
+ def encode!(encoding)
22
+ end
23
+ end
24
+
25
+ # In Ruby 1.8, we want to ignore SIGCHLD. This is for two reasons:
26
+ # * SIGCHLD will be sent (and cause exceptions) for every Expectr object
27
+ # created
28
+ # * As John Carter documented in his RExpect library, calls to files which
29
+ # do not exist can cause odd and unexpected behavior.
30
+ Signal.trap('CHLD', 'IGNORE')
31
+ end
32
+
16
33
  # == Description
17
34
  # Expectr is an implementation of the Expect library in ruby (see
18
35
  # http://expect.nist.gov).
@@ -39,21 +39,23 @@ class TestExpectr < Test::Unit::TestCase
39
39
  end
40
40
 
41
41
  def test_interact
42
- exp = Expectr.new "bc", :flush_buffer => false
43
- [
44
- Thread.new {
45
- sleep 1
46
- exp.interact
47
- },
48
- Thread.new {
49
- sleep 2
50
- assert_equal exp.flush_buffer, true
51
- exp.flush_buffer = false
52
- exp.send "300+21\n"
53
- exp.send "quit\n"
54
- }
55
- ].each {|x| x.join}
56
-
57
- assert_not_nil exp.expect /321/
42
+ unless RUBY_VERSION =~ /1.8/
43
+ exp = Expectr.new "bc", :flush_buffer => false
44
+ [
45
+ Thread.new {
46
+ sleep 1
47
+ exp.interact
48
+ },
49
+ Thread.new {
50
+ sleep 2
51
+ assert_equal exp.flush_buffer, true
52
+ exp.flush_buffer = false
53
+ exp.send "300+21\n"
54
+ exp.send "quit\n"
55
+ }
56
+ ].each {|x| x.join}
57
+
58
+ assert_not_nil exp.expect /321/
59
+ end
58
60
  end
59
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expectr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-02-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &69922000513180 !ruby/object:Gem::Requirement
16
+ requirement: &17995220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *69922000513180
24
+ version_requirements: *17995220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdoc
27
- requirement: &69922000512700 !ruby/object:Gem::Requirement
27
+ requirement: &17990180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.12'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *69922000512700
35
+ version_requirements: *17990180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &69922000512220 !ruby/object:Gem::Requirement
38
+ requirement: &17944880 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *69922000512220
46
+ version_requirements: *17944880
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &69922000511740 !ruby/object:Gem::Requirement
49
+ requirement: &18334240 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.8.3
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *69922000511740
58
- description: Implementation of NIST Expect in Ruby, allowing for fine-grained control
59
- of several aspects of program flow and implementing "interact" mode.
60
- email: chris.wuest@rackspace.com
57
+ version_requirements: *18334240
58
+ description: Implementation of functionality from NIST Expect in Ruby, with an emphasis
59
+ on control and extensibility
60
+ email: chris@chriswuest.com
61
61
  executables: []
62
62
  extensions: []
63
63
  extra_rdoc_files:
@@ -70,6 +70,7 @@ files:
70
70
  - README.rdoc
71
71
  - Rakefile
72
72
  - VERSION
73
+ - expectr.gemspec
73
74
  - lib/expectr.rb
74
75
  - test/helper.rb
75
76
  - test/test_expectr.rb
@@ -88,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
89
  version: '0'
89
90
  segments:
90
91
  - 0
91
- hash: 1045150250599227842
92
+ hash: 3628151474188738487
92
93
  required_rubygems_version: !ruby/object:Gem::Requirement
93
94
  none: false
94
95
  requirements: