class Locraft::SwiftConstantsGenerator

Public Instance Methods

const_template() click to toggle source
# File lib/locraft/generators/swift_constants_generator.rb, line 28
    def const_template
      <<EOF
    static var %<const>s: String {
        return localized("%<key>s")
    }
EOF
    end
constant_from(key) click to toggle source
# File lib/locraft/generators/swift_constants_generator.rb, line 36
def constant_from(key)
  parts = key.split(/\W/).reject(&:empty?)
  parts.map! do |p|
    p[0] = p[0].capitalize if p != parts[0]
    p
  end
  parts.join
end
file_content(localizations) click to toggle source
# File lib/locraft/generators/swift_constants_generator.rb, line 23
def file_content(localizations)
  content = constants_keys_with(localizations).map { |d| const_template % d }.join("\n")
  Utils.resource_file('swift_macro_template.txt') % content
end
generate(localizations_hash) click to toggle source
# File lib/locraft/generators/swift_constants_generator.rb, line 9
def generate(localizations_hash)
  if @config.relative_plist_destination.nil?
    warn 'Skipping objc constants generation. No destination path provided.'
    return
  end

  localizations = localizations_hash[@config.default_lang]
  destination_dir = @config.relative_macro_destination
  file_content = file_content(localizations)
  mkdir_p destination_dir unless Dir.exist?(destination_dir)
  write_file_content("#{destination_dir}/#{files_name}.swift", file_content)
  puts 'constants files was created for [swift] language'
end
valid?() click to toggle source
# File lib/locraft/generators/swift_constants_generator.rb, line 5
def valid?
  !@config.relative_macro_destination.nil?
end