delano-tryouts 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES.txt CHANGED
@@ -1,6 +1,11 @@
1
1
  TRYOUTS, CHANGES
2
2
 
3
3
 
4
+ #### 0.8.3 (2009-07-19) ###############################
5
+
6
+ * FIXED: Updated gemspec
7
+
8
+
4
9
  #### 0.8.2 (2009-07-19) ###############################
5
10
 
6
11
  * CHANGE: Moved Drill and Reality to separate files.
data/lib/tryouts.rb CHANGED
@@ -45,7 +45,7 @@ class Tryouts
45
45
  end
46
46
  end
47
47
 
48
- VERSION = "0.8.2"
48
+ VERSION = "0.8.3"
49
49
 
50
50
  require 'tryouts/mixins'
51
51
  require 'tryouts/tryout'
@@ -0,0 +1,57 @@
1
+
2
+
3
+ class Tryouts::Drill
4
+ # = Dream
5
+ #
6
+ # Contains the expected response of a Drill
7
+ #
8
+ class Dream < Tryouts::Drill::Response
9
+
10
+ # A proc which is run just before the associated drill.
11
+ # The return value overrides <tt>@output</tt>.
12
+ attr_accessor :output_block
13
+
14
+ # Populates <tt>@output</tt> with the return value of
15
+ # <tt>output_block</tt> or <tt>&definition</tt> if provided.
16
+ def execute_output_block(&definition)
17
+ definition ||= @output_block
18
+ return if definition.nil?
19
+ self.output = instance_eval &definition
20
+ end
21
+
22
+ # Takes a String +val+ and splits the lines into an Array.
23
+ def inline(val=nil)
24
+ lines = (val.split($/) || [])
25
+ lines.shift if lines.first.strip == ""
26
+ lines.pop if lines.last.strip == ""
27
+ lines
28
+ end
29
+
30
+ def ==(reality)
31
+ return @answer unless @answer.nil?
32
+ @answer = Response.compare(self, reality)
33
+ end
34
+
35
+ def test_to_string(reality)
36
+ return @test_string unless @test_string.nil?
37
+ @test_string = Response.compare_string(self, reality)
38
+ end
39
+
40
+ def comparison_value
41
+ return @ret unless @ret.nil?
42
+ @ret = case @format
43
+ when :gt, :gte, :lt, :lte, :ne
44
+ op = {:gt=>'>',:gte=>'>=', :lt=>'<', :lte => '<=', :ne => '!='}.find { |i| i[0] == @format }
45
+ @output
46
+ when :proc
47
+ true
48
+ when :respond_to?, :is_a?, :kind_of?
49
+ true
50
+ when :grep
51
+ @output
52
+ else
53
+ @output
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,49 @@
1
+ class Tryouts::Drill
2
+
3
+ # = Reality
4
+ #
5
+ # Contains the actual response of a Drill
6
+ #
7
+ class Reality < Tryouts::Drill::Response
8
+ # An ordered hash taken from the DrillContext that created this Reality.
9
+ attr_accessor :stash
10
+ attr_accessor :error
11
+ attr_accessor :trace
12
+ attr_accessor :ecode
13
+ attr_accessor :etype
14
+ # For :cli drills only. Contains the shell command string.
15
+ attr_accessor :command
16
+ def initialize
17
+ @stash = Tryouts::HASH_TYPE.new
18
+ end
19
+
20
+ def ==(dream)
21
+ Response.compare(dream, self)
22
+ end
23
+
24
+ def comparison_value(dream)
25
+ case dream.format
26
+ when :proc
27
+ test = dream.output
28
+ (test.arity > 0 ? test.call(@output) : test.call)
29
+ when :exception
30
+ @etype
31
+ when :respond_to?, :is_a?, :kind_of?, :grep
32
+ @output.send(dream.format, dream.output)
33
+ when nil
34
+ @output
35
+ else
36
+ return nil if @output.nil?
37
+
38
+ if !dream.format.is_a?(Symbol)
39
+ "This dream format is not a Symbol: #{dream.format}"
40
+ elsif @output.respond_to?(dream.format)
41
+ @output.send(dream.format)
42
+ else
43
+ @output
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ end
data/tryouts.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "tryouts"
3
3
  s.rubyforge_project = "tryouts"
4
- s.version = "0.8.2"
4
+ s.version = "0.8.3"
5
5
  s.summary = "Tryouts is a high-level testing library (DSL) for your Ruby codes and command-line applications."
6
6
  s.description = s.summary
7
7
  s.author = "Delano Mandelbaum"
@@ -49,6 +49,8 @@
49
49
  lib/tryouts/cli/run.rb
50
50
  lib/tryouts/drill.rb
51
51
  lib/tryouts/drill/context.rb
52
+ lib/tryouts/drill/dream.rb
53
+ lib/tryouts/drill/reality.rb
52
54
  lib/tryouts/drill/response.rb
53
55
  lib/tryouts/drill/sergeant/api.rb
54
56
  lib/tryouts/drill/sergeant/benchmark.rb
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delano-tryouts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -64,6 +64,8 @@ files:
64
64
  - lib/tryouts/cli/run.rb
65
65
  - lib/tryouts/drill.rb
66
66
  - lib/tryouts/drill/context.rb
67
+ - lib/tryouts/drill/dream.rb
68
+ - lib/tryouts/drill/reality.rb
67
69
  - lib/tryouts/drill/response.rb
68
70
  - lib/tryouts/drill/sergeant/api.rb
69
71
  - lib/tryouts/drill/sergeant/benchmark.rb