cancun 0.0.6 → 0.1.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.
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
-