slather 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bin/slather +6 -0
- data/lib/slather.rb +6 -0
- data/lib/slather/coverage_file.rb +9 -3
- data/lib/slather/project.rb +21 -8
- data/lib/slather/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Mzk5NGNiYzA1NGVhMzEzYWJhMzdhNjA0YjBhNjhhYWY2ZmQ3NDNlZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YTY0ZjBiNDcwZGFlMmM5YzQyNjU0YjdkYjQyNDcyYThhMDAyYzM3Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmNkNjVhOGYxNWM4NzFjMTBiYTY3NGMwZjM2Y2Y5NDU5MDMzNjEwYWQyYjJj
|
10
|
+
MjcwNDkxNTEzNmQwNGE5NjVhODI4NTM5OTA5OTRlYjEwMTc2YWYxMWMzMGM1
|
11
|
+
ZDEwODRiMjdjYmZjNTUxZjZlMDJmMTJjNDQyZWU1YmM3OGEyNzE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2E4N2ZmNzZkYTViMjAzYzA0N2MyZDQxMmI0NjQyOGY0YjExNjhkYTIwYjky
|
14
|
+
N2Y3M2IzZGE3NmU0NmUwZWRiZDhiNzUwZjhlYjc3NWNlOGYyOGFmMGFlYmI1
|
15
|
+
YWE3ODA0NDA0NGI2YWZhNGI1MzdlNmU0NTc1NWUwYzJlN2I5NjA=
|
data/bin/slather
CHANGED
@@ -17,6 +17,7 @@ Clamp do
|
|
17
17
|
option ["--simple-output", "-s"], :flag, "Post coverage results to coveralls"
|
18
18
|
|
19
19
|
option ["--build-directory", "-b"], "BUILD_DIRECTORY", "The directory where gcno files will be written to. Defaults to derived data."
|
20
|
+
option ["--source-directory"], "SOURCE_DIRECTORY", "The directory where your source files are located."
|
20
21
|
option ["--ignore", "-i"], "IGNORE", "ignore files conforming to a path", :multivalued => true
|
21
22
|
|
22
23
|
def execute
|
@@ -25,6 +26,7 @@ Clamp do
|
|
25
26
|
setup_service_name
|
26
27
|
setup_ignore_list
|
27
28
|
setup_build_directory
|
29
|
+
setup_source_directory
|
28
30
|
setup_coverage_service
|
29
31
|
|
30
32
|
post
|
@@ -36,6 +38,10 @@ Clamp do
|
|
36
38
|
project.build_directory = build_directory if build_directory
|
37
39
|
end
|
38
40
|
|
41
|
+
def setup_source_directory
|
42
|
+
project.source_directory = source_directory if source_directory
|
43
|
+
end
|
44
|
+
|
39
45
|
def setup_ignore_list
|
40
46
|
project.ignore_list = ignore_list if !ignore_list.empty?
|
41
47
|
end
|
data/lib/slather.rb
CHANGED
@@ -12,8 +12,15 @@ module Slather
|
|
12
12
|
@source_file_pathname ||= begin
|
13
13
|
base_filename = gcno_file_pathname.basename.sub_ext("")
|
14
14
|
# TODO: Handle Swift
|
15
|
-
path =
|
16
|
-
|
15
|
+
path = nil
|
16
|
+
if project.source_directory
|
17
|
+
path = Dir["#{project.source_directory}/**/#{base_filename}.m"].first
|
18
|
+
path &&= Pathname(path)
|
19
|
+
else
|
20
|
+
pbx_file = project.files.detect { |pbx_file| pbx_file.real_path.basename.to_s == "#{base_filename}.m" }
|
21
|
+
path = pbx_file && pbx_file.real_path
|
22
|
+
end
|
23
|
+
path
|
17
24
|
end
|
18
25
|
end
|
19
26
|
|
@@ -26,7 +33,6 @@ module Slather
|
|
26
33
|
end
|
27
34
|
|
28
35
|
def source_file_pathname_relative_to_repo_root
|
29
|
-
puts "pathhh: #{source_file_pathname.cleanpath}"
|
30
36
|
source_file_pathname.realpath.relative_path_from(Pathname("./").realpath)
|
31
37
|
end
|
32
38
|
|
data/lib/slather/project.rb
CHANGED
@@ -3,10 +3,25 @@ require 'xcodeproj'
|
|
3
3
|
require 'json'
|
4
4
|
require 'yaml'
|
5
5
|
|
6
|
+
module Xcodeproj
|
7
|
+
class Project
|
8
|
+
|
9
|
+
def slather_setup_for_coverage
|
10
|
+
build_configurations.each do |build_configuration|
|
11
|
+
build_configuration.build_settings["GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"] = "YES"
|
12
|
+
build_configuration.build_settings["GCC_GENERATE_TEST_COVERAGE_FILES"] = "YES"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
6
19
|
module Slather
|
7
20
|
class Project < Xcodeproj::Project
|
8
21
|
|
9
|
-
attr_accessor :build_directory, :ignore_list, :ci_service, :coverage_service
|
22
|
+
attr_accessor :build_directory, :ignore_list, :ci_service, :coverage_service, :source_directory
|
23
|
+
|
24
|
+
alias_method :setup_for_coverage, :slather_setup_for_coverage
|
10
25
|
|
11
26
|
def self.open(xcodeproj)
|
12
27
|
proj = super
|
@@ -51,12 +66,17 @@ module Slather
|
|
51
66
|
configure_ignore_list_from_yml
|
52
67
|
configure_ci_service_from_yml
|
53
68
|
configure_coverage_service_from_yml
|
69
|
+
configure_source_directory_from_yml
|
54
70
|
end
|
55
71
|
|
56
72
|
def configure_build_directory_from_yml
|
57
73
|
self.build_directory = self.class.yml["build_directory"] if self.class.yml["build_directory"] && !@build_directory
|
58
74
|
end
|
59
75
|
|
76
|
+
def configure_source_directory_from_yml
|
77
|
+
self.source_directory ||= self.class.yml["source_directory"] if self.class.yml["source_directory"]
|
78
|
+
end
|
79
|
+
|
60
80
|
def configure_ignore_list_from_yml
|
61
81
|
self.ignore_list ||= [(self.class.yml["ignore"] || [])].flatten
|
62
82
|
end
|
@@ -85,13 +105,6 @@ module Slather
|
|
85
105
|
@coverage_service = service
|
86
106
|
end
|
87
107
|
|
88
|
-
def setup_for_coverage
|
89
|
-
build_configurations.each do |build_configuration|
|
90
|
-
build_configuration.build_settings["GCC_INSTRUMENT_PROGRAM_FLOW_ARCS"] = "YES"
|
91
|
-
build_configuration.build_settings["GCC_GENERATE_TEST_COVERAGE_FILES"] = "YES"
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
108
|
end
|
96
109
|
end
|
97
110
|
|
data/lib/slather/version.rb
CHANGED