Sha256: 5b145543a0308914a5a2ec26761a75b37c6284fd4fd275cdfefef2de7ee92af0

Contents?: true

Size: 1.91 KB

Versions: 4

Compression:

Stored size: 1.91 KB

Contents

module Ambient
  class CapabilitiesHelper
    CAPABILITIES = {
      application_group_ios: "ApplicationGroups.iOS",
      background_modes: "BackgroundModes",
      data_protection: "DataProtection",
      game_center: "GameCenter",
      healthkit: "HealthKit",
      health_kit: "HealthKit",
      homekit: "HomeKit",
      home_kit: "HomeKit",
      in_app_purchase: "InAppPurchase",
      inter_app_audio: "InterAppAudio",
      keychain: "Keychain",
      maps: "Maps.iOS",
      apple_pay: "OMC",
      passbook: "Passbook",
      wallet: "Passbook",
      safari_keychain: "SafariKeychain",
      personal_vpn: "VPNLite",
      wireless_accessory_configuration: "WAC",
      icloud: "iCloud"
    }

    def initialize(project, target)
      @project = project
      @target = target
    end

    def clear_capabilities
      capabilities.delete_if { |_, _| true } if capabilities
    end

    def enable_capability(capability)
      capabilities[capability_key(capability)] = {"enabled"=>"1"}
    end

    def disable_capability(capability)
      capabilities.delete(capability_key(capability))
    end

    def set_development_team(team)
      target_attributes["DevelopmentTeam"] = team
    end

    private

    def capabilities
      target_attributes["SystemCapabilities"]
    end

    def target_attributes
      unless @project.root_object.attributes["TargetAttributes"]
        @project.root_object.attributes["TargetAttributes"] = {}
      end

      unless @project.root_object.attributes["TargetAttributes"][@target.uuid]
        @project.root_object.attributes["TargetAttributes"][@target.uuid] = {}
      end

      @project.root_object.attributes["TargetAttributes"][@target.uuid]
    end

    def capability_key(capability)
      capability = CAPABILITIES[capability] || capability.to_s
      prefix = "com.apple."
      capability = "#{prefix}#{capability}" unless capability.start_with? prefix
      capability
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ambient-xcode-0.8.1 lib/ambient/capabilities_helper.rb
ambient-xcode-0.8.0 lib/ambient/capabilities_helper.rb
ambient-xcode-0.7.1 lib/ambient/capabilities_helper.rb
ambient-xcode-0.7.0 lib/ambient/capabilities_helper.rb