class XcodeArchiveCache::BuildSettings::StringInterpolator

Attributes

parser[RW]

@return [Parser]

Public Class Methods

new() click to toggle source
# File lib/build_settings/string_interpolator.rb, line 5
def initialize
  @parser = Parser.new
end

Public Instance Methods

interpolate(string, build_settings) click to toggle source

@param [String] string @param [Container] build_settings

@return [String]

# File lib/build_settings/string_interpolator.rb, line 14
def interpolate(string, build_settings)
  return nil if string == nil

  entries = parser.find_all_entries(string)
  result = string

  entries.each do |entry|
    value = build_settings[entry.name]
    next unless value

    modified_value = modify_setting_value(value, entry.modifiers)
    result = result.gsub(entry.full_string, modified_value)
  end

  result
end

Private Instance Methods

modify_setting_value(value, modifiers) click to toggle source
# File lib/build_settings/string_interpolator.rb, line 37
def modify_setting_value(value, modifiers)
  modified_value = value

  modifiers.each do |modifier|
    case modifier
    when "c99extidentifier"
      modified_value = modified_value.gsub(/[-\s]/, "_")
    else
    end
  end

  modified_value
end