approval_tests 0.0.7

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.
Files changed (31) hide show
  1. data/README +0 -0
  2. data/Rakefile +22 -0
  3. data/VERSION +1 -0
  4. data/approval_tests.gemspec +68 -0
  5. data/lib/approval_tests.rb +10 -0
  6. data/lib/approval_tests/approvals.rb +101 -0
  7. data/lib/approval_tests/approvers/file_approver.rb +47 -0
  8. data/lib/approval_tests/extensions/rspec.rb +50 -0
  9. data/lib/approval_tests/namers/rspec_namer.rb +22 -0
  10. data/lib/approval_tests/reporters/diff_reporter.rb +18 -0
  11. data/lib/approval_tests/reporters/quiet_reporter.rb +21 -0
  12. data/lib/approval_tests/reporters/text_mate_reporter.rb +24 -0
  13. data/lib/approval_tests/writers/html_writer.rb +24 -0
  14. data/lib/approval_tests/writers/text_writer.rb +27 -0
  15. data/lib/approval_tests/writers/xml_writer.rb +81 -0
  16. data/spec/a.txt +7 -0
  17. data/spec/approvals_lists_should_show_empty_lists.approved.txt +1 -0
  18. data/spec/approvals_lists_should_write_arrays.approved.txt +1 -0
  19. data/spec/approvals_lists_should_write_maps.approved.txt +1 -0
  20. data/spec/approvals_multiple_describes_should_approve_multiple_describes.approved.txt +1 -0
  21. data/spec/approvals_should_approve_shared_behaviors.approved.txt +1 -0
  22. data/spec/approvals_should_successfully_approve_text.approved.txt +1 -0
  23. data/spec/approvals_spec.rb +75 -0
  24. data/spec/approvals_using_approval_blocks.approved.txt +1 -0
  25. data/spec/approvals_using_approval_blocks_the_last_statement.approved.txt +1 -0
  26. data/spec/approvals_xml_should_be_pretty.approved.txt +8 -0
  27. data/spec/b.txt +7 -0
  28. data/spec/cleanup_reporter.rb +9 -0
  29. data/spec/spec.opts +0 -0
  30. data/spec/spec_helper.rb +18 -0
  31. metadata +86 -0
