Sha256: f140506914051ae8905694e7887d7bd2487dfa272141d1c8113577853e7e1f37

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

require_relative 'languages_serializer'

module PolyglotIos
  module Serializer
    module Language
      class Swift < Base

        def save(sources_path)
          FileUtils.mkdir_p sources_path unless File.exist? sources_path
          output_path = File.join(sources_path, "Language.swift")
          File.write(output_path, render)
        end

        def template()
<<-TEMPLATE
import Foundation

public struct Language: Sendable {

    public let name: String
    public let localName: String
    public let locale: String
    public let languageCode: String

<% @languages.each do |language| -%>
    public static let <%= language.clean_name %> = Language(name: "<%= language.name %>", localName: "<%= language.local_name %>", locale: "<%= language.locale %>", languageCode: "<%= language.code %>")
<% end -%>

    public static let all = [
<% @languages.each_with_index do |language, i| -%>
        Language.<%= language.clean_name %><%= i == (@languages.size - 1) ? "" : "," %>
<% end -%>
    ]

}
TEMPLATE
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ios_polyglot_cli-2.8.1 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb
ios_polyglot_cli-2.8.0 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb
ios_polyglot_cli-2.7.3 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb
ios_polyglot_cli-2.7.2 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb
ios_polyglot_cli-2.7.1 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb
ios_polyglot_cli-2.7.0 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb
ios_polyglot_cli-2.6.3 lib/ios_polyglot_cli/serializers/languages/languages_serializer_swift.rb