slather 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
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