delano-tryouts 0.8.2 → 0.8.3

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/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