br-approvals 0.0.22

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 (110) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +15 -0
  4. data/CHANGELOG.md +71 -0
  5. data/Gemfile +6 -0
  6. data/License.txt +22 -0
  7. data/README.md +263 -0
  8. data/Rakefile +6 -0
  9. data/approvals.gemspec +29 -0
  10. data/bin/approvals +8 -0
  11. data/ext/mkrf_conf.rb +22 -0
  12. data/lib/approvals.rb +33 -0
  13. data/lib/approvals/approval.rb +144 -0
  14. data/lib/approvals/cli.rb +36 -0
  15. data/lib/approvals/configuration.rb +29 -0
  16. data/lib/approvals/dotfile.rb +33 -0
  17. data/lib/approvals/dsl.rb +7 -0
  18. data/lib/approvals/error.rb +21 -0
  19. data/lib/approvals/executable.rb +18 -0
  20. data/lib/approvals/extensions/rspec.rb +13 -0
  21. data/lib/approvals/extensions/rspec/dsl.rb +44 -0
  22. data/lib/approvals/filter.rb +45 -0
  23. data/lib/approvals/namers/default_namer.rb +20 -0
  24. data/lib/approvals/namers/directory_namer.rb +30 -0
  25. data/lib/approvals/namers/rspec_namer.rb +32 -0
  26. data/lib/approvals/reporters.rb +14 -0
  27. data/lib/approvals/reporters/diff_reporter/diffmerge_reporter.rb +18 -0
  28. data/lib/approvals/reporters/diff_reporter/opendiff_reporter.rb +18 -0
  29. data/lib/approvals/reporters/diff_reporter/tortoisediff_reporter.rb +18 -0
  30. data/lib/approvals/reporters/diff_reporter/vimdiff_reporter.rb +18 -0
  31. data/lib/approvals/reporters/filelauncher_reporter.rb +18 -0
  32. data/lib/approvals/reporters/first_working_reporter.rb +21 -0
  33. data/lib/approvals/reporters/image_reporter.rb +13 -0
  34. data/lib/approvals/reporters/image_reporter/html_image_reporter.rb +35 -0
  35. data/lib/approvals/reporters/image_reporter/image_magick_reporter.rb +20 -0
  36. data/lib/approvals/reporters/launcher.rb +49 -0
  37. data/lib/approvals/reporters/reporter.rb +30 -0
  38. data/lib/approvals/rspec.rb +4 -0
  39. data/lib/approvals/scrubber.rb +43 -0
  40. data/lib/approvals/system_command.rb +13 -0
  41. data/lib/approvals/version.rb +3 -0
  42. data/lib/approvals/writer.rb +39 -0
  43. data/lib/approvals/writers/array_writer.rb +17 -0
  44. data/lib/approvals/writers/binary_writer.rb +49 -0
  45. data/lib/approvals/writers/hash_writer.rb +20 -0
  46. data/lib/approvals/writers/html_writer.rb +15 -0
  47. data/lib/approvals/writers/json_writer.rb +31 -0
  48. data/lib/approvals/writers/text_writer.rb +21 -0
  49. data/lib/approvals/writers/xml_writer.rb +15 -0
  50. data/spec/approvals_spec.rb +172 -0
  51. data/spec/configuration_spec.rb +28 -0
  52. data/spec/dotfile_spec.rb +22 -0
  53. data/spec/executable_spec.rb +17 -0
  54. data/spec/extensions/rspec_approvals_spec.rb +105 -0
  55. data/spec/filter_spec.rb +123 -0
  56. data/spec/fixtures/approvals/approvals_custom_writer_verifies_a_complex_object.approved.txt +1 -0
  57. data/spec/fixtures/approvals/approvals_passes_approved_files_through_erb.approved.txt +1 -0
  58. data/spec/fixtures/approvals/approvals_passes_the_received_files_through_erb.approved.txt +1 -0
  59. data/spec/fixtures/approvals/approvals_supports_excluded_keys_option_also_supports_an_array_of_hashes.approved.json +10 -0
  60. data/spec/fixtures/approvals/approvals_supports_excluded_keys_option_supports_the_array_writer.approved.txt +1 -0
  61. data/spec/fixtures/approvals/approvals_supports_excluded_keys_option_supports_the_hash_writer.approved.txt +1 -0
  62. data/spec/fixtures/approvals/approvals_supports_excluded_keys_option_verifies_json_with_excluded_keys.approved.json +8 -0
  63. data/spec/fixtures/approvals/approvals_verifies_a_complex_object.approved.txt +1 -0
  64. data/spec/fixtures/approvals/approvals_verifies_a_hash.approved.txt +6 -0
  65. data/spec/fixtures/approvals/approvals_verifies_a_malformed_html_fragment.approved.html +11 -0
  66. data/spec/fixtures/approvals/approvals_verifies_a_string.approved.txt +1 -0
  67. data/spec/fixtures/approvals/approvals_verifies_an_array.approved.txt +4 -0
  68. data/spec/fixtures/approvals/approvals_verifies_an_array_as_json_when_format_is_set_to_json.approved.json +10 -0
  69. data/spec/fixtures/approvals/approvals_verifies_an_executable.approved.txt +1 -0
  70. data/spec/fixtures/approvals/approvals_verifies_html.approved.html +11 -0
  71. data/spec/fixtures/approvals/approvals_verifies_json.approved.json +7 -0
  72. data/spec/fixtures/approvals/approvals_verifies_json_and_is_newline_agnostic.approved.json +7 -0
  73. data/spec/fixtures/approvals/approvals_verifies_xml.approved.xml +9 -0
  74. data/spec/fixtures/approvals/verifications_a_string.approved.txt +1 -0
  75. data/spec/fixtures/approvals/verifies_a_complex_object.approved.txt +1 -0
  76. data/spec/fixtures/approvals/verifies_a_failure.approved.txt +1 -0
  77. data/spec/fixtures/approvals/verifies_a_failure_diff.approved.txt +1 -0
  78. data/spec/fixtures/approvals/verifies_a_string.approved.txt +1 -0
  79. data/spec/fixtures/approvals/verifies_an_array.approved.txt +4 -0
  80. data/spec/fixtures/approvals/verifies_an_executable.approved.txt +1 -0
  81. data/spec/fixtures/approvals/verifies_directory/a_complex_object.approved.txt +1 -0
  82. data/spec/fixtures/approvals/verifies_directory/a_failure.approved.txt +0 -0
  83. data/spec/fixtures/approvals/verifies_directory/a_failure_diff.approved.txt +0 -0
  84. data/spec/fixtures/approvals/verifies_directory/a_string.approved.txt +1 -0
  85. data/spec/fixtures/approvals/verifies_directory/an_array.approved.txt +4 -0
  86. data/spec/fixtures/approvals/verifies_directory/an_executable.approved.txt +1 -0
  87. data/spec/fixtures/approvals/verifies_directory/html.approved.html +11 -0
  88. data/spec/fixtures/approvals/verifies_directory/json.approved.json +7 -0
  89. data/spec/fixtures/approvals/verifies_directory/xml.approved.xml +9 -0
  90. data/spec/fixtures/approvals/verifies_html.approved.html +11 -0
  91. data/spec/fixtures/approvals/verifies_json.approved.json +7 -0
  92. data/spec/fixtures/approvals/verifies_xml.approved.xml +9 -0
  93. data/spec/fixtures/one.png +0 -0
  94. data/spec/fixtures/one.txt +1 -0
  95. data/spec/fixtures/two.png +0 -0
  96. data/spec/fixtures/two.txt +1 -0
  97. data/spec/namers/default_namer_spec.rb +37 -0
  98. data/spec/namers/directory_namer_spec.rb +31 -0
  99. data/spec/namers/rspec_namer_spec.rb +30 -0
  100. data/spec/namers_spec.rb +16 -0
  101. data/spec/reporters/first_working_reporter_spec.rb +30 -0
  102. data/spec/reporters/html_image_reporter_spec.rb +22 -0
  103. data/spec/reporters/image_magick_reporter_spec.rb +16 -0
  104. data/spec/reporters/launcher_spec.rb +24 -0
  105. data/spec/reporters/opendiff_reporter_spec.rb +15 -0
  106. data/spec/reporters/reporter_spec.rb +21 -0
  107. data/spec/scrubber_spec.rb +26 -0
  108. data/spec/spec_helper.rb +7 -0
  109. data/spec/system_command_spec.rb +13 -0
  110. metadata +196 -0
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml char="kiddo">
3
+ <node>
4
+ <content name="beatrice"/>
5
+ </node>
6
+ <node aliases="5">
7
+ <content/>
8
+ </node>
9
+ </xml>
Binary file
@@ -0,0 +1 @@
1
+ one
Binary file
@@ -0,0 +1 @@
1
+ two
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ require 'approvals/configuration'
3
+ require 'approvals/namers/default_namer'
4
+
5
+ describe Approvals::Namers::DefaultNamer do
6
+
7
+ subject { Approvals::Namers::DefaultNamer.new("a f!$^%&*(unky name") }
8
+
9
+ it "normalizes the name" do
10
+ expect(subject.name).to eq 'a_funky_name'
11
+ end
12
+
13
+ context "when configured" do
14
+ before :each do
15
+ Approvals.configure do |c|
16
+ c.approvals_path = 'path/to/files/'
17
+ end
18
+ end
19
+
20
+ after :each do
21
+ Approvals.configure do |c|
22
+ c.approvals_path = nil
23
+ end
24
+ end
25
+
26
+ it "uses the approvals output dir" do
27
+ expect(subject.output_dir).to eq 'path/to/files/'
28
+ end
29
+ end
30
+
31
+ it "must have a name" do
32
+ expect do
33
+ Approvals::Namers::DefaultNamer.new nil
34
+ end.to raise_error ArgumentError
35
+ end
36
+
37
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ require 'approvals/rspec'
3
+
4
+ describe Approvals::Namers::DirectoryNamer do
5
+
6
+ it "uses non-$%^&*funky example description" do |example|
7
+ expect(Approvals::Namers::DirectoryNamer.new(example).name).to eq 'approvals_namers_directorynamer/uses_non_funky_example_description'
8
+ end
9
+
10
+ it "has a decent default" do |example|
11
+ expect(Approvals::Namers::DirectoryNamer.new(example).output_dir).to eq 'spec/fixtures/approvals/'
12
+ end
13
+
14
+ context "when RSpec is configured" do
15
+ before :each do
16
+ RSpec.configure do |c|
17
+ c.approvals_path = 'spec/output/dir/'
18
+ end
19
+ end
20
+
21
+ after :each do
22
+ RSpec.configure do |c|
23
+ c.approvals_path = nil
24
+ end
25
+ end
26
+
27
+ it "uses the rspec config option" do |example|
28
+ expect(Approvals::Namers::DirectoryNamer.new(example).output_dir).to eq 'spec/output/dir/'
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe Approvals::Namers::RSpecNamer do
4
+
5
+ it "uses non-$%^&*funky example description" do |example|
6
+ expect(Approvals::Namers::RSpecNamer.new(example).name).to eq 'approvals_namers_rspecnamer_uses_non_funky_example_description'
7
+ end
8
+
9
+ it "has a decent default" do |example|
10
+ expect(Approvals::Namers::RSpecNamer.new(example).output_dir).to eq 'spec/fixtures/approvals/'
11
+ end
12
+
13
+ context "when RSpec is configured" do
14
+ before :each do
15
+ RSpec.configure do |c|
16
+ c.approvals_path = 'spec/output/dir/'
17
+ end
18
+ end
19
+
20
+ after :each do
21
+ RSpec.configure do |c|
22
+ c.approvals_path = nil
23
+ end
24
+ end
25
+
26
+ it "uses the rspec config option" do |example|
27
+ expect(Approvals::Namers::RSpecNamer.new(example).output_dir).to eq 'spec/output/dir/'
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+ require 'approvals/rspec'
3
+
4
+ describe Approvals::Namers do
5
+
6
+ it "uses the RSpecNamer" do |example|
7
+ approval = Approvals::Approval.new("naming with rspec namer", :namer => Approvals::Namers::RSpecNamer.new(example))
8
+ expect(approval.name).to eq("approvals_namers_uses_the_rspecnamer")
9
+ end
10
+
11
+ it "uses the DefaultNamer" do
12
+ approval = Approvals::Approval.new("naming with default namer", :name => "a name")
13
+ expect(approval.name).to eq("a_name")
14
+ end
15
+
16
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+ require 'approvals/reporters/first_working_reporter'
3
+
4
+ describe Approvals::Reporters::FirstWorkingReporter do
5
+
6
+
7
+ let(:no) { double(:working_in_this_environment? => false) }
8
+ let(:yes) { double(:working_in_this_environment? => true) }
9
+ let(:yes_too) { double(:working_in_this_environment? => true) }
10
+
11
+ it "when at least one reporter works it is working" do
12
+ reporter = Approvals::Reporters::FirstWorkingReporter.new(no, yes)
13
+ expect(reporter).to be_working_in_this_environment
14
+ end
15
+
16
+ it "when no reporters work it's not working" do
17
+ reporter = Approvals::Reporters::FirstWorkingReporter.new(no, no)
18
+ expect(reporter).not_to be_working_in_this_environment
19
+ end
20
+
21
+ it "calls the first working reporter" do
22
+ working = Approvals::Reporters::FirstWorkingReporter.new(no, yes, yes_too)
23
+
24
+ expect(no).not_to receive(:report)
25
+ expect(yes).to receive(:report)
26
+ expect(yes_too).not_to receive(:report)
27
+
28
+ working.report("r", "a")
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+ require 'approvals/reporters'
3
+ require 'approvals/scrubber'
4
+
5
+ describe Approvals::Reporters::HtmlImageReporter do
6
+
7
+ subject { Approvals::Reporters::HtmlImageReporter.instance }
8
+
9
+ it "creates the template" do
10
+ scrubber = Approvals::Scrubber.new(subject.html("spec/fixtures/one.png", "spec/fixtures/two.png"))
11
+ expect(scrubber.to_s).to eq('<html><head><title>Approval</title></head><body><center><table style="text-align: center;" border="1"><tr><td><img src="file://{{current_dir}}/spec/fixtures/one.png"></td><td><img src="file://{{current_dir}}/spec/fixtures/two.png"></td></tr><tr><td>received</td><td>approved</td></tr></table></center></body></html>')
12
+ end
13
+
14
+ # verify "creates the appropriate command", :format => :html do
15
+ # reporter = Reporters::HtmlImageReporter.instance
16
+ # scrubber = Scrubber.new(reporter.html("spec/fixtures/one.png", "spec/fixtures/two.png"))
17
+ # scrubber.to_executable do |html|
18
+ # reporter.display(html)
19
+ # end
20
+ # end
21
+
22
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+ require 'approvals/reporters'
3
+
4
+ describe Approvals::Reporters::ImageMagickReporter do
5
+ subject { Approvals::Reporters::ImageMagickReporter.instance }
6
+
7
+ it "creates the appropriate command" do
8
+ result = subject.create_command_line("spec/fixtures/one.png", "spec/fixtures/two.png")
9
+ expected = "compare spec/fixtures/one.png spec/fixtures/two.png -compose Src x:"
10
+ if result != expected
11
+ system(result)
12
+ system(expected)
13
+ end
14
+ expect(result).to eq(expected)
15
+ end
16
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'approvals/reporters/launcher'
3
+
4
+ describe Approvals::Reporters::Launcher do
5
+ it "has a vimdiff launcher" do
6
+ expect(described_class.vimdiff.call('one', 'two')).to eq("vimdiff one two")
7
+ end
8
+
9
+ it "has an opendiff launcher" do
10
+ expect(described_class.opendiff.call('one', 'two')).to eq("opendiff one two")
11
+ end
12
+
13
+ it "has a diffmerge launcher" do
14
+ expect(described_class.diffmerge.call('one', 'two')).to match(/DiffMerge.*\"one\"\ \"two\"/)
15
+ end
16
+
17
+ it "has a tortoisediff launcher" do
18
+ expect(described_class.tortoisediff.call('one', 'two')).to match(/TortoiseMerge.exe.*one.*two/)
19
+ end
20
+
21
+ it "has a filelauncher launcher" do
22
+ expect(described_class.filelauncher.call('one', 'two')).to eq("open one")
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Approvals::Reporters::OpendiffReporter do
4
+
5
+ it "has a nice launcher" do
6
+ skip "Breaks off execution of the tests. Horrible."
7
+ one = 'spec/fixtures/one.txt'
8
+ two = 'spec/fixtures/two.txt'
9
+ executable = Approvals::Executable.new(Approvals::Reporters::OpendiffReporter.instance.launcher.call(one, two)) do |command|
10
+ Approvals::Reporters::OpendiffReporter.report(one, two)
11
+ end
12
+
13
+ Approvals.verify(executable, :name => 'opendiff launcher')
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'approvals/reporters'
3
+
4
+ describe Approvals::Reporters::Reporter do
5
+
6
+ it "is not approved by default" do
7
+ expect(Approvals::Reporters::Reporter.new).not_to be_approved_when_reported
8
+ end
9
+
10
+ it "takes a launcher" do
11
+ move = lambda {|received, approved|
12
+ "echo \"mv #{received} #{approved}\""
13
+ }
14
+
15
+ expect(Approvals::Reporters::Reporter.new(&move).launcher.call('received.txt', 'approved.txt')).to eq("echo \"mv received.txt approved.txt\"")
16
+ end
17
+
18
+ it "defaults to the default OpenDiff launcher" do
19
+ expect(Approvals::Reporters::Reporter.new.launcher).to eq(Approvals::Reporters::Launcher.opendiff)
20
+ end
21
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+ require 'approvals/scrubber'
3
+
4
+ describe Approvals::Scrubber do
5
+
6
+ describe "defaults" do
7
+ let(:path) { File.expand_path('.') }
8
+ subject { Approvals::Scrubber.new("I am currently at #{path}") }
9
+
10
+ it "has a sensible to_s" do
11
+ expect(subject.to_s).to eq("I am currently at {{current_dir}}")
12
+ end
13
+
14
+ it "unscrubs" do
15
+ expect(subject.unscrub).to eq("I am currently at #{path}")
16
+ end
17
+
18
+ it "unscrubs any old string" do
19
+ expect(subject.unscrub("Hoy, where's {{current_dir}}?")).to eq("Hoy, where's #{path}?")
20
+ end
21
+ end
22
+
23
+ it "overrides default hash" do
24
+ expect(Approvals::Scrubber.new("oh, my GAWD", {"deity" => "GAWD"}).to_s).to eq('oh, my {{deity}}')
25
+ end
26
+ end
@@ -0,0 +1,7 @@
1
+ require 'approvals'
2
+
3
+ # Configure RSpec
4
+ RSpec.configure do |config|
5
+ # Use color
6
+ config.color = true
7
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+ require 'approvals/system_command'
3
+
4
+ describe Approvals::SystemCommand, "#exists?" do
5
+
6
+ it "does" do
7
+ expect(Approvals::SystemCommand.exists?("ls")).to be_truthy
8
+ end
9
+
10
+ it "does not" do
11
+ expect(Approvals::SystemCommand.exists?("absolutelydoesnotexistonyoursystem")).to be_falsey
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,196 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: br-approvals
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.22
5
+ platform: ruby
6
+ authors:
7
+ - Katrina Owen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-03-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.18'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.18'
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ description: Approval Tests for Ruby
56
+ email:
57
+ - katrina.owen@gmail.com
58
+ executables:
59
+ - approvals
60
+ extensions:
61
+ - ext/mkrf_conf.rb
62
+ extra_rdoc_files: []
63
+ files:
64
+ - ".gitignore"
65
+ - ".travis.yml"
66
+ - CHANGELOG.md
67
+ - Gemfile
68
+ - License.txt
69
+ - README.md
70
+ - Rakefile
71
+ - approvals.gemspec
72
+ - bin/approvals
73
+ - ext/mkrf_conf.rb
74
+ - lib/approvals.rb
75
+ - lib/approvals/approval.rb
76
+ - lib/approvals/cli.rb
77
+ - lib/approvals/configuration.rb
78
+ - lib/approvals/dotfile.rb
79
+ - lib/approvals/dsl.rb
80
+ - lib/approvals/error.rb
81
+ - lib/approvals/executable.rb
82
+ - lib/approvals/extensions/rspec.rb
83
+ - lib/approvals/extensions/rspec/dsl.rb
84
+ - lib/approvals/filter.rb
85
+ - lib/approvals/namers/default_namer.rb
86
+ - lib/approvals/namers/directory_namer.rb
87
+ - lib/approvals/namers/rspec_namer.rb
88
+ - lib/approvals/reporters.rb
89
+ - lib/approvals/reporters/diff_reporter/diffmerge_reporter.rb
90
+ - lib/approvals/reporters/diff_reporter/opendiff_reporter.rb
91
+ - lib/approvals/reporters/diff_reporter/tortoisediff_reporter.rb
92
+ - lib/approvals/reporters/diff_reporter/vimdiff_reporter.rb
93
+ - lib/approvals/reporters/filelauncher_reporter.rb
94
+ - lib/approvals/reporters/first_working_reporter.rb
95
+ - lib/approvals/reporters/image_reporter.rb
96
+ - lib/approvals/reporters/image_reporter/html_image_reporter.rb
97
+ - lib/approvals/reporters/image_reporter/image_magick_reporter.rb
98
+ - lib/approvals/reporters/launcher.rb
99
+ - lib/approvals/reporters/reporter.rb
100
+ - lib/approvals/rspec.rb
101
+ - lib/approvals/scrubber.rb
102
+ - lib/approvals/system_command.rb
103
+ - lib/approvals/version.rb
104
+ - lib/approvals/writer.rb
105
+ - lib/approvals/writers/array_writer.rb
106
+ - lib/approvals/writers/binary_writer.rb
107
+ - lib/approvals/writers/hash_writer.rb
108
+ - lib/approvals/writers/html_writer.rb
109
+ - lib/approvals/writers/json_writer.rb
110
+ - lib/approvals/writers/text_writer.rb
111
+ - lib/approvals/writers/xml_writer.rb
112
+ - spec/approvals_spec.rb
113
+ - spec/configuration_spec.rb
114
+ - spec/dotfile_spec.rb
115
+ - spec/executable_spec.rb
116
+ - spec/extensions/rspec_approvals_spec.rb
117
+ - spec/filter_spec.rb
118
+ - spec/fixtures/approvals/approvals_custom_writer_verifies_a_complex_object.approved.txt
119
+ - spec/fixtures/approvals/approvals_passes_approved_files_through_erb.approved.txt
120
+ - spec/fixtures/approvals/approvals_passes_the_received_files_through_erb.approved.txt
121
+ - spec/fixtures/approvals/approvals_supports_excluded_keys_option_also_supports_an_array_of_hashes.approved.json
122
+ - spec/fixtures/approvals/approvals_supports_excluded_keys_option_supports_the_array_writer.approved.txt
123
+ - spec/fixtures/approvals/approvals_supports_excluded_keys_option_supports_the_hash_writer.approved.txt
124
+ - spec/fixtures/approvals/approvals_supports_excluded_keys_option_verifies_json_with_excluded_keys.approved.json
125
+ - spec/fixtures/approvals/approvals_verifies_a_complex_object.approved.txt
126
+ - spec/fixtures/approvals/approvals_verifies_a_hash.approved.txt
127
+ - spec/fixtures/approvals/approvals_verifies_a_malformed_html_fragment.approved.html
128
+ - spec/fixtures/approvals/approvals_verifies_a_string.approved.txt
129
+ - spec/fixtures/approvals/approvals_verifies_an_array.approved.txt
130
+ - spec/fixtures/approvals/approvals_verifies_an_array_as_json_when_format_is_set_to_json.approved.json
131
+ - spec/fixtures/approvals/approvals_verifies_an_executable.approved.txt
132
+ - spec/fixtures/approvals/approvals_verifies_html.approved.html
133
+ - spec/fixtures/approvals/approvals_verifies_json.approved.json
134
+ - spec/fixtures/approvals/approvals_verifies_json_and_is_newline_agnostic.approved.json
135
+ - spec/fixtures/approvals/approvals_verifies_xml.approved.xml
136
+ - spec/fixtures/approvals/verifications_a_string.approved.txt
137
+ - spec/fixtures/approvals/verifies_a_complex_object.approved.txt
138
+ - spec/fixtures/approvals/verifies_a_failure.approved.txt
139
+ - spec/fixtures/approvals/verifies_a_failure_diff.approved.txt
140
+ - spec/fixtures/approvals/verifies_a_string.approved.txt
141
+ - spec/fixtures/approvals/verifies_an_array.approved.txt
142
+ - spec/fixtures/approvals/verifies_an_executable.approved.txt
143
+ - spec/fixtures/approvals/verifies_directory/a_complex_object.approved.txt
144
+ - spec/fixtures/approvals/verifies_directory/a_failure.approved.txt
145
+ - spec/fixtures/approvals/verifies_directory/a_failure_diff.approved.txt
146
+ - spec/fixtures/approvals/verifies_directory/a_string.approved.txt
147
+ - spec/fixtures/approvals/verifies_directory/an_array.approved.txt
148
+ - spec/fixtures/approvals/verifies_directory/an_executable.approved.txt
149
+ - spec/fixtures/approvals/verifies_directory/html.approved.html
150
+ - spec/fixtures/approvals/verifies_directory/json.approved.json
151
+ - spec/fixtures/approvals/verifies_directory/xml.approved.xml
152
+ - spec/fixtures/approvals/verifies_html.approved.html
153
+ - spec/fixtures/approvals/verifies_json.approved.json
154
+ - spec/fixtures/approvals/verifies_xml.approved.xml
155
+ - spec/fixtures/one.png
156
+ - spec/fixtures/one.txt
157
+ - spec/fixtures/two.png
158
+ - spec/fixtures/two.txt
159
+ - spec/namers/default_namer_spec.rb
160
+ - spec/namers/directory_namer_spec.rb
161
+ - spec/namers/rspec_namer_spec.rb
162
+ - spec/namers_spec.rb
163
+ - spec/reporters/first_working_reporter_spec.rb
164
+ - spec/reporters/html_image_reporter_spec.rb
165
+ - spec/reporters/image_magick_reporter_spec.rb
166
+ - spec/reporters/launcher_spec.rb
167
+ - spec/reporters/opendiff_reporter_spec.rb
168
+ - spec/reporters/reporter_spec.rb
169
+ - spec/scrubber_spec.rb
170
+ - spec/spec_helper.rb
171
+ - spec/system_command_spec.rb
172
+ homepage: ''
173
+ licenses:
174
+ - MIT
175
+ metadata: {}
176
+ post_install_message:
177
+ rdoc_options: []
178
+ require_paths:
179
+ - lib
180
+ required_ruby_version: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ required_rubygems_version: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ requirements: []
191
+ rubyforge_project: approvals
192
+ rubygems_version: 2.5.2
193
+ signing_key:
194
+ specification_version: 4
195
+ summary: Approval Tests for Ruby
196
+ test_files: []