slather 1.3.0 → 1.4.0

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,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