Class: PPL::Header
- Inherits:
-
Object
- Object
- PPL::Header
- Defined in:
- lib/pod-pipeline/util/header.rb
Overview
PPL::Header
Class Method Summary collapse
- .combine(output, inputs, include_list = [], exclude_list = []) ⇒ Object
- .combine_check(path, pattern_list = []) ⇒ Object
- .combine_check_skip(path, queue, include_list = [], exclude_list = []) ⇒ Object
- .combine_collect(inputs, include_list = [], exclude_list = []) ⇒ Object
- .combine_reset(header, include_list) ⇒ Object
Class Method Details
.combine(output, inputs, include_list = [], exclude_list = []) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/pod-pipeline/util/header.rb', line 57 def self.combine(output, inputs, include_list = [], exclude_list = []) puts "\n目标文件:#{output}\n" combine_collect(inputs, include_list, exclude_list).each do |input| Dir["#{input}/Headers/*.h"].each do |header| FileUtils.cp(header, output, 'preserve': true) end end Dir["#{output}/*.h"].each do |header| combine_reset(header, include_list) end end |
.combine_check(path, pattern_list = []) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/pod-pipeline/util/header.rb', line 4 def self.combine_check(path, pattern_list = []) return false if pattern_list.empty? path_basename = File.basename(path) pattern_list.each do |pattern| pattern_basename = File.basename(pattern) return true if path_basename == "#{pattern_basename}.framework" end false end |
.combine_check_skip(path, queue, include_list = [], exclude_list = []) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/pod-pipeline/util/header.rb', line 17 def self.combine_check_skip(path, queue, include_list = [], exclude_list = []) # 若 path 非目录 则跳过 return true unless File.directory?(path) # 若 path 非被include标记的文件 则跳过 return true unless combine_check(path, include_list) # 若 path 为被exclude标记的文件 则跳过 return true if combine_check(path, exclude_list) # 若 path 为序列中已存在的文件 则跳过 return true if queue.include? path false end |
.combine_collect(inputs, include_list = [], exclude_list = []) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/pod-pipeline/util/header.rb', line 30 def self.combine_collect(inputs, include_list = [], exclude_list = []) # 获取合并文件的路径序列 input_queue = [] inputs.each do |input| puts "\n合并路径:#{input}" Dir[input].each do |input_path| next if combine_check_skip(input_path, input_queue, include_list, exclude_list) # 合并 puts "=> #{input_path}" input_queue << input_path end end input_queue end |
.combine_reset(header, include_list) ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'lib/pod-pipeline/util/header.rb', line 48 def self.combine_reset(header, include_list) content = File.read(header) replace = PPL::Scanner.name include_list.each do |include_name| content = content.gsub(include_name, replace) end File.write(header, content) end |