cancun 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: faeb6069d7f9b70746c1d9909c7d5e39cf35950f
4
- data.tar.gz: a8eacb5cf9beba15ae7e14d5dbce9e8e2f23ac86
3
+ metadata.gz: 22fe8bf99ed0c156d4f82df67c0697712d1b8275
4
+ data.tar.gz: 629c1d87de93d407aa05f098ca1fde2279876d9b
5
5
  SHA512:
6
- metadata.gz: f7c97d70a816dc5cd30e2b5d912e5f822e18e41bab6dd89d77c1379266e4ac5cfc3bf2b333302f381284d6a0732fb64ee0b409733fd966e471ad16254955baaf
7
- data.tar.gz: abf35a08734aea72dda99941c48a5042c6d74bdc9c07592855c68b7f79dfb6982cacee12c37887379d4250ee2fec083961a11707458fe39e6ee6299566182581
6
+ metadata.gz: 00b99eedf4ef9429bfbba2adfdd5381485b3400ffb434bfcb8c8facfe98233713bf0f70569122e1cb304029347f6eb623acd7d75ab26bf0ba1e3d20b3d01e6e9
7
+ data.tar.gz: 0604135635723a87fd62be2f2034696238c2e7fd4ae8dadd288572a26fdc7bb74df8cd74a5871118c959f57efbbb0af7a6fbb2ec93780ec9f5ffcb6d1052b5d9
data/cancun.gemspec CHANGED
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency "sourcify"
22
22
  spec.add_development_dependency "bundler", "~> 1.3"
23
- spec.add_development_dependency 'rspec'
24
23
  spec.add_development_dependency 'highline'
25
- spec.add_development_dependency 'debugger'
24
+ spec.add_development_dependency 'rspec'
25
+ spec.add_development_dependency 'highline-color'
26
26
  spec.add_development_dependency "rake"
27
27
  end
data/lib/cancun.rb CHANGED
@@ -12,5 +12,5 @@ class Cancun
12
12
  end
13
13
  end
14
14
 
15
- require 'cancun/executable'
15
+ require 'cancun/test'
16
16
  require 'cancun/highline'
@@ -1,68 +1,16 @@
1
- require 'timeout'
2
- require 'sourcify'
3
- require 'highline'
1
+ require 'cancun'
2
+ require "highline/color"
3
+ require 'forwardable'
4
4
 
5
5
  class Cancun
6
6
  module Highline
7
- attr_reader :exit_code, :output_read
8
- attr_accessor :input_write
7
+ extend ::Forwardable
8
+ include ::Highline::Color
9
9
 
10
- def init_cancun_highline
11
- @input_read, @input_write = IO.pipe
12
- @output_read, @output_write = IO.pipe
13
- @high_line = HighLine.new(@input_read, @output_write)
10
+ def_delegators :hl, :ask, :say, :menu, :choose, :color
14
11
 
15
- HighLine.stub(:new).and_return(@high_line)
16
- end
17
-
18
- def high_line
19
- end
20
-
21
- def execute(&cmd)
22
- TestCase.new(self).execute(&cmd)
23
- end
24
-
25
- def output
26
- TestCase.new(self).output
27
- end
28
-
29
-
30
- class TestCase
31
- def initialize(model)
32
- @model = model
33
- end
34
-
35
- def execute(&block)
36
- @block = block
37
- self
38
- end
39
-
40
- def output
41
- @output ||= ''
42
- @output << @model.output_read.dup.read_nonblock(4096) rescue Errno::EAGAIN
43
- @output
44
- end
45
-
46
- def and_type(*args)
47
- run
48
- @model.input_write << [*args].flatten.join("\n") + "\n"
49
- sleep 0.01
50
- end
51
-
52
- def run
53
- Thread.new do
54
- Thread.abort_on_exception = true
55
- begin
56
- if Cancun.timeout?
57
- Timeout.timeout(0.3){ @exit_code = @block.call }
58
- else
59
- @exit_code = @block.call
60
- end
61
- rescue ::Timeout::Error
62
- warn 'WARNING: cancun timeout, you can set Cancun::Highline.no_timeout!'
63
- end
64
- end
65
- end
12
+ def hl
13
+ @hl ||= HighLine.new
66
14
  end
67
15
  end
68
16
  end
