class Phoenx::Target::HeaderBuilder
Attributes
project[R]
target[R]
target_spec[R]
umbrella_headers[R]
Public Class Methods
new(project, target, target_spec)
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 11 def initialize(project, target, target_spec) @project = project @target = target @target_spec = target_spec @umbrella_headers = [] end
Public Instance Methods
add_header(header, attributes)
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 70 def add_header(header, attributes) file = Phoenx.get_or_add_file(@project, header) build_file = @target.headers_build_phase.add_file_reference(file, true) build_file.settings = attributes end
add_headers(header_files, attributes, add_to_umbrella_header)
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 54 def add_headers(header_files, attributes, add_to_umbrella_header) headers = Phoenx.merge_files_array(header_files) unless !header_files || header_files.empty? || !headers.empty? puts "No #{attributes["ATTRIBUTES"].first} headers found".yellow end Phoenx.add_groups_for_files(@project, headers) headers.each do |header| self.add_header(header, attributes) end if add_to_umbrella_header @umbrella_headers += headers else @umbrella_headers -= headers end end
add_private_headers()
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 33 def add_private_headers self.add_headers(@target_spec.private_headers, ATTRIBUTES_PRIVATE_HEADERS, false) end
add_project_headers()
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 29 def add_project_headers self.add_headers(@target_spec.project_headers, ATTRIBUTES_PROJECT_HEADERS, true) end
add_public_headers()
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 25 def add_public_headers self.add_headers(@target_spec.public_headers, ATTRIBUTES_PUBLIC_HEADERS, true) end
build()
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 18 def build self.add_public_headers self.add_project_headers self.add_private_headers self.generate_umbrella_header end
generate_umbrella_header()
click to toggle source
# File lib/phoenx/use_cases/target/add_header.rb, line 37 def generate_umbrella_header unless @target_spec.umbrella_header == nil entries = @umbrella_headers.map{ |header| unless @target_spec.module_name == nil import = '<' + @target_spec.module_name + '/' + File.basename(header) + '>' else import = '"' + File.basename(header) + '"' end '#import ' + import }.sort open(@target_spec.umbrella_header, "w") { |file| entries.each { |header| file.puts header } } self.add_header(@target_spec.umbrella_header, ATTRIBUTES_PUBLIC_HEADERS) end end