class Objctify::J2ObjCPrefixes

Constants

Prefix

Public Class Methods

new(prefix_file_path) click to toggle source
# File lib/objctify/j2objc/j2_obj_c_prefixes.rb, line 12
def initialize(prefix_file_path)
  @prefixes = {}

  return unless !prefix_file_path.nil? && File.exist?(prefix_file_path)

  File.open(prefix_file_path).each do |line|
    if (res = line.match(/([a-zA-Z.*]+):\s+([A-Z]+)/))
      key = res[1]
      @prefixes[key.gsub('.*', '')] = Prefix.new(res[2], key.include?('*'))
    end
  end
end

Public Instance Methods

prefix_for(path) click to toggle source
# File lib/objctify/j2objc/j2_obj_c_prefixes.rb, line 25
def prefix_for(path)
  key = path.gsub('/', '.')

  # searching for direct prefix
  # Fallback to looking for wildcard. if found a wildcard return it, else prefix from path
  until key.empty?
    @prefixes.keys.each do |p|
      return @prefixes[p].prefix if key == p
    end
    key, = key.rpartition('.')
  end

  path.gsub('./', '').gsub('/', '.').split('.').map(&:capitalize) * ''
end