data/README ADDED
File without changes
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'spec/rake/spectask'
3
+
4
+ Spec::Rake::SpecTask.new('specs') do |t|
5
+ t.spec_opts = ["--format", "specdoc", "--colour"]
6
+ t.spec_files = Dir['spec/**/*_spec.rb'].sort
7
+ end
8
+
9
+ begin
10
+ require 'jeweler'
11
+ Jeweler::Tasks.new do |gemspec|
12
+ gemspec.name = "approval_tests"
13
+ gemspec.summary = "Approval testing library"
14
+ gemspec.email = "approvaltests@dangilkerson.com"
15
+ gemspec.homepage = "http://github.com/approvaltests/approval_tests"
16
+ gemspec.description = "Approval testing library for ruby"
17
+ gemspec.authors = ["Dan Gilkerson, Llewellyn Falco"]
18
+ gemspec.rubyforge_project = 'approvaltests'
19
+ end
20
+ rescue LoadError
21
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
22
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.7
@@ -0,0 +1,68 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{approval_tests}
5
+ s.version = "0.0.7"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Dan Gilkerson, Llewellyn Falco"]
9
+ s.date = %q{2009-07-03}
10
+ s.description = %q{Approval testing library for ruby}
11
+ s.email = %q{approvaltests@dangilkerson.com}
12
+ s.extra_rdoc_files = [
13
+ "README"
14
+ ]
15
+ s.files = [
16
+ "README",
17
+ "Rakefile",
18
+ "VERSION",
19
+ "approval_tests.gemspec",
20
+ "lib/approval_tests.rb",
21
+ "lib/approval_tests/approvals.rb",
22
+ "lib/approval_tests/approvers/file_approver.rb",
23
+ "lib/approval_tests/extensions/rspec.rb",
24
+ "lib/approval_tests/namers/rspec_namer.rb",
25
+ "lib/approval_tests/reporters/diff_reporter.rb",
26
+ "lib/approval_tests/reporters/quiet_reporter.rb",
27
+ "lib/approval_tests/reporters/text_mate_reporter.rb",
28
+ "lib/approval_tests/writers/html_writer.rb",
29
+ "lib/approval_tests/writers/text_writer.rb",
30
+ "lib/approval_tests/writers/xml_writer.rb",
31
+ "spec/a.txt",
32
+ "spec/approvals_lists_should_show_empty_lists.approved.txt",
33
+ "spec/approvals_lists_should_write_arrays.approved.txt",
34
+ "spec/approvals_lists_should_write_maps.approved.txt",
35
+ "spec/approvals_multiple_describes_should_approve_multiple_describes.approved.txt",
36
+ "spec/approvals_should_approve_shared_behaviors.approved.txt",
37
+ "spec/approvals_should_successfully_approve_text.approved.txt",
38
+ "spec/approvals_spec.rb",
39
+ "spec/approvals_using_approval_blocks.approved.txt",
40
+ "spec/approvals_using_approval_blocks_the_last_statement.approved.txt",
41
+ "spec/approvals_xml_should_be_pretty.approved.txt",
42
+ "spec/b.txt",
43
+ "spec/cleanup_reporter.rb",
44
+ "spec/spec.opts",
45
+ "spec/spec_helper.rb"
46
+ ]
47
+ s.homepage = %q{http://github.com/approvaltests/approval_tests}
48
+ s.rdoc_options = ["--charset=UTF-8"]
49
+ s.require_paths = ["lib"]
50
+ s.rubyforge_project = %q{approvaltests}
51
+ s.rubygems_version = %q{1.3.4}
52
+ s.summary = %q{Approval testing library}
53
+ s.test_files = [
54
+ "spec/approvals_spec.rb",
55
+ "spec/cleanup_reporter.rb",
56
+ "spec/spec_helper.rb"
57
+ ]
58
+
59
+ if s.respond_to? :specification_version then
60
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
61
+ s.specification_version = 3
62
+
63
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
64
+ else
65
+ end
66
+ else
67
+ end
68
+ end
@@ -0,0 +1,10 @@
1
+ __DIR__ = File.dirname(__FILE__)
2
+
3
+ $LOAD_PATH.unshift __DIR__ unless
4
+ $LOAD_PATH.include?(__DIR__) ||
5
+ $LOAD_PATH.include?(File.expand_path(__DIR__))
6
+
7
+ require "approval_tests/approvals"
8
+ require "approval_tests/extensions/rspec"
9
+
10
+ include ApprovalTests::Namers
@@ -0,0 +1,101 @@
1
+ require 'fileutils'
2
+ __DIR__ = File.dirname(__FILE__)
3
+ require "#{__DIR__}/namers/rspec_namer"
4
+ require "#{__DIR__}/approvers/file_approver"
5
+ require "#{__DIR__}/writers/text_writer"
6
+ require "#{__DIR__}/writers/html_writer"
7
+ require "#{__DIR__}/writers/xml_writer"
8
+ require "#{__DIR__}/reporters/quiet_reporter"
9
+ require "#{__DIR__}/reporters/text_mate_reporter"
10
+ require "#{__DIR__}/reporters/diff_reporter"
11
+ #require "#{__DIR__}/reporters/html_reporter"
12
+
13
+ include ApprovalTests::Approvers
14
+ include ApprovalTests::Writers
15
+ include ApprovalTests::Reporters
16
+
17
+ module ApprovalTests
18
+ class ApprovalError < Exception
19
+ attr_accessor :received_filename
20
+ attr_accessor :approved_filename
21
+ end
22
+ class Approvals
23
+ class << self
24
+ def approve_list(label, list)
25
+
26
+ i = -1;
27
+ format = list.map do |m|
28
+ i = i+1
29
+ "#{label}[#{i}] = #{m} \r"
30
+ end
31
+ format = "#{label}.count = 0" if list.empty?
32
+ approve(format.to_s)
33
+ end
34
+ def approve_map(map)
35
+ out = "";
36
+ map.each do |key,value|
37
+ out += "[#{key}] = #{value} \r"
38
+ end
39
+ approve(out)
40
+ end
41
+ def approve(data)
42
+ approve_with_writer(TextWriter.new(data))
43
+ end
44
+
45
+ def approve_html(data)
46
+ approve_with_writer(HtmlWriter.new(data))
47
+ end
48
+
49
+ def approve_xml(data)
50
+ approve_with_writer(TextWriter.new(XmlWriter.pretty_xml(data)))
51
+ end
52
+
53
+ def approve_with_writer(writer)
54
+ approver = FileApprover.new(writer, @namer)
55
+ if approver.approve()
56
+ approver.clean_up_after_success()
57
+ else
58
+ @reporter = get_default_reporter()
59
+ approver.report_failure(@reporter)
60
+
61
+ if @reporter.approved_when_reported()
62
+ approver.clean_up_after_sucess()
63
+ else
64
+ approver.fail()
65
+ end
66
+ end
67
+ end
68
+
69
+ def namer=(namer)
70
+ @namer = namer
71
+ end
72
+
73
+ def namer
74
+ @namer
75
+ end
76
+
77
+ def get_default_reporter()
78
+ @reporters ||= []
79
+ return @reporters.first() unless @reporters.empty?
80
+ if defined? Spec::Mate
81
+ TextMateReporter.instance
82
+ else
83
+ QuietReporter.instance
84
+ end
85
+ end
86
+
87
+ def reporter(reporter)
88
+ @reporters ||= []
89
+ @reporters.push(reporter);
90
+ end
91
+
92
+ def unregister_reporter(reporter)
93
+ @reporters.remove(reporter);
94
+ end
95
+
96
+ def unregister_last_reporter()
97
+ @reporters.pop() if @reporters
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,47 @@
1
+
2
+
3
+ module ApprovalTests
4
+ module Approvers
5
+ class FileApprover
6
+ def initialize(writer, namer)
7
+ @writer = writer
8
+ @namer = namer
9
+ end
10
+
11
+ def approve()
12
+ basename = "#{@namer.source_file_path}/#{@namer.approval_name}"
13
+ @approved = @writer.get_approval_filename(basename)
14
+ @received = @writer.get_received_filename(basename)
15
+ @received = @writer.write_received_file(@received)
16
+
17
+ unless File.exists?(@approved)
18
+ @failure = ApprovalError.new("Failed Approval: Approval File \"#{@approved}\" Not Found.")
19
+ @failure.received_filename = @received
20
+ @failure.approved_filename = @approved
21
+ return false
22
+ end
23
+
24
+ unless FileUtils.cmp(@received, @approved)
25
+ @failure = ApprovalError.new("Failed Approval: Received file #{@received} does not match approved file #{@approved}.")
26
+ @failure.received_filename = @received
27
+ @failure.approved_filename = @approved
28
+ return false
29
+ end
30
+
31
+ return true
32
+ end
33
+
34
+ def fail()
35
+ raise @failure
36
+ end
37
+
38
+ def report_failure(reporter)
39
+ reporter.report(@approved, @received);
40
+ end
41
+
42
+ def clean_up_after_success()
43
+ File.delete(@received)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,50 @@
1
+ require "#{File.dirname(__FILE__)}/../approvals"
2
+
3
+ module ApprovalTests
4
+ module Extensions
5
+ module RSpec
6
+ def approve(thing=nil, options={}, backtrace=nil, &implementation)
7
+ if block_given?
8
+ approve_description = "#{thing}"
9
+ else
10
+ approve_description = nil
11
+ result = thing
12
+ end
13
+
14
+ example(approve_description, options) do
15
+ if block_given?
16
+ result = yield implementation
17
+ end
18
+ Approvals.approve(result)
19
+ end
20
+ end
21
+
22
+ def approve_html(thing=nil, options={}, backtrace=nil, &implementation)
23
+ if block_given?
24
+ approve_description = "#{thing}"
25
+ else
26
+ approve_description = nil
27
+ result = thing
28
+ end
29
+
30
+ example(approve_description, options) do
31
+ if block_given?
32
+ result = yield implementation
33
+ end
34
+ Approvals.approve(result, :html)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ Spec::Runner.configure do |config|
42
+ config.before(:each) do
43
+ Approvals.namer = RSpecNamer.new()
44
+ extra_description = ""
45
+ extra_description = "_#{self.description}" if !self.description.empty?
46
+ Approvals.namer.approval_name = "#{self.class.description}#{extra_description}".gsub("/", "__FORWARD_SLASH__");
47
+ Approvals.namer.source_file_path = File.dirname(self.class.location)
48
+ end
49
+ config.extend(ApprovalTests::Extensions::RSpec)
50
+ end
@@ -0,0 +1,22 @@
1
+ module ApprovalTests
2
+ module Namers
3
+ class RSpecNamer
4
+
5
+ def approval_name
6
+ @approval_name
7
+ end
8
+
9
+ def approval_name=(name)
10
+ @approval_name = name.downcase.gsub(/ |\./, "_")
11
+ end
12
+
13
+ def source_file_path
14
+ @source_file_path ||= File.dirname(File.expand_path(@approval_name))
15
+ end
16
+
17
+ def source_file_path=(path)
18
+ @source_file_path = path
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ require 'singleton'
2
+
3
+ module ApprovalTests
4
+ module Reporters
5
+ class DiffReporter
6
+ include Singleton
7
+
8
+ def report(approved, received)
9
+ TextWriter.write_file(approved,"") unless File.exists?(approved)
10
+ exec "/Applications/DiffMerge.app/Contents/MacOS/DiffMerge --nosplash \"#{received}\" \"#{approved}\""
11
+ end
12
+
13
+ def approved_when_reported()
14
+ false
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ require 'singleton'
2
+
3
+ module ApprovalTests
4
+ module Reporters
5
+ class QuietReporter
6
+ include Singleton
7
+
8
+ def report(approved, received)
9
+ if RUBY_PLATFORM =~ /mswin32/
10
+ puts "move /Y \"#{received}\" \"#{approved}\""
11
+ else
12
+ puts "mv \"#{received}\" \"#{approved}\""
13
+ end
14
+ end
15
+
16
+ def approved_when_reported()
17
+ false
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ require 'singleton'
2
+
3
+ module ApprovalTests
4
+ module Reporters
5
+ class TextMateReporter
6
+ include Singleton
7
+
8
+ def report(approved, received)
9
+ puts "<script language='JavaScript'>
10
+ function move(received, approved) {
11
+ return TextMate.system('mv ' + received + ' ' + approved, null).outputString;
12
+ }
13
+ </script>"
14
+ puts "<a href='#' onclick='move(\"#{File.expand_path(received)}\",\"#{File.expand_path(approved)}\")'>Approve</a>"
15
+ puts "<a href='txmt://open?url=file://#{File.expand_path(received)}'>View</a>"
16
+ puts "<p></p><iframe src='tm-file://#{File.expand_path(received)}' width='100%' frameborder='0' style='border:solid 1px red'></iframe>"
17
+ end
18
+
19
+ def approved_when_reported()
20
+ false
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ module ApprovalTests
2
+ module Writers
3
+ class HtmlWriter
4
+ def initialize(data)
5
+ @data = data
6
+ end
7
+
8
+ def get_approval_filename(basename)
9
+ basename + ".approved.html"
10
+ end
11
+
12
+ def get_received_filename(basename)
13
+ basename + ".received.html"
14
+ end
15
+
16
+ def write_received_file(received)
17
+ f = File.new("#{received}", "w+")
18
+ f.write(@data)
19
+ f.close()
20
+ f.path
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ module ApprovalTests
2
+ module Writers
3
+ class TextWriter
4
+ def initialize(data)
5
+ @data = data
6
+ end
7
+
8
+ def get_approval_filename(basename)
9
+ basename + ".approved.txt"
10
+ end
11
+
12
+ def get_received_filename(basename)
13
+ basename + ".received.txt"
14
+ end
15
+
16
+ def write_received_file(received)
17
+ TextWriter.write_file(received, @data)
18
+ end
19
+ def self.write_file(name, data)
20
+ f = File.new("#{name}", "w+")
21
+ f.write(data)
22
+ f.close()
23
+ f.path
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,81 @@
1
+ require 'rexml/document'
2
+ include REXML
3
+
4
+ module ApprovalTests
5
+ module Writers
6
+ class XmlWriter
7
+ def initialize(data)
8
+ @data = data
9
+ end
10
+
11
+ def get_approval_filename(basename)
12
+ basename + ".approved.xml"
13
+ end
14
+
15
+ def get_received_filename(basename)
16
+ basename + ".received.xml"
17
+ end
18
+
19
+ def write_received_file(received)
20
+ f = File.new("#{received}", "w+")
21
+ f.write(@data)
22
+ f.close()
23
+ f.path
24
+ end
25
+ class << self
26
+ def pretty_print(parent_node, itab)
27
+ buffer = ''
28
+
29
+ parent_node.elements.each do |node|
30
+
31
+ buffer += ' ' * itab + "<#{node.name}#{get_att_list(node)}"
32
+
33
+ if node.to_a.length > 0
34
+ buffer += ">"
35
+ if node.text.nil?
36
+ buffer += "\n"
37
+ buffer += pretty_print(node,itab+2)
38
+ buffer += ' ' * itab + "</#{node.name}>\n"
39
+ else
40
+ node_text = node.text.strip
41
+ if node_text != ''
42
+ buffer += node_text
43
+ buffer += "</#{node.name}>\n"
44
+ else
45
+ buffer += "\n" + pretty_print(node,itab+2)
46
+ buffer += ' ' * itab + "</#{node.name}>\n"
47
+ end
48
+ end
49
+ else
50
+ buffer += "/>\n"
51
+ end
52
+
53
+ end
54
+ buffer
55
+ end
56
+
57
+ def get_att_list(node)
58
+ att_list = ''
59
+ node.attributes.each { |attribute, val| att_list += " #{attribute}='#{val}'" }
60
+ att_list
61
+ end
62
+
63
+ def pretty_xml(xml_string)
64
+ doc = Document.new(xml_string)
65
+
66
+ buffer = ''
67
+ xml_declaration = doc.to_s.match('<\?.*\?>').to_s
68
+ buffer += "#{xml_declaration}\n" if not xml_declaration.nil?
69
+ xml_doctype = doc.to_s.match('<\!.*\">').to_s
70
+ buffer += "#{xml_doctype}\n" if not xml_doctype.nil?
71
+ buffer += "<#{doc.root.name}#{get_att_list(doc.root)}"
72
+ if doc.root.to_a.length > 0
73
+ buffer +=">\n#{pretty_print(doc.root,2)}</#{doc.root.name}>"
74
+ else
75
+ buffer += "/>\n"
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
data/spec/a.txt ADDED
@@ -0,0 +1,7 @@
1
+ 1
2
+ 2
3
+ 3
4
+ easy as
5
+ a
6
+ b
7
+ c
@@ -0,0 +1 @@
1
+ name[0] = tom
@@ -0,0 +1 @@
1
+ [name] = harry
@@ -0,0 +1 @@
1
+ shared behavior test
@@ -0,0 +1 @@
1
+ should be approved
@@ -0,0 +1,75 @@
1
+ require File.join(File.dirname(__FILE__), "spec_helper")
2
+
3
+ shared_examples_for "Shared Behaviors" do
4
+ it "should approve shared behaviors" do
5
+ Approvals.approve("shared behavior test")
6
+ end
7
+ end
8
+
9
+ describe "Approvals" do
10
+ after(:each) do
11
+ Approvals.unregister_last_reporter()
12
+ end
13
+
14
+ it_should_behave_like "Shared Behaviors"
15
+
16
+ it "should successfully approve text" do
17
+ Approvals.approve("should be approved")
18
+ end
19
+
20
+ it "should raise mismatch error if received does not match approved" do
21
+ Approvals.reporter(CleanupReporter.new);
22
+ lambda { Approvals.approve("should fail with mismatch") }.should raise_error(ApprovalError)
23
+ end
24
+
25
+ it "should raise missing approval error if has not been approved yet" do
26
+ Approvals.reporter(CleanupReporter.new);
27
+ lambda { Approvals.approve("should fail with a missing ") }.should raise_error(ApprovalError)
28
+ end
29
+
30
+ describe "Multiple describes" do
31
+ it "should approve multiple describes" do
32
+ Approvals.approve("multiple describes")
33
+ end
34
+ end
35
+
36
+ describe "lists" do
37
+ it "should write arrays" do
38
+ Approvals.approve_list("name",["tom","dick","harry"])
39
+ end
40
+ it "should show empty lists" do
41
+ Approvals.approve_list("tv", [])
42
+ end
43
+ it "should write maps" do
44
+ Approvals.approve_map(:name=> "harry", :age => 25, :sex => "male")
45
+ end
46
+ end
47
+
48
+ describe "xml" do
49
+ it "should be pretty" do
50
+ Approvals.approve_xml('<?xml version="1.0" encoding="ISO-8859-1"?><data><a><b>Bee</b><c>Sea</c></a></data>')
51
+ end
52
+ end
53
+
54
+ describe "DiffReporter" do
55
+ it "should launch" do
56
+ base = "approval_tests/spec/"
57
+ # DiffReporter.instance.report("approval_tests/spec/a.txt", "approval_tests/spec/b.txt")
58
+ end
59
+ it "should create and launch" do
60
+ base = "approval_tests/spec/"
61
+ File.delete("#{base}c.txt") if File.exists?("#{base}c.txt")
62
+ # DiffReporter.instance.report("#{base}c.txt", "#{base}a.txt")
63
+ end
64
+ end
65
+
66
+ end
67
+
68
+
69
+
70
+ describe "Approvals", "using approval blocks" do
71
+ approve "the last statement" do
72
+ "approve this"
73
+ end
74
+
75
+ end
@@ -0,0 +1 @@
1
+ approve this
@@ -0,0 +1,8 @@
1
+ <?xml version='1.0' encoding='ISO-8859-1'?>
2
+
3
+ <data>
4
+ <a>
5
+ <b>Bee</b>
6
+ <c>Sea</c>
7
+ </a>
8
+ </data>
data/spec/b.txt ADDED
@@ -0,0 +1,7 @@
1
+ 1
2
+ 3
3
+ 3
4
+ easy as
5
+ b
6
+ b
7
+ b
@@ -0,0 +1,9 @@
1
+ class CleanupReporter
2
+ def report(approved, received)
3
+ File.delete(received)
4
+ end
5
+
6
+ def approved_when_reported()
7
+ false
8
+ end
9
+ end
data/spec/spec.opts ADDED
File without changes
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+
4
+ __DIR__ = File.join(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift __DIR__ unless
6
+ $LOAD_PATH.include?(__DIR__) ||
7
+ $LOAD_PATH.include?(File.expand_path(__DIR__))
8
+
9
+ require 'cleanup_reporter'
10
+
11
+ __DIR__ = File.join(__DIR__, "..", "lib")
12
+
13
+ $LOAD_PATH.unshift __DIR__ unless
14
+ $LOAD_PATH.include?(__DIR__) ||
15
+ $LOAD_PATH.include?(File.expand_path(__DIR__))
16
+
17
+ require 'approval_tests'
18
+ include ApprovalTests
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: approval_tests
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Dan Gilkerson, Llewellyn Falco
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-07-03 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Approval testing library for ruby
17
+ email: approvaltests@dangilkerson.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ files:
25
+ - README
26
+ - Rakefile
27
+ - VERSION
28
+ - approval_tests.gemspec
29
+ - lib/approval_tests.rb
30
+ - lib/approval_tests/approvals.rb
31
+ - lib/approval_tests/approvers/file_approver.rb
32
+ - lib/approval_tests/extensions/rspec.rb
33
+ - lib/approval_tests/namers/rspec_namer.rb
34
+ - lib/approval_tests/reporters/diff_reporter.rb
35
+ - lib/approval_tests/reporters/quiet_reporter.rb
36
+ - lib/approval_tests/reporters/text_mate_reporter.rb
37
+ - lib/approval_tests/writers/html_writer.rb
38
+ - lib/approval_tests/writers/text_writer.rb
39
+ - lib/approval_tests/writers/xml_writer.rb
40
+ - spec/a.txt
41
+ - spec/approvals_lists_should_show_empty_lists.approved.txt
42
+ - spec/approvals_lists_should_write_arrays.approved.txt
43
+ - spec/approvals_lists_should_write_maps.approved.txt
44
+ - spec/approvals_multiple_describes_should_approve_multiple_describes.approved.txt
45
+ - spec/approvals_should_approve_shared_behaviors.approved.txt
46
+ - spec/approvals_should_successfully_approve_text.approved.txt
47
+ - spec/approvals_spec.rb
48
+ - spec/approvals_using_approval_blocks.approved.txt
49
+ - spec/approvals_using_approval_blocks_the_last_statement.approved.txt
50
+ - spec/approvals_xml_should_be_pretty.approved.txt
51
+ - spec/b.txt
52
+ - spec/cleanup_reporter.rb
53
+ - spec/spec.opts
54
+ - spec/spec_helper.rb
55
+ has_rdoc: true
56
+ homepage: http://github.com/approvaltests/approval_tests
57
+ licenses: []
58
+
59
+ post_install_message:
60
+ rdoc_options:
61
+ - --charset=UTF-8
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: "0"
69
+ version:
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: "0"
75
+ version:
76
+ requirements: []
77
+
78
+ rubyforge_project: approvaltests
79
+ rubygems_version: 1.3.4
80
+ signing_key:
81
+ specification_version: 3
82
+ summary: Approval testing library
83
+ test_files:
84
+ - spec/approvals_spec.rb
85
+ - spec/cleanup_reporter.rb
86
+ - spec/spec_helper.rb