objc-dependency-tree-generator 0.0.7 → 0.0.8

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: 6944120f85c2b779312dfa0b3b08fe591bae9896
4
- data.tar.gz: 25a09dfbc4b9ba176f77d9edcf9eb2dd17e92684
3
+ metadata.gz: 1f25d0837a55076f1417a75d31b2518d3fab24de
4
+ data.tar.gz: 281ce782fe39c47f2ed422e16e67dff1041213af
5
5
  SHA512:
6
- metadata.gz: 7d5dc027eac8fb14210c1cec4e470052368418a875ed810a4ee089e978012e41bdb091862cd39eb5eb7af54d21c325581cb0373584134860725d32d07fbfa171
7
- data.tar.gz: c8d1330a52bcbbe1701ebcb85edfa917583f668219f8697734425200e7186808cdc75d1199a46f0aea8365bbc9564980db2a7611c0cf4b06af64704c1106342f
6
+ metadata.gz: 279e924ec194e80d52ac6e9f0e2d1b806e698b2ac0813d38d621df435f31d865e53cf1c04a557f3184479b44e5e2a859d0a66ee6cf25e02553ab58adf9654471
7
+ data.tar.gz: 7e076f230ea879f53bf6003841723ed9a49c84554d151c5616ee420cad0e692c3165a2ef8bdbca7567113d8324e87e053fd1736f4852412691cfb2e62bf131d5
@@ -13,7 +13,7 @@ class ObjCDependencyTreeGenerator
13
13
  @options[:derived_data_project_pattern] = '*-*' unless @options[:derived_data_project_pattern]
14
14
 
15
15
  @exclusion_prefixes = @options[:exclusion_prefixes] ? @options[:exclusion_prefixes] : 'NS|UI|CA|CG|CI|CF'
16
- @object_files_directory = @options[:search_directory]
16
+ @object_files_directories = @options[:search_directories]
17
17
  end
18
18
 
19
19
  def self.parse_command_line_options
@@ -28,7 +28,7 @@ class ObjCDependencyTreeGenerator
28
28
  parser = OptionParser.new do |o|
29
29
  o.separator 'General options:'
30
30
  o.on('-p PATH', '--path' ,'Path to directory where are your .o files were placed by the compiler', Array) { |directory|
31
- options[:search_directory] = Array(options[:search_directory]) | Array(directory)
31
+ options[:search_directories] = Array(options[:search_directories]) | Array(directory)
32
32
  }
