slather 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Yjg1ZGQzZjg5N2UxYzFlYjcwZTlhODU1MTdjZmJhOTFlZWM1MDQ2MA==
5
- data.tar.gz: !binary |-
6
- ODBhZWIyMjZiOTA0YjllZDk2NWU5ZTYyNWU4MTgzN2U1NTM2NGZmZA==
2
+ SHA1:
3
+ metadata.gz: 6570b6eb98ca404460677120ce2bff49446d5047
4
+ data.tar.gz: a387ce407d1748ba2fcb6cc57261c601f53900fb
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NDAzNjAyOTMwMTk2N2VmZjdiMmE1YWIyZjhjNGJlMzIyOThhZTMzOTI5YWM2
10
- MzMyMzk5N2E2NDdkN2NiMDYwY2ZlYTNlOTQyYzkyNjRhMDU3NzllZjVjZDc4
11
- ZDUxMDE2ZTM2NjJjYTJlMTQ1MGNjNTZhMTQ5NjlkM2JjMmZiYTk=
12
- data.tar.gz: !binary |-
13
- Y2ViZTAzNjViOWYyNjFhMDlmOGQ0NWQwYTU4YzNiZTcwZmYwZGVhNjJhMWM1
14
- YTA2ZjYzMmU5OTIzN2NlMzYyYjc0ZWRhNTA1MTA0Y2Y1NzBlNWQ1ZDVmZjYz
15
- MjM0ZDhlYjU3YjZiYjM4OWY5ZjBlNzdiZDhhZDk1ZDNiNDQzNTY=
6
+ metadata.gz: bd10828959766f25526d693082585fb5a08295c79e3f1c8e48181abb3c3235e85f043c45a2fdb8cef4e33f3feaf1b39054a8df4ef64d4a78567f85b8c0989e61
7
+ data.tar.gz: 3226f015ea7a407d33112f275d231ef3935f8e96d1d9724ab93b577ed2b049d21e2d24765d80188a7826508b62ce403a22248071c54d0d3bb0e087545dc79d4d
data/.travis.yml CHANGED
@@ -6,7 +6,6 @@ script: bundle exec rake
6
6
 
7
7
  env:
8
8
  - RVM_RUBY_VERSION=system
9
- - RVM_RUBY_VERSION=2.1.1
10
9
 
11
10
  before_install:
12
11
  - curl http://curl.haxx.se/ca/cacert.pem -o /usr/local/share/cacert.pem
data/README.md CHANGED
@@ -74,20 +74,9 @@ after_success: slather
74
74
 
75
75
  ### Coverage for code included via CocoaPods
76
76
 
77
- If you're trying to compute the coverage of code that has been included via CocoaPods, you can add the following to your Podfile:
78
-
79
- ```ruby
80
- # Podfile
81
-
82
- begin
83
- require 'slather'
84
- Slather.prepare_pods(self)
85
- rescue LoadError
86
- puts 'Slather has been disabled (not installed).'
87
- end
88
- ```
89
-
90
- Then, tell slather where to find the source files for your Pod.
77
+ If you're trying to compute the coverage of code that has been included via
78
+ CocoaPods, you will need to tell slather where to find the source files for
79
+ your Pod.
91
80
 
