tty-process-ctl 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.
- data/Gemfile.lock +0 -1
- data/VERSION +1 -1
- data/lib/tty-process-ctl.rb +3 -3
- data/spec/tty-process-ctl_spec.rb +9 -9
- data/tty-process-ctl.gemspec +3 -3
- metadata +16 -46
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0. | 
| 1 | 
            +
            0.3.0
         | 
    
        data/lib/tty-process-ctl.rb
    CHANGED
    
    | @@ -21,7 +21,7 @@ class TTYProcessCtl | |
| 21 21 | 
             
            			begin
         | 
| 22 22 | 
             
            				abort_on_exception = true
         | 
| 23 23 | 
             
            				@r.each_line do |line|
         | 
| 24 | 
            -
            					enqueue_message line
         | 
| 24 | 
            +
            					enqueue_message line.chop
         | 
| 25 25 | 
             
            				end
         | 
| 26 26 | 
             
            			rescue Errno::EIO
         | 
| 27 27 | 
             
            			ensure
         | 
| @@ -106,8 +106,8 @@ class TTYProcessCtl | |
| 106 106 | 
             
            		end
         | 
| 107 107 | 
             
            	end
         | 
| 108 108 |  | 
| 109 | 
            -
            	def dequeue( | 
| 110 | 
            -
            		message = @out_queue.pop( | 
| 109 | 
            +
            	def dequeue(no_block = false)
         | 
| 110 | 
            +
            		message = @out_queue.pop(no_block)
         | 
| 111 111 | 
             
            		return nil unless message
         | 
| 112 112 | 
             
            		@messages << message
         | 
| 113 113 | 
             
            		@messages.pop while @messages.length > @max_messages
         | 
| @@ -24,7 +24,7 @@ describe TTYProcessCtl do | |
| 24 24 |  | 
| 25 25 | 
             
            		it 'should be Enumerable' do
         | 
| 26 26 | 
             
            			subject.should respond_to :take
         | 
| 27 | 
            -
            			subject.take(2).should == ["151 recipes | 
| 27 | 
            +
            			subject.take(2).should == ["151 recipes", "16 achievements"]
         | 
| 28 28 | 
             
            		end
         | 
| 29 29 |  | 
| 30 30 | 
             
            		it 'should return nothing if iterating on dead process' do
         | 
| @@ -33,37 +33,37 @@ describe TTYProcessCtl do | |
| 33 33 | 
             
            		end
         | 
| 34 34 |  | 
| 35 35 | 
             
            		it 'should allow iteration until pattern is found in message' do
         | 
| 36 | 
            -
            			subject.each_until(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [WARNING] **** NOT ENOUGH RAM | 
| 36 | 
            +
            			subject.each_until(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [WARNING] **** NOT ENOUGH RAM!"
         | 
| 37 37 | 
             
            		end
         | 
| 38 38 |  | 
| 39 39 | 
             
            		it 'should allow iteration until pattern is found in message excluding that message' do
         | 
| 40 | 
            -
            			subject.each_until_exclude(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [INFO] Starting minecraft server version Beta 1.7.3 | 
| 40 | 
            +
            			subject.each_until_exclude(/NOT ENOUGH RAM/).to_a.last.should == "2011-09-10 12:58:55 [INFO] Starting minecraft server version Beta 1.7.3"
         | 
| 41 41 | 
             
            		end
         | 
| 42 42 |  | 
| 43 43 | 
             
            		it 'should allow waiting for message matching pattern' do
         | 
| 44 44 | 
             
            			subject.wait_until(/NOT ENOUGH RAM/)
         | 
| 45 | 
            -
            			subject.each.to_a.first.should == "2011-09-10 12:58:55 [WARNING] To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\" | 
| 45 | 
            +
            			subject.each.to_a.first.should == "2011-09-10 12:58:55 [WARNING] To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""
         | 
| 46 46 | 
             
            		end
         | 
| 47 47 | 
             
            	end
         | 
| 48 48 |  | 
| 49 49 | 
             
            	describe 'sending commands' do
         | 
| 50 50 | 
             
            		it 'should allow sending commands to controled process' do
         | 
| 51 51 | 
             
            			subject.send_command 'stop'
         | 
| 52 | 
            -
            			subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks | 
| 52 | 
            +
            			subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks"
         | 
| 53 53 | 
             
            		end
         | 
| 54 54 |  | 
| 55 55 | 
             
            		it 'should allow sending commands and iterating output' do
         | 
| 56 56 | 
             
            			subject.send_command 'list'
         | 
| 57 | 
            -
            			subject.each_until(/Connected players/).to_a.last.should == "2011-09-20 14:42:04 [INFO] Connected players: kazuya | 
| 57 | 
            +
            			subject.each_until(/Connected players/).to_a.last.should == "2011-09-20 14:42:04 [INFO] Connected players: kazuya"
         | 
| 58 58 |  | 
| 59 59 | 
             
            			subject.send_command 'stop'
         | 
| 60 | 
            -
            			subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks | 
| 60 | 
            +
            			subject.each.to_a.last.should == "2011-09-19 22:12:00 [INFO] Saving chunks"
         | 
| 61 61 | 
             
            		end
         | 
| 62 62 |  | 
| 63 63 | 
             
            		it 'should echo sent command' do
         | 
| 64 64 | 
             
            			subject.each_until(/Done/).to_a
         | 
| 65 65 | 
             
            			subject.send_command 'stop'
         | 
| 66 | 
            -
            			subject.each.to_a.first.should == "stop | 
| 66 | 
            +
            			subject.each.to_a.first.should == "stop"
         | 
| 67 67 | 
             
            		end
         | 
| 68 68 |  | 
| 69 69 | 
             
            		it 'should raise error when sending command to dead process' do
         | 
| @@ -98,7 +98,7 @@ describe TTYProcessCtl do | |
| 98 98 | 
             
            				subject.flush
         | 
| 99 99 |  | 
| 100 100 | 
             
            				subject.send_command 'list'
         | 
| 101 | 
            -
            				subject.each_until(/Connected players/).to_a.should == ["list | 
| 101 | 
            +
            				subject.each_until(/Connected players/).to_a.should == ["list", "2011-09-20 14:42:04 [INFO] Connected players: kazuya"]
         | 
| 102 102 |  | 
| 103 103 | 
             
            				subject.send_command 'stop'
         | 
| 104 104 | 
             
            			end
         | 
    
        data/tty-process-ctl.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = "tty-process-ctl"
         | 
| 8 | 
            -
              s.version = "0. | 
| 8 | 
            +
              s.version = "0.3.0"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Jakub Pastuszek"]
         | 
| 12 | 
            -
              s.date = "2012- | 
| 12 | 
            +
              s.date = "2012-11-18"
         | 
| 13 13 | 
             
              s.description = "This gem was created to enable control of interactive terminal applications. It is using pseudo tty to communicate with the process via simple API."
         | 
| 14 14 | 
             
              s.email = "jpastuszek@gmail.com"
         | 
| 15 15 | 
             
              s.extra_rdoc_files = [
         | 
| @@ -37,7 +37,7 @@ Gem::Specification.new do |s| | |
| 37 37 | 
             
              s.homepage = "http://github.com/jpastuszek/tty-process-ctl"
         | 
| 38 38 | 
             
              s.licenses = ["MIT"]
         | 
| 39 39 | 
             
              s.require_paths = ["lib"]
         | 
| 40 | 
            -
              s.rubygems_version = "1.8. | 
| 40 | 
            +
              s.rubygems_version = "1.8.15"
         | 
| 41 41 | 
             
              s.summary = "Control of interactive terminal applications via simple API."
         | 
| 42 42 |  | 
| 43 43 | 
             
              if s.respond_to? :specification_version then
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tty-process-ctl
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 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- | 
| 12 | 
            +
            date: 2012-11-18 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rspec
         | 
| 16 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
              requirement: &70198123123360 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,15 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '2.8'
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements:  | 
| 25 | 
            -
                none: false
         | 
| 26 | 
            -
                requirements:
         | 
| 27 | 
            -
                - - ~>
         | 
| 28 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: '2.8'
         | 
| 24 | 
            +
              version_requirements: *70198123123360
         | 
| 30 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 26 | 
             
              name: rdoc
         | 
| 32 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 27 | 
            +
              requirement: &70198123122620 !ruby/object:Gem::Requirement
         | 
| 33 28 | 
             
                none: false
         | 
| 34 29 | 
             
                requirements:
         | 
| 35 30 | 
             
                - - ~>
         | 
| @@ -37,15 +32,10 @@ dependencies: | |
| 37 32 | 
             
                    version: '3.12'
         | 
| 38 33 | 
             
              type: :development
         | 
| 39 34 | 
             
              prerelease: false
         | 
| 40 | 
            -
              version_requirements:  | 
| 41 | 
            -
                none: false
         | 
| 42 | 
            -
                requirements:
         | 
| 43 | 
            -
                - - ~>
         | 
| 44 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            -
                    version: '3.12'
         | 
| 35 | 
            +
              version_requirements: *70198123122620
         | 
| 46 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 37 | 
             
              name: bundler
         | 
| 48 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 38 | 
            +
              requirement: &70198123122100 !ruby/object:Gem::Requirement
         | 
| 49 39 | 
             
                none: false
         | 
| 50 40 | 
             
                requirements:
         | 
| 51 41 | 
             
                - - ~>
         | 
| @@ -53,15 +43,10 @@ dependencies: | |
| 53 43 | 
             
                    version: '1.1'
         | 
| 54 44 | 
             
              type: :development
         | 
| 55 45 | 
             
              prerelease: false
         | 
| 56 | 
            -
              version_requirements:  | 
| 57 | 
            -
                none: false
         | 
| 58 | 
            -
                requirements:
         | 
| 59 | 
            -
                - - ~>
         | 
| 60 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: '1.1'
         | 
| 46 | 
            +
              version_requirements: *70198123122100
         | 
| 62 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 63 48 | 
             
              name: jeweler
         | 
| 64 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            +
              requirement: &70198123121460 !ruby/object:Gem::Requirement
         | 
| 65 50 | 
             
                none: false
         | 
| 66 51 | 
             
                requirements:
         | 
| 67 52 | 
             
                - - ~>
         | 
| @@ -69,15 +54,10 @@ dependencies: | |
| 69 54 | 
             
                    version: '1.8'
         | 
| 70 55 | 
             
              type: :development
         | 
| 71 56 | 
             
              prerelease: false
         | 
| 72 | 
            -
              version_requirements:  | 
| 73 | 
            -
                none: false
         | 
| 74 | 
            -
                requirements:
         | 
| 75 | 
            -
                - - ~>
         | 
| 76 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            -
                    version: '1.8'
         | 
| 57 | 
            +
              version_requirements: *70198123121460
         | 
| 78 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 79 59 | 
             
              name: simplecov
         | 
| 80 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 60 | 
            +
              requirement: &70198123120840 !ruby/object:Gem::Requirement
         | 
| 81 61 | 
             
                none: false
         | 
| 82 62 | 
             
                requirements:
         | 
| 83 63 | 
             
                - - ! '>='
         | 
| @@ -85,15 +65,10 @@ dependencies: | |
| 85 65 | 
             
                    version: '0'
         | 
| 86 66 | 
             
              type: :development
         | 
| 87 67 | 
             
              prerelease: false
         | 
| 88 | 
            -
              version_requirements:  | 
| 89 | 
            -
                none: false
         | 
| 90 | 
            -
                requirements:
         | 
| 91 | 
            -
                - - ! '>='
         | 
| 92 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 93 | 
            -
                    version: '0'
         | 
| 68 | 
            +
              version_requirements: *70198123120840
         | 
| 94 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 95 70 | 
             
              name: cli
         | 
| 96 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 71 | 
            +
              requirement: &70198123120200 !ruby/object:Gem::Requirement
         | 
| 97 72 | 
             
                none: false
         | 
| 98 73 | 
             
                requirements:
         | 
| 99 74 | 
             
                - - ~>
         | 
| @@ -101,12 +76,7 @@ dependencies: | |
| 101 76 | 
             
                    version: '1.0'
         | 
| 102 77 | 
             
              type: :development
         | 
| 103 78 | 
             
              prerelease: false
         | 
| 104 | 
            -
              version_requirements:  | 
| 105 | 
            -
                none: false
         | 
| 106 | 
            -
                requirements:
         | 
| 107 | 
            -
                - - ~>
         | 
| 108 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                    version: '1.0'
         | 
| 79 | 
            +
              version_requirements: *70198123120200
         | 
| 110 80 | 
             
            description: This gem was created to enable control of interactive terminal applications.
         | 
| 111 81 | 
             
              It is using pseudo tty to communicate with the process via simple API.
         | 
| 112 82 | 
             
            email: jpastuszek@gmail.com
         | 
| @@ -147,7 +117,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 147 117 | 
             
                  version: '0'
         | 
| 148 118 | 
             
                  segments:
         | 
| 149 119 | 
             
                  - 0
         | 
| 150 | 
            -
                  hash:  | 
| 120 | 
            +
                  hash: 3600694926302972229
         | 
| 151 121 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 152 122 | 
             
              none: false
         | 
| 153 123 | 
             
              requirements:
         | 
| @@ -156,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 156 126 | 
             
                  version: '0'
         | 
| 157 127 | 
             
            requirements: []
         | 
| 158 128 | 
             
            rubyforge_project: 
         | 
| 159 | 
            -
            rubygems_version: 1.8. | 
| 129 | 
            +
            rubygems_version: 1.8.15
         | 
| 160 130 | 
             
            signing_key: 
         | 
| 161 131 | 
             
            specification_version: 3
         | 
| 162 132 | 
             
            summary: Control of interactive terminal applications via simple API.
         |