33
33
  o.on('-D DERIVED_DATA', 'Path to directory where DerivedData is') { |derived_data|
34
34
  options[:derived_data_paths] = [derived_data]
@@ -37,8 +37,8 @@ class ObjCDependencyTreeGenerator
37
37
  o.on('-s PROJECT_NAME', 'Search project .o files by specified project name') { |project_name|
38
38
  options[:project_name] = project_name
39
39
  }
40
- o.on('-t TARGET_NAME', 'Target of project') { |target_name|
41
- options[:target_name] = target_name
40
+ o.on('-t TARGET_NAME', '--target' 'Target of project', Array) { |target_name|
41
+ options[:target_names] = Array(options[:target_names]) | Array(target_name)
42
42
  }
43
43
  o.on('-e PREFIXES', "Prefixes of classes those will be exсluded from visualization. \n\t\t\t\t\tNS|UI\n\t\t\t\t\tUI|CA|MF") { |exclusion_prefixes|
44
44
  options[:exclusion_prefixes] = exclusion_prefixes
@@ -69,16 +69,16 @@ class ObjCDependencyTreeGenerator
69
69
  return {}
70
70
  end
71
71
 
72
- unless @object_files_directory
73
- @object_files_directory =
72
+ unless @object_files_directories
73
+ @object_files_directories =
74
74
  find_project_output_directory(@options[:derived_data_paths],
75
75
  @options[:project_name],
76
76
  @options[:derived_data_project_pattern],
77
- @options[:target_name])
78
- return {} unless @object_files_directory
77
+ @options[:target_names])
78
+ return {} unless @object_files_directories
79
79
  end
80
80
 
81
- unless @object_files_directory
81
+ unless @object_files_directories
82
82
  puts parser.help
83
83
  exit 1
84
84
  end
@@ -93,9 +93,9 @@ class ObjCDependencyTreeGenerator
93
93
  }
94
94
 
95
95
  if @options[:swift_dependencies]
96
- SwiftDependenciesGenerator.new.generate_dependencies(@object_files_directory, &links_block)
96
+ SwiftDependenciesGenerator.new.generate_dependencies(@object_files_directories, &links_block)
97
97
  else
98
- ObjcDependenciesGenerator.new.generate_dependencies(@object_files_directory, @options[:use_dwarf], &links_block)
98
+ ObjcDependenciesGenerator.new.generate_dependencies(@object_files_directories, @options[:use_dwarf], &links_block)
99
99
  end
100
100
 
101
101
  links
@@ -1,4 +1,4 @@
1
- def find_project_output_directory(derived_data_paths, project_prefix, project_suffix_pattern, target_name)
1
+ def find_project_output_directory(derived_data_paths, project_prefix, project_suffix_pattern, target_names)
2
2
 
3
3
  return nil unless derived_data_paths
4
4
 
@@ -21,13 +21,25 @@ def find_project_output_directory(derived_data_paths, project_prefix, project_su
21
21
 
22
22
  filtered_by_target_paths = paths
23
23
 
24
- if target_name
25
- filtered_by_target_paths = paths.find_all { |path| /#{target_name}[^\.]*\.build\/Objects-normal/.match path }
24
+ if target_names != nil && target_names.length > 0
25
+ filtered_by_target_paths = paths.find_all { |path|
26
+ target_names.any? { |target| /#{target}[^\.]*\.build\/Objects-normal/.match path }
27
+ }
26
28
  $stderr.puts "After target filtration there is #{filtered_by_target_paths.length} directories left"
27
29
  if paths.empty?
28
- $stderr.puts "Cannot find projects that starts with '#{project_prefix}'' and has target name that starts with '#{target_name}'"
30
+ $stderr.puts "Cannot find projects that starts with '#{project_prefix}'' and has target name that starts with '#{target_names}'"
29
31
  exit 1
30
32
  end
33
+
34
+ paths_sorted_by_time = filtered_by_target_paths.sort_by { |f| File.ctime(f.chomp) }
35
+ last_modified_dirs = target_names.map { |target|
36
+ filtered_by_target = filtered_by_target_paths.find_all { |path| /#{target}[^\.]*\.build\/Objects-normal/.match path }
37
+ last_modified_dir = filtered_by_target.last.chomp
38
+ $stderr.puts "Last modifications for #{target} were in\n#{last_modified_dir}\ndirectory at\n#{File.ctime(last_modified_dir)}"
39
+ last_modified_dir
40
+ }
41
+ return last_modified_dirs
42
+
31
43
  end
32
44
 
33
45
  paths_sorted_by_time = filtered_by_target_paths.sort_by { |f| File.ctime(f.chomp) }
@@ -35,7 +47,7 @@ def find_project_output_directory(derived_data_paths, project_prefix, project_su
35
47
  last_modified_dir = paths_sorted_by_time.last.chomp
36
48
  $stderr.puts "Last modifications were in\n#{last_modified_dir}\ndirectory at\n#{File.ctime(last_modified_dir)}"
37
49
 
38
- last_modified_dir
50
+ [last_modified_dir]
39
51
  end
40
52
 
41
53
  def is_primitive_swift_type?(dest)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: objc-dependency-tree-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Taykalo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-01 00:00:00.000000000 Z
11
+ date: 2016-04-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  Tool that allows to generate Objective-C and Swift dependency tree from object files