Sha256: 84bd1d457c46cbfc7e113097f834c645d80b6b3e61ae5151d6a194588e2ba20c

Contents?: true

Size: 941 Bytes

Versions: 3

Compression:

Stored size: 941 Bytes

Contents

module Swift
  module Gist

    # This function generates a valid swift case for each SwiftModule.
    #
    # The resulting output will be something like:
    #
    # .target(name: "SomeModule")
    # .target(name: "SomeModule", dependencies: ["SomeOtherModule"])
    # .testTarget(name: "SomeModuleTests", dependencies: ["SomeOtherModule"])
    def self.format_swift_module swift_module
        target_type = swift_module.type == :src ? 'target' : 'testTarget'
        formatted_name = %Q|name: "#{swift_module.name}"|
        formatted_dependencies = "dependencies: [%s]" % swift_module.depends_on.map { |dependency| %Q|"#{dependency}"| }.join(', ')

        %Q|.%{target_type}(%{formatted_name}%{formatted_dependencies})| % {
          target_type: target_type,
          formatted_name: formatted_name,
          formatted_dependencies: swift_module.depends_on.count > 0 ? ", #{formatted_dependencies}" : ""
        }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
swift-gist-0.0.3 lib/swift/gist/format_swift_module.rb
swift-gist-0.0.2 lib/swift/gist/format_swift_module.rb
swift-gist-0.0.1 lib/swift/gist/format_swift_module.rb