92
81
  ```yml
93
82
  # .slather.yml
@@ -0,0 +1,10 @@
1
+ require 'slather'
2
+
3
+ Pod::HooksManager.register(:post_install) do |installer_context|
4
+ sandbox_root = installer_context.sandbox_root
5
+ sandbox = Pod::Sandbox.new(sandbox_root)
6
+ project = Xcodeproj::Project.open(sandbox.project_path)
7
+ project.slather_setup_for_coverage()
8
+ project.save()
9
+ end
10
+
data/lib/slather.rb CHANGED
@@ -11,9 +11,7 @@ module Slather
11
11
  Encoding.default_external = "utf-8"
12
12
 
13
13
  def self.prepare_pods(pods)
14
- pods.post_install do |installer|
15
- installer.project.slather_setup_for_coverage
16
- end
14
+ Pod::UI.warn("[Slather] prepare_pods is now deprecated. The call to prepare_pods in your Podfile can simply be ommitted.")
17
15
  end
18
16
 
19
17
  end
@@ -47,7 +47,7 @@ module Slather
47
47
  gcov_data = File.new(gcov_file_name).read
48
48
  end
49
49
 
50
- gcov_files_created.each { |file| FileUtils.rm(file) }
50
+ gcov_files_created.each { |file| FileUtils.rm_f(file) }
51
51
 
52
52
  gcov_data
53
53
  end
@@ -88,7 +88,11 @@ module Slather
88
88
  end
89
89
 
90
90
  def percentage_lines_tested
91
- (num_lines_tested / num_lines_testable.to_f) * 100.0
91
+ if num_lines_testable > 0
92
+ (num_lines_tested / num_lines_testable.to_f) * 100.0
93
+ else
94
+ 0
95
+ end
92
96
  end
93
97
 
94
98
  def ignored?
@@ -1,3 +1,3 @@
1
1
  module Slather
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
data/slather.gemspec CHANGED
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake", "~> 10.3"
23
23
  spec.add_development_dependency "rspec", "~> 2.14"
24
24
  spec.add_development_dependency "pry", "~> 0.9"
25
+ spec.add_development_dependency "cocoapods", "~> 0.34"
25
26
 
26
27
  spec.add_dependency "clamp", "~> 0.6"
27
- spec.add_dependency "xcodeproj", "~> 0.17"
28
+ spec.add_dependency "xcodeproj", "~> 0.19.2"
28
29
  end
@@ -0,0 +1,21 @@
1
+ require 'cocoapods'
2
+ require File.join(File.dirname(__FILE__), '../../lib/cocoapods_plugin')
3
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
4
+
5
+ describe Slather do
6
+ describe 'CocoaPods Plugin' do
7
+ it 'should setup slather for coverage in the Pods project' do
8
+ mock_project = double(Xcodeproj::Project)
9
+ allow(Xcodeproj::Project).to receive(:open).and_return(mock_project)
10
+ expect(mock_project).to receive(:slather_setup_for_coverage)
11
+ expect(mock_project).to receive(:save)
12
+
13
+ # Execute the post_install hook via CocoaPods
14
+ sandbox_root = 'Pods'
15
+ sandbox = Pod::Sandbox.new(sandbox_root)
16
+ context = Pod::Installer::HooksContext.generate(sandbox, [])
17
+ Pod::HooksManager.run(:post_install, context)
18
+ end
19
+ end
20
+ end
21
+
@@ -130,6 +130,11 @@ OBJC
130
130
  it "should return the correct percentage of lines that are tested" do
131
131
  expect(coverage_file.percentage_lines_tested).to eq(50)
132
132
  end
133
+
134
+ it "should return 0" do
135
+ coverage_file.stub(:num_lines_testable).and_return(0)
136
+ expect(coverage_file.percentage_lines_tested).to eq(0)
137
+ end
133
138
  end
134
139
 
135
140
  end
metadata CHANGED
@@ -1,113 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slather
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
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-09-22 00:00:00.000000000 Z
11
+ date: 2014-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coveralls
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.14'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.14'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.9'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: cocoapods
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.34'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.34'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: clamp
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ~>
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
103
  version: '0.6'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ~>
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0.6'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: xcodeproj
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ~>
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '0.17'
117
+ version: 0.19.2
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ~>
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '0.17'
124
+ version: 0.19.2
111
125
  description:
112
126
  email:
113
127
  - mark@venmo.com
@@ -116,15 +130,16 @@ executables:
116
130
  extensions: []
117
131
  extra_rdoc_files: []
118
132
  files:
119
- - .coveralls.yml
120
- - .gitignore
121
- - .travis.yml
133
+ - ".coveralls.yml"
134
+ - ".gitignore"
135
+ - ".travis.yml"
122
136
  - Gemfile
123
137
  - LICENSE.txt
124
138
  - README.md
125
139
  - Rakefile
126
140
  - bin/slather
127
141
  - docs/logo.jpg
142
+ - lib/cocoapods_plugin.rb
128
143
  - lib/slather.rb
129
144
  - lib/slather/coverage_file.rb
130
145
  - lib/slather/coverage_service/coveralls.rb
@@ -147,13 +162,13 @@ files:
147
162
  - spec/fixtures/fixturesTests/fixturesTests.m
148
163
  - spec/fixtures/fixturesTests/peekaviewTests.m
149
164
  - spec/fixtures/gutter.json
165
+ - spec/slather/cocoapods_plugin_spec.rb
150
166
  - spec/slather/coverage_file_spec.rb
151
167
  - spec/slather/coverage_service/coveralls_spec.rb
152
168
  - spec/slather/coverage_service/gutter_json_spec.rb
153
169
  - spec/slather/coverage_service/simple_output_spec.rb
154
170
  - spec/slather/fixtures.gcno
155
171
  - spec/slather/project_spec.rb
156
- - spec/slather/slather_spec.rb
157
172
  - spec/spec_helper.rb
158
173
  homepage: https://github.com/marklarr/slather
159
174
  licenses:
@@ -165,12 +180,12 @@ require_paths:
165
180
  - lib
166
181
  required_ruby_version: !ruby/object:Gem::Requirement
167
182
  requirements:
168
- - - ! '>='
183
+ - - ">="
169
184
  - !ruby/object:Gem::Version
170
185
  version: '0'
171
186
  required_rubygems_version: !ruby/object:Gem::Requirement
172
187
  requirements:
173
- - - ! '>='
188
+ - - ">="
174
189
  - !ruby/object:Gem::Version
175
190
  version: '0'
176
191
  requirements: []
@@ -193,11 +208,11 @@ test_files:
193
208
  - spec/fixtures/fixturesTests/fixturesTests.m
194
209
  - spec/fixtures/fixturesTests/peekaviewTests.m
195
210
  - spec/fixtures/gutter.json
211
+ - spec/slather/cocoapods_plugin_spec.rb
196
212
  - spec/slather/coverage_file_spec.rb
197
213
  - spec/slather/coverage_service/coveralls_spec.rb
198
214
  - spec/slather/coverage_service/gutter_json_spec.rb
199
215
  - spec/slather/coverage_service/simple_output_spec.rb
200
216
  - spec/slather/fixtures.gcno
201
217
  - spec/slather/project_spec.rb
202
- - spec/slather/slather_spec.rb
203
218
  - spec/spec_helper.rb
@@ -1,19 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
2
-
3
- describe Slather do
4
-
5
- describe "::prepare_pods" do
6
- it "should setup the pods project for coverage" do
7
- pods_mock = double(Object)
8
-
9
- installer_mock = double(Object)
10
- project_mock = double(Xcodeproj::Project)
11
- installer_mock.stub(:project).and_return(project_mock)
12
- expect(project_mock).to receive(:slather_setup_for_coverage)
13
-
14
- expect(pods_mock).to receive(:post_install).and_yield(installer_mock)
15
-
16
- Slather.prepare_pods(pods_mock)
17
- end
18
- end
19
- end