slather 1.5.0 → 1.5.1

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: 46f9e4fda1716e9fef3ef6cf621c7008d1b3f0ed
4
- data.tar.gz: 4f34b0648dcd51da3480ba7bc138069790096345
3
+ metadata.gz: b74146844eaeb36f2504f1b3d68e590a5e10144d
4
+ data.tar.gz: baed92208b8cba0525eb4c7ed9a0089f5f6d28de
5
5
  SHA512:
6
- metadata.gz: 6a5ab9bfa9dc93b84d94eccaf2f2d6313ab98efbc46e60d3df0bd10244d77e5c48994f83e4e8430d349a80b9a8219cdfb3942e8ee4fe81ba0cc98be60847dd11
7
- data.tar.gz: 41d88beeca785be4edd61526e455ed2a6265078536332b1ba1adee3f4e1a813b129f833871a554950c26d6c9b292f775da835f6ee0b121b5c1ec4b86606ac0df
6
+ metadata.gz: 12c63ac37efb3a93bff26f71990a532ce0bc93d98fdca7f637e214b3eb7bdcaf67ad400a57f933241cf01e66f7db32a42d4971c21c9ddd69678cc69cb639384a
7
+ data.tar.gz: be09f2c02c71ca463bab39d56515b2d5de22d54ab3546950dd370a05daf5618f264cf4aeb46d02d5bd52d06cc5a121b792d524f1a5bcc75a68dd97cb6f4c563d
@@ -0,0 +1,94 @@
1
+ # CHANGELOG
2
+
3
+ ## master
4
+
5
+ ## v1.5.1
6
+
7
+ * Avoid crashes when coverage data is empty
8
+ * Fix bug which prevented source files without coverage data to be included in Cobertura xml report
9
+ [Julian Krumow](https://github.com/tarbrain)
10
+ [#34](https://github.com/venmo/slather/pull/34)
11
+
12
+ ## v1.5.0
13
+
14
+ * Add support for Cobertura
15
+ [Julian Krumow](https://github.com/tarbrain)
16
+ [#30](https://github.com/venmo/slather/pull/30)
17
+
18
+ ## v1.4.0
19
+
20
+ * Implement a CocoaPods plugin
21
+ [Kyle Fuller](https://github.com/kylef)
22
+ [#25](https://github.com/venmo/slather/pull/25)
23
+
24
+ * Avoid getting 'Infinity' or 'NaN' when dividing by 0.0
25
+ [Mark Larsen](https://github.com/marklarr)
26
+
27
+ * Ignore exceptions about files not existing by using 'force'
28
+ [Mark Larsen](https://github.com/marklarr)
29
+
30
+ ## v1.3.0
31
+
32
+ * Add Gutter JSON output
33
+ [Boris Bügling](https://github.com/neonichu)
34
+ [#24](https://github.com/venmo/slather/pull/24)
35
+
36
+ ## v1.2.1
37
+
38
+ * Fix typo --simple-output description
39
+ [Ayaka Nonaka](https://github.com/ayanonagon)
40
+ [#19](https://github.com/venmo/slather/pull/19)
41
+
42
+ * Remove broken travis pro support
43
+ [Mark Larsen](https://github.com/marklarr)
44
+ [#22](https://github.com/venmo/slather/pull/22)
45
+
46
+ * Fix exception for files without `@interface` or `@implementation`
47
+ [Piet Brauer](https://github.com/pietbrauer)
48
+ [#23](https://github.com/venmo/slather/pull/23)
49
+
50
+ ## v1.2.0
51
+
52
+ * Remove duplicate coverage files, favoring the file with higher coverage.
53
+ [Ayaka Nonaka](https://github.com/ayanonagon)
54
+ [#16](https://github.com/venmo/slather/pull/16)
55
+
56
+ * Add support for access token and Travis Pro
57
+ [Chris Maddern](https://github.com/chrismaddern)
58
+ [#17](https://github.com/venmo/slather/pull/17)
59
+
60
+ ## v1.1.0
61
+
62
+ * Support for code coverage of pods
63
+ [Mark Larsen](https://github.com/marklarr)
64
+
65
+ ## v1.0.1
66
+
67
+ * Fix coverage search for files that contain spaces
68
+ [Mark Larsen](https://github.com/marklarr)
69
+
70
+ ## v1.0.0
71
+
72
+ * beautified README
73
+ [Ayaka Nonaka](https://github.com/ayanonagon)
74
+ [#4](https://github.com/venmo/slather/pull/4)
75
+ [Kyle Fuller](https://github.com/kylef)
76
+ [#5](https://github.com/venmo/slather/pull/5)
77
+
78
+ * Add Travis automated builds
79
+ [Mark Larsen](https://github.com/marklarr)
80
+ [#6](https://github.com/venmo/slather/pull/6)
81
+
82
+ * Use `||=` instead of `unless`
83
+ [Ayaka Nonaka](https://github.com/ayanonagon)
84
+ [#7](https://github.com/venmo/slather/pull/7)
85
+
86
+ ## v0.0.31
87
+
88
+ * find source files via pbx proj rather than file system
89
+ [Mark Larsen](https://github.com/marklarr)
90
+
91
+ ## v0.0.3
92
+
93
+ * Initial Release
94
+ [Mark Larsen](https://github.com/marklarr)
@@ -45,6 +45,8 @@ module Slather
45
45
  gcov_file_name = "./#{source_file_pathname.basename}.gcov"
46
46
  if File.exists?(gcov_file_name)
47
47
  gcov_data = File.new(gcov_file_name).read
48
+ else
49
+ gcov_data = ""
48
50
  end
49
51
 
50
52
  gcov_files_created.each { |file| FileUtils.rm_f(file) }
@@ -53,7 +55,7 @@ module Slather
53
55
  end
54
56
 
55
57
  def line_coverage_data
56
- if cleaned_gcov_data
58
+ unless cleaned_gcov_data.empty?
57
59
  first_line_start = cleaned_gcov_data =~ /^\s+(-|#+|[0-9+]):\s+1:/
58
60
 
59
61
  cleaned_gcov_data[first_line_start..-1].split("\n").map do |line|
@@ -92,38 +94,38 @@ module Slather
92
94
  end
93
95
 
94
96
  def rate_lines_tested
95
- (num_lines_tested / num_lines_testable.to_f)
96
- end
97
-
98
- def percentage_lines_tested
99
- if num_lines_testable > 0
100
- (num_lines_tested / num_lines_testable.to_f) * 100.0
97
+ if num_lines_testable > 0
98
+ (num_lines_tested / num_lines_testable.to_f)
101
99
  else
102
100
  0
103
101
  end
104
102
  end
105
103
 
104
+ def percentage_lines_tested
105
+ rate_lines_tested * 100
106
+ end
107
+
106
108
  def branch_coverage_data
107
109
  @branch_coverage_data ||= begin
108
110
  branch_coverage_data = Hash.new
109
111
 
110
- @gcov_data.scan(/(^(\s+(-|#+|[0-9]+):\s+[1-9]+:(.*)$\r?\n)(^branch\s+[0-9]+\s+[a-zA-Z0-9]+\s+[a-zA-Z0-9]+$\r?\n)+)+/) {|data|
111
- lines = data[0].split("\n")
112
- line_number = lines[0].split(':')[1].strip.to_i
113
- branch_coverage_data[line_number] = lines[1..-1].map do |line|
114
- if line.split(' ')[2].strip == "never"
115
- 0
116
- else
117
- line.split(' ')[3].strip.to_i
112
+ gcov_data.scan(/(^(\s+(-|#+|[0-9]+):\s+[1-9]+:(.*)$\r?\n)(^branch\s+[0-9]+\s+[a-zA-Z0-9]+\s+[a-zA-Z0-9]+$\r?\n)+)+/) do |data|
113
+ lines = data[0].split("\n")
114
+ line_number = lines[0].split(':')[1].strip.to_i
115
+ branch_coverage_data[line_number] = lines[1..-1].map do |line|
116
+ if line.split(' ')[2].strip == "never"
117
+ 0
118
+ else
119
+ line.split(' ')[3].strip.to_i
120
+ end
118
121
  end
119
122
  end
120
- }
121
123
  branch_coverage_data
122
124
  end
123
125
  end
124
126
 
125
127
  def branch_coverage_data_for_statement_on_line(line_number)
126
- branch_coverage_data[line_number]
128
+ branch_coverage_data[line_number] || []
127
129
  end
128
130
 
129
131
  def num_branches_for_statement_on_line(line_number)
@@ -136,7 +138,7 @@ module Slather
136
138
 
137
139
  def rate_branch_coverage_for_statement_on_line(line_number)
138
140
  branch_data = branch_coverage_data_for_statement_on_line(line_number)
139
- if branch_data == nil
141
+ if branch_data.empty?
140
142
  0.0
141
143
  else
142
144
  (num_branch_hits_for_statement_on_line(line_number) / branch_data.length.to_f)
@@ -160,10 +162,10 @@ module Slather
160
162
  end
161
163
 
162
164
  def rate_branches_tested
163
- if (num_branches_testable == 0)
164
- 0.0
165
- else
165
+ if (num_branches_testable > 0)
166
166
  (num_branches_tested / num_branches_testable.to_f)
167
+ else
168
+ 0.0
167
169
  end
168
170
  end
169
171
 
@@ -56,7 +56,6 @@ module Slather
56
56
  total_package_branches_tested = 0
57
57
 
58
58
  package_coverage_files.each do |package_coverage_file|
59
- next unless package_coverage_file.gcov_data
60
59
  class_node = create_class_node(package_coverage_file)
61
60
  class_node.parent = classes_node
62
61
  total_package_lines += package_coverage_file.num_lines_testable
@@ -128,7 +127,7 @@ module Slather
128
127
  line_node['branch'] = "false"
129
128
  line_node['hits'] = coverage_file.coverage_for_line(line)
130
129
 
131
- if coverage_file.branch_coverage_data_for_statement_on_line(line_number)
130
+ unless coverage_file.branch_coverage_data_for_statement_on_line(line_number).empty?
132
131
  line_node['branch'] = "true"
133
132
  conditions_node = Nokogiri::XML::Node.new "conditions", @doc
134
133
  conditions_node.parent = line_node
@@ -1,3 +1,3 @@
1
1
  module Slather
2
- VERSION = "1.5.0"
2
+ VERSION = "1.5.1"
3
3
  end
@@ -48,6 +48,10 @@
48
48
  <line number="43" branch="false" hits="2"/>
49
49
  </lines>
50
50
  </class>
51
+ <class name="Empty" filename="spec/fixtures/fixtures/more_files/Empty.m" line-rate="0.0000000000000000" branch-rate="0.0000000000000000" complexity="0.0">
52
+ <methods/>
53
+ <lines/>
54
+ </class>
51
55
  <class name="peekaview" filename="spec/fixtures/fixtures/more_files/peekaview.m" line-rate="0.0000000000000000" branch-rate="0.0000000000000000" complexity="0.0">
52
56
  <methods/>
53
57
  <lines>
@@ -10,6 +10,8 @@
10
10
  155BBCA519E9CB6700BACB13 /* Branches.h in Headers */ = {isa = PBXBuildFile; fileRef = 155BBCA319E9CB6700BACB13 /* Branches.h */; };
11
11
  155BBCA619E9CB6700BACB13 /* Branches.m in Sources */ = {isa = PBXBuildFile; fileRef = 155BBCA419E9CB6700BACB13 /* Branches.m */; };
12
12
  155BBCA819E9CCC500BACB13 /* BranchesTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 155BBCA719E9CCC500BACB13 /* BranchesTests.m */; };
13
+ 155D8AFE19FED984004666BA /* Empty.h in Headers */ = {isa = PBXBuildFile; fileRef = 155D8AFC19FED984004666BA /* Empty.h */; };
14
+ 155D8AFF19FED984004666BA /* Empty.m in Sources */ = {isa = PBXBuildFile; fileRef = 155D8AFD19FED984004666BA /* Empty.m */; };
13
15
  8C52AEF7195AAE32008A882A /* peekaview.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C52AEF5195AAE32008A882A /* peekaview.h */; };
14
16
  8C52AEF8195AAE33008A882A /* peekaview.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C52AEF6195AAE32008A882A /* peekaview.m */; };
15
17
  8C52AEFA195AAE70008A882A /* peekaviewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C52AEF9195AAE70008A882A /* peekaviewTests.m */; };
@@ -36,6 +38,8 @@
36
38
  155BBCA319E9CB6700BACB13 /* Branches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Branches.h; sourceTree = "<group>"; };
37
39
  155BBCA419E9CB6700BACB13 /* Branches.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Branches.m; sourceTree = "<group>"; };
38
40
  155BBCA719E9CCC500BACB13 /* BranchesTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchesTests.m; sourceTree = "<group>"; };
41
+ 155D8AFC19FED984004666BA /* Empty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Empty.h; sourceTree = "<group>"; };
42
+ 155D8AFD19FED984004666BA /* Empty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Empty.m; sourceTree = "<group>"; };
39
43
  8C52AEF5195AAE32008A882A /* peekaview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = peekaview.h; sourceTree = "<group>"; };
40
44
  8C52AEF6195AAE32008A882A /* peekaview.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = peekaview.m; sourceTree = "<group>"; };
41
45
  8C52AEF9195AAE70008A882A /* peekaviewTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = peekaviewTests.m; sourceTree = "<group>"; };
@@ -83,6 +87,8 @@
83
87
  8C52AEF6195AAE32008A882A /* peekaview.m */,
84
88
  155BBCA319E9CB6700BACB13 /* Branches.h */,
85
89
  155BBCA419E9CB6700BACB13 /* Branches.m */,
90
+ 155D8AFC19FED984004666BA /* Empty.h */,
91
+ 155D8AFD19FED984004666BA /* Empty.m */,
86
92
  );
87
93
  path = more_files;
88
94
  sourceTree = "<group>";
@@ -172,6 +178,7 @@
172
178
  isa = PBXHeadersBuildPhase;
173
179
  buildActionMask = 2147483647;
174
180
  files = (
181
+ 155D8AFE19FED984004666BA /* Empty.h in Headers */,
175
182
  155BBCA519E9CB6700BACB13 /* Branches.h in Headers */,
176
183
  8C52AEF7195AAE32008A882A /* peekaview.h in Headers */,
177
184
  );
@@ -259,6 +266,7 @@
259
266
  buildActionMask = 2147483647;
260
267
  files = (
261
268
  8C9A203B195965F10013B6B3 /* fixtures.m in Sources */,
269
+ 155D8AFF19FED984004666BA /* Empty.m in Sources */,
262
270
  155BBCA619E9CB6700BACB13 /* Branches.m in Sources */,
263
271
  8C52AEF8195AAE33008A882A /* peekaview.m in Sources */,
264
272
  );
@@ -0,0 +1,13 @@
1
+ //
2
+ // Empty.h
3
+ // fixtures
4
+ //
5
+ // Created by Julian Krumow on 27.10.14.
6
+ // Copyright (c) 2014 marklarr. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+
11
+ @interface Empty : NSObject
12
+
13
+ @end
@@ -0,0 +1,13 @@
1
+ //
2
+ // Empty.m
3
+ // fixtures
4
+ //
5
+ // Created by Julian Krumow on 27.10.14.
6
+ // Copyright (c) 2014 marklarr. All rights reserved.
7
+ //
8
+
9
+ #import "Empty.h"
10
+
11
+ @implementation Empty
12
+
13
+ @end
@@ -266,4 +266,68 @@ OBJC
266
266
  end
267
267
  end
268
268
 
269
+ describe "empty coverage data" do
270
+
271
+ let(:empty_file) do
272
+ fixtures_project.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == "Empty.m" }
273
+ end
274
+
275
+ describe "gcov_data" do
276
+ it "returns an empty string" do
277
+ gcov_data = empty_file.gcov_data
278
+ expect(gcov_data).to be_empty
279
+ end
280
+ end
281
+
282
+ describe "cleaned_gcov_data" do
283
+ it "returns an empty string" do
284
+ cleaned_gcov_data = empty_file.cleaned_gcov_data
285
+ expect(cleaned_gcov_data).to be_empty
286
+ end
287
+ end
288
+
289
+ describe "branch_coverage_data" do
290
+ it "returns an empty hash for branch_coverage_data of an empty file" do
291
+ data = empty_file.branch_coverage_data
292
+ expect(data).to be_empty
293
+ end
294
+ end
295
+
296
+ describe "num_branch_hits_for_statement_on_line" do
297
+ it "returns 0.0 when no data is available" do
298
+ expect(empty_file.num_branch_hits_for_statement_on_line(1)).to eq(0)
299
+ end
300
+ end
301
+
302
+ describe "rate_branch_coverage_for_statement_on_line" do
303
+ it "returns 0.0 when no data is available" do
304
+ expect(empty_file.rate_branch_coverage_for_statement_on_line(1)).to eq(0.0)
305
+ end
306
+ end
307
+
308
+ describe "percentage_branch_coverage_for_statement_on_line" do
309
+ it "returns 0 when no data is available" do
310
+ expect(empty_file.percentage_branch_coverage_for_statement_on_line(1)).to eq(0)
311
+ end
312
+ end
313
+
314
+ describe "num_branches_testable" do
315
+ it "returns 0 when no data is available" do
316
+ expect(empty_file.num_branches_testable).to eq(0)
317
+ end
318
+ end
319
+
320
+ describe "num_branches_tested" do
321
+ it "returns 0 when no data is available" do
322
+ expect(empty_file.num_branches_tested).to eq(0)
323
+ end
324
+ end
325
+
326
+ describe "rate_branches_tested" do
327
+ it "returns 0.0 when no data is available" do
328
+ expect(empty_file.rate_branches_tested).to eq(0.0)
329
+ end
330
+ end
331
+ end
332
+
269
333
  end
@@ -27,7 +27,7 @@ describe Slather::CoverageService::Coveralls do
27
27
 
28
28
  it "should return valid json for coveralls coverage data" do
29
29
  fixtures_project.stub(:travis_job_id).and_return("9182")
30
- expect(fixtures_project.send(:coveralls_coverage_data)).to eq("{\"service_job_id\":\"9182\",\"service_name\":\"travis-ci\",\"source_files\":[{\"name\":\"spec/fixtures/fixtures/more_files/Branches.m\",\"source\":\"//\\n// Branches.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"Branches.h\\\"\\n\\n@implementation Branches\\n\\n- (void)branches:(BOOL)goIf skipBranches:(BOOL)skipBranches\\n{\\n if (goIf) {\\n NSLog(@\\\"foo.\\\");\\n \\n if (!skipBranches) {\\n NSLog(@\\\"not skipped.\\\");\\n }\\n } else {\\n NSLog(@\\\"bar.\\\");\\n }\\n \\n int i = 5;\\n if (i == 5) {\\n return;\\n }\\n switch (i) {\\n case 0:\\n NSLog(@\\\"0\\\");\\n break;\\n \\n case 1:\\n NSLog(@\\\"1\\\");\\n break;\\n case 5:\\n NSLog(@\\\"5\\\");\\n break;\\n default:\\n break;\\n }\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,1,null,1,0,0,1,1,null,null,2,2,2,null,0,null,0,0,null,null,0,0,null,0,0,null,0,null,2,null,null]},{\"name\":\"spec/fixtures/fixtures/fixtures.m\",\"source\":\"//\\n// fixtures.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"fixtures.h\\\"\\n\\n@implementation fixtures\\n\\n- (void)testedMethod\\n{\\n NSLog(@\\\"tested\\\");\\n}\\n\\n- (void)untestedMethod\\n{\\n NSLog(@\\\"untested\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,1,null,null,null,0,0,null,null]},{\"name\":\"spec/fixtures/fixtures/more_files/peekaview.m\",\"source\":\"//\\n// peekaview.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"peekaview.h\\\"\\n\\n@implementation peekaview\\n\\n- (id)initWithFrame:(CGRect)frame\\n{\\n self = [super initWithFrame:frame];\\n if (self) {\\n // Initialization code\\n }\\n return self;\\n}\\n\\n/*\\n// Only override drawRect: if you perform custom drawing.\\n// An empty implementation adversely affects performance during animation.\\n- (void)drawRect:(CGRect)rect\\n{\\n // Drawing code\\n}\\n*/\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,0,null,0,0,null,0,0,0,null,null,null,null,null,null,null,null,null,null,null]},{\"name\":\"spec/fixtures/fixturesTests/BranchesTests.m\",\"source\":\"//\\n// BranchesTests.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"Branches.h\\\"\\n\\n@interface BranchesTests : XCTestCase\\n\\n@end\\n\\n@implementation BranchesTests\\n\\n- (void)setUp {\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown {\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testBranchesNoBranches {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:NO skipBranches:NO];\\n}\\n\\n- (void)testBranchesFirstBranchAndSkip {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:YES skipBranches:YES];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,null,null,null,2,2,null,null,1,1,1,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/fixturesTests.m\",\"source\":\"//\\n// fixturesTests.m\\n// fixturesTests\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"fixtures.h\\\"\\n\\n@interface fixturesTests : XCTestCase\\n\\n@end\\n\\n@implementation fixturesTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n fixtures *f = [[fixtures alloc] init];\\n [f testedMethod];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/peekaviewTests.m\",\"source\":\"//\\n// peekaviewTests.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n\\n@interface peekaviewTests : XCTestCase\\n\\n@end\\n\\n@implementation peekaviewTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n XCTAssert(YES, @\\\"woot\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,2,1,null,null]}]}")
30
+ expect(fixtures_project.send(:coveralls_coverage_data)).to eq("{\"service_job_id\":\"9182\",\"service_name\":\"travis-ci\",\"source_files\":[{\"name\":\"spec/fixtures/fixtures/more_files/Branches.m\",\"source\":\"//\\n// Branches.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"Branches.h\\\"\\n\\n@implementation Branches\\n\\n- (void)branches:(BOOL)goIf skipBranches:(BOOL)skipBranches\\n{\\n if (goIf) {\\n NSLog(@\\\"foo.\\\");\\n \\n if (!skipBranches) {\\n NSLog(@\\\"not skipped.\\\");\\n }\\n } else {\\n NSLog(@\\\"bar.\\\");\\n }\\n \\n int i = 5;\\n if (i == 5) {\\n return;\\n }\\n switch (i) {\\n case 0:\\n NSLog(@\\\"0\\\");\\n break;\\n \\n case 1:\\n NSLog(@\\\"1\\\");\\n break;\\n case 5:\\n NSLog(@\\\"5\\\");\\n break;\\n default:\\n break;\\n }\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,1,null,1,0,0,1,1,null,null,2,2,2,null,0,null,0,0,null,null,0,0,null,0,0,null,0,null,2,null,null]},{\"name\":\"spec/fixtures/fixtures/more_files/Empty.m\",\"source\":\"//\\n// Empty.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 27.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"Empty.h\\\"\\n\\n@implementation Empty\\n\\n@end\\n\",\"coverage\":[]},{\"name\":\"spec/fixtures/fixtures/fixtures.m\",\"source\":\"//\\n// fixtures.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"fixtures.h\\\"\\n\\n@implementation fixtures\\n\\n- (void)testedMethod\\n{\\n NSLog(@\\\"tested\\\");\\n}\\n\\n- (void)untestedMethod\\n{\\n NSLog(@\\\"untested\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,1,null,null,null,0,0,null,null]},{\"name\":\"spec/fixtures/fixtures/more_files/peekaview.m\",\"source\":\"//\\n// peekaview.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"peekaview.h\\\"\\n\\n@implementation peekaview\\n\\n- (id)initWithFrame:(CGRect)frame\\n{\\n self = [super initWithFrame:frame];\\n if (self) {\\n // Initialization code\\n }\\n return self;\\n}\\n\\n/*\\n// Only override drawRect: if you perform custom drawing.\\n// An empty implementation adversely affects performance during animation.\\n- (void)drawRect:(CGRect)rect\\n{\\n // Drawing code\\n}\\n*/\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,0,null,0,0,null,0,0,0,null,null,null,null,null,null,null,null,null,null,null]},{\"name\":\"spec/fixtures/fixturesTests/BranchesTests.m\",\"source\":\"//\\n// BranchesTests.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"Branches.h\\\"\\n\\n@interface BranchesTests : XCTestCase\\n\\n@end\\n\\n@implementation BranchesTests\\n\\n- (void)setUp {\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown {\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testBranchesNoBranches {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:NO skipBranches:NO];\\n}\\n\\n- (void)testBranchesFirstBranchAndSkip {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:YES skipBranches:YES];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,null,null,null,2,2,null,null,1,1,1,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/fixturesTests.m\",\"source\":\"//\\n// fixturesTests.m\\n// fixturesTests\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"fixtures.h\\\"\\n\\n@interface fixturesTests : XCTestCase\\n\\n@end\\n\\n@implementation fixturesTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n fixtures *f = [[fixtures alloc] init];\\n [f testedMethod];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/peekaviewTests.m\",\"source\":\"//\\n// peekaviewTests.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n\\n@interface peekaviewTests : XCTestCase\\n\\n@end\\n\\n@implementation peekaviewTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n XCTAssert(YES, @\\\"woot\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,2,1,null,null]}]}")
31
31
  end
32
32
 
33
33
  it "should raise an error if there is no TRAVIS_JOB_ID" do
@@ -47,7 +47,7 @@ describe Slather::CoverageService::Coveralls do
47
47
  fixtures_project.stub(:travis_job_id).and_return("9182")
48
48
  expect(fixtures_project).to receive(:`) do |cmd|
49
49
  expect(cmd).to eq("curl -s --form json_file=@coveralls_json_file https://coveralls.io/api/v1/jobs")
50
- expect(File.open('coveralls_json_file', 'r').read).to eq("{\"service_job_id\":\"9182\",\"service_name\":\"travis-ci\",\"source_files\":[{\"name\":\"spec/fixtures/fixtures/more_files/Branches.m\",\"source\":\"//\\n// Branches.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"Branches.h\\\"\\n\\n@implementation Branches\\n\\n- (void)branches:(BOOL)goIf skipBranches:(BOOL)skipBranches\\n{\\n if (goIf) {\\n NSLog(@\\\"foo.\\\");\\n \\n if (!skipBranches) {\\n NSLog(@\\\"not skipped.\\\");\\n }\\n } else {\\n NSLog(@\\\"bar.\\\");\\n }\\n \\n int i = 5;\\n if (i == 5) {\\n return;\\n }\\n switch (i) {\\n case 0:\\n NSLog(@\\\"0\\\");\\n break;\\n \\n case 1:\\n NSLog(@\\\"1\\\");\\n break;\\n case 5:\\n NSLog(@\\\"5\\\");\\n break;\\n default:\\n break;\\n }\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,1,null,1,0,0,1,1,null,null,2,2,2,null,0,null,0,0,null,null,0,0,null,0,0,null,0,null,2,null,null]},{\"name\":\"spec/fixtures/fixtures/fixtures.m\",\"source\":\"//\\n// fixtures.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"fixtures.h\\\"\\n\\n@implementation fixtures\\n\\n- (void)testedMethod\\n{\\n NSLog(@\\\"tested\\\");\\n}\\n\\n- (void)untestedMethod\\n{\\n NSLog(@\\\"untested\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,1,null,null,null,0,0,null,null]},{\"name\":\"spec/fixtures/fixtures/more_files/peekaview.m\",\"source\":\"//\\n// peekaview.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"peekaview.h\\\"\\n\\n@implementation peekaview\\n\\n- (id)initWithFrame:(CGRect)frame\\n{\\n self = [super initWithFrame:frame];\\n if (self) {\\n // Initialization code\\n }\\n return self;\\n}\\n\\n/*\\n// Only override drawRect: if you perform custom drawing.\\n// An empty implementation adversely affects performance during animation.\\n- (void)drawRect:(CGRect)rect\\n{\\n // Drawing code\\n}\\n*/\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,0,null,0,0,null,0,0,0,null,null,null,null,null,null,null,null,null,null,null]},{\"name\":\"spec/fixtures/fixturesTests/BranchesTests.m\",\"source\":\"//\\n// BranchesTests.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"Branches.h\\\"\\n\\n@interface BranchesTests : XCTestCase\\n\\n@end\\n\\n@implementation BranchesTests\\n\\n- (void)setUp {\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown {\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testBranchesNoBranches {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:NO skipBranches:NO];\\n}\\n\\n- (void)testBranchesFirstBranchAndSkip {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:YES skipBranches:YES];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,null,null,null,2,2,null,null,1,1,1,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/fixturesTests.m\",\"source\":\"//\\n// fixturesTests.m\\n// fixturesTests\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"fixtures.h\\\"\\n\\n@interface fixturesTests : XCTestCase\\n\\n@end\\n\\n@implementation fixturesTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n fixtures *f = [[fixtures alloc] init];\\n [f testedMethod];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/peekaviewTests.m\",\"source\":\"//\\n// peekaviewTests.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n\\n@interface peekaviewTests : XCTestCase\\n\\n@end\\n\\n@implementation peekaviewTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n XCTAssert(YES, @\\\"woot\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,2,1,null,null]}]}")
50
+ expect(File.open('coveralls_json_file', 'r').read).to eq("{\"service_job_id\":\"9182\",\"service_name\":\"travis-ci\",\"source_files\":[{\"name\":\"spec/fixtures/fixtures/more_files/Branches.m\",\"source\":\"//\\n// Branches.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"Branches.h\\\"\\n\\n@implementation Branches\\n\\n- (void)branches:(BOOL)goIf skipBranches:(BOOL)skipBranches\\n{\\n if (goIf) {\\n NSLog(@\\\"foo.\\\");\\n \\n if (!skipBranches) {\\n NSLog(@\\\"not skipped.\\\");\\n }\\n } else {\\n NSLog(@\\\"bar.\\\");\\n }\\n \\n int i = 5;\\n if (i == 5) {\\n return;\\n }\\n switch (i) {\\n case 0:\\n NSLog(@\\\"0\\\");\\n break;\\n \\n case 1:\\n NSLog(@\\\"1\\\");\\n break;\\n case 5:\\n NSLog(@\\\"5\\\");\\n break;\\n default:\\n break;\\n }\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,1,null,1,0,0,1,1,null,null,2,2,2,null,0,null,0,0,null,null,0,0,null,0,0,null,0,null,2,null,null]},{\"name\":\"spec/fixtures/fixtures/more_files/Empty.m\",\"source\":\"//\\n// Empty.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 27.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"Empty.h\\\"\\n\\n@implementation Empty\\n\\n@end\\n\",\"coverage\":[]},{\"name\":\"spec/fixtures/fixtures/fixtures.m\",\"source\":\"//\\n// fixtures.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"fixtures.h\\\"\\n\\n@implementation fixtures\\n\\n- (void)testedMethod\\n{\\n NSLog(@\\\"tested\\\");\\n}\\n\\n- (void)untestedMethod\\n{\\n NSLog(@\\\"untested\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,1,null,null,null,0,0,null,null]},{\"name\":\"spec/fixtures/fixtures/more_files/peekaview.m\",\"source\":\"//\\n// peekaview.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import \\\"peekaview.h\\\"\\n\\n@implementation peekaview\\n\\n- (id)initWithFrame:(CGRect)frame\\n{\\n self = [super initWithFrame:frame];\\n if (self) {\\n // Initialization code\\n }\\n return self;\\n}\\n\\n/*\\n// Only override drawRect: if you perform custom drawing.\\n// An empty implementation adversely affects performance during animation.\\n- (void)drawRect:(CGRect)rect\\n{\\n // Drawing code\\n}\\n*/\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,0,null,0,0,null,0,0,0,null,null,null,null,null,null,null,null,null,null,null]},{\"name\":\"spec/fixtures/fixturesTests/BranchesTests.m\",\"source\":\"//\\n// BranchesTests.m\\n// fixtures\\n//\\n// Created by Julian Krumow on 11.10.14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"Branches.h\\\"\\n\\n@interface BranchesTests : XCTestCase\\n\\n@end\\n\\n@implementation BranchesTests\\n\\n- (void)setUp {\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown {\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testBranchesNoBranches {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:NO skipBranches:NO];\\n}\\n\\n- (void)testBranchesFirstBranchAndSkip {\\n Branches *branches = [[Branches alloc] init];\\n [branches branches:YES skipBranches:YES];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,2,null,null,null,2,2,null,null,1,1,1,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/fixturesTests.m\",\"source\":\"//\\n// fixturesTests.m\\n// fixturesTests\\n//\\n// Created by Mark Larsen on 6/24/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n#import \\\"fixtures.h\\\"\\n\\n@interface fixturesTests : XCTestCase\\n\\n@end\\n\\n@implementation fixturesTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n fixtures *f = [[fixtures alloc] init];\\n [f testedMethod];\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,1,1,1,null,null]},{\"name\":\"spec/fixtures/fixturesTests/peekaviewTests.m\",\"source\":\"//\\n// peekaviewTests.m\\n// fixtures\\n//\\n// Created by Mark Larsen on 6/25/14.\\n// Copyright (c) 2014 marklarr. All rights reserved.\\n//\\n\\n#import <XCTest/XCTest.h>\\n\\n@interface peekaviewTests : XCTestCase\\n\\n@end\\n\\n@implementation peekaviewTests\\n\\n- (void)setUp\\n{\\n [super setUp];\\n // Put setup code here. This method is called before the invocation of each test method in the class.\\n}\\n\\n- (void)tearDown\\n{\\n // Put teardown code here. This method is called after the invocation of each test method in the class.\\n [super tearDown];\\n}\\n\\n- (void)testExample\\n{\\n XCTAssert(YES, @\\\"woot\\\");\\n}\\n\\n@end\\n\",\"coverage\":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,null,1,null,null,null,null,1,1,null,null,null,2,1,null,null]}]}")
51
51
  end.once
52
52
  fixtures_project.post
53
53
  end
@@ -18,6 +18,7 @@ describe Slather::CoverageService::SimpleOutput do
18
18
  expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixtures/fixtures.m: 2 of 4 lines (50.00%)")
19
19
  expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixtures/more_files/peekaview.m: 0 of 6 lines (0.00%)")
20
20
  expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixtures/more_files/Branches.m: 10 of 20 lines (50.00%)")
21
+ expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixtures/more_files/Empty.m: 0 of 0 lines (0.00%)")
21
22
  expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixturesTests/fixturesTests.m: 7 of 7 lines (100.00%)")
22
23
  expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixturesTests/peekaviewTests.m: 6 of 6 lines (100.00%)")
23
24
  expect(fixtures_project).to receive(:puts).with("spec/fixtures/fixturesTests/BranchesTests.m: 10 of 10 lines (100.00%)")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slather
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Larsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-23 00:00:00.000000000 Z
11
+ date: 2014-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -147,6 +147,7 @@ files:
147
147
  - ".coveralls.yml"
148
148
  - ".gitignore"
149
149
  - ".travis.yml"
150
+ - CHANGELOG.md
150
151
  - Gemfile
151
152
  - LICENSE.txt
152
153
  - README.md
@@ -173,6 +174,8 @@ files:
173
174
  - spec/fixtures/fixtures/fixtures.m
174
175
  - spec/fixtures/fixtures/more_files/Branches.h
175
176
  - spec/fixtures/fixtures/more_files/Branches.m
177
+ - spec/fixtures/fixtures/more_files/Empty.h
178
+ - spec/fixtures/fixtures/more_files/Empty.m
176
179
  - spec/fixtures/fixtures/more_files/peekaview.h
177
180
  - spec/fixtures/fixtures/more_files/peekaview.m
178
181
  - spec/fixtures/fixturesTests/BranchesTests.m
@@ -224,6 +227,8 @@ test_files:
224
227
  - spec/fixtures/fixtures/fixtures.m
225
228
  - spec/fixtures/fixtures/more_files/Branches.h
226
229
  - spec/fixtures/fixtures/more_files/Branches.m
230
+ - spec/fixtures/fixtures/more_files/Empty.h
231
+ - spec/fixtures/fixtures/more_files/Empty.m
227
232
  - spec/fixtures/fixtures/more_files/peekaview.h
228
233
  - spec/fixtures/fixtures/more_files/peekaview.m
229
234
  - spec/fixtures/fixturesTests/BranchesTests.m