@@ -0,0 +1,68 @@
1
+ require 'timeout'
2
+ require 'sourcify'
3
+ require 'highline'
4
+ require 'cancun'
5
+
6
+ class Cancun
7
+ module Test
8
+ attr_reader :exit_code, :output_read
9
+ attr_accessor :input_write
10
+
11
+ def init_cancun_test
12
+ @input_read, @input_write = IO.pipe
13
+ @output_read, @output_write = IO.pipe
14
+ @high_line = HighLine.new(@input_read, @output_write)
15
+
16
+ allow(HighLine).to receive(:new).and_return(@high_line)
17
+ end
18
+
19
+ def high_line
20
+ end
21
+
22
+ def execute(&cmd)
23
+ TestCase.new(self).execute(&cmd)
24
+ end
25
+
26
+ def output
27
+ @output ||= ''
28
+ @output << @output_read.dup.read_nonblock(4096) rescue Errno::EAGAIN
29
+ @output
30
+ end
31
+
32
+
33
+ class TestCase
34
+ def initialize(model)
35
+ @model = model
36
+ end
37
+
38
+ def execute(&block)
39
+ @block = block
40
+ self
41
+ end
42
+
43
+ def output
44
+ end
45
+
46
+ def and_type(*args)
47
+ run
48
+ @model.input_write << [*args].flatten.join("\n") + "\n"
49
+ sleep 0.01
50
+ end
51
+
52
+ def run
53
+ Thread.new do
54
+ Thread.abort_on_exception = true
55
+ begin
56
+ if Cancun.timeout?
57
+ Timeout.timeout(0.3){ @exit_code = @block.call }
58
+ else
59
+ @exit_code = @block.call
60
+ end
61
+ rescue ::Timeout::Error
62
+ warn 'WARNING: cancun timeout, you can set Cancun::Highline.no_timeout!'
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -1,3 +1,3 @@
1
1
  class Cancun
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
data/spec/dummy/foo.rb CHANGED
@@ -1,6 +1,8 @@
1
- require 'highline'
1
+ require 'cancun'
2
2
 
3
3
  class Foo
4
+ include Cancun::Highline
5
+
4
6
  def salute
5
7
  h = HighLine.new
6
8
  name = h.ask 'what is your name?'
@@ -1,11 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'highline spec' do
4
- include Cancun::Highline
5
-
6
- before do
7
- init_cancun_highline
8
- end
3
+ describe 'cancun spec' do
4
+ include Cancun::Test
5
+ before{ init_cancun_test }
9
6
 
10
7
  it 'works for highline' do
11
8
  execute do
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'cancun'
2
2
  require 'dummy/foo'
3
- require 'debugger'
4
3
 
5
4
  RSpec.configure do |config|
6
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cancun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bonzofenix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-17 00:00:00.000000000 Z
11
+ date: 2014-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sourcify
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: highline
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '>='
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: highline
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '>='
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: debugger
70
+ name: highline-color
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '>='
@@ -111,13 +111,12 @@ files:
111
111
  - Rakefile
112
112
  - cancun.gemspec
113
113
  - lib/cancun.rb
114
- - lib/cancun/executable.rb
115
114
  - lib/cancun/highline.rb
115
+ - lib/cancun/test.rb
116
116
  - lib/cancun/version.rb
117
117
  - spec/dummy/bin/foo
118
118
  - spec/dummy/foo.rb
119
- - spec/lib/executable_spec.rb
120
- - spec/lib/highline_spec.rb
119
+ - spec/lib/cancun_spec.rb
121
120
  - spec/spec_helper.rb
122
121
  homepage: https://github.com/bonzofenix/cancun
123
122
  licenses:
@@ -147,6 +146,5 @@ summary: this gem should provide a simple DSL solution for unit and integration
147
146
  test_files:
148
147
  - spec/dummy/bin/foo
149
148
  - spec/dummy/foo.rb
150
- - spec/lib/executable_spec.rb
151
- - spec/lib/highline_spec.rb
149
+ - spec/lib/cancun_spec.rb
152
150
  - spec/spec_helper.rb
@@ -1,24 +0,0 @@
1
- require 'open3'
2
- class Cancun
3
- module Executable
4
- def init_cancun
5
- @output_read, @output_write = IO.pipe
6
- @input_read, @input_write = IO.pipe
7
- end
8
-
9
- def run(executable)
10
- IO.popen(executable, out: @output_read, in: @input_write)
11
- end
12
-
13
- def type(*args)
14
- @input_write << [*args].flatten.join("\n") + "\n"
15
- sleep 0.01
16
- end
17
-
18
- def output
19
- @output ||= ''
20
- @output << @output_read.dup.read_nonblock(4096) rescue Errno::EAGAIN
21
- @output
22
- end
23
- end
24
- end
@@ -1,13 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'excutable spec' do
4
- include Cancun::Executable
5
-
6
- pending 'works for executables' do
7
- init_cancun
8
- type 'Bonzo'
9
- run './spec/dummy/bin/foo'
10
- output.should include('Hi Bonzo')
11
- end
12
- end
13
-