lib/spaceship/portal/app.rb in spaceship-0.3.4 vs lib/spaceship/portal/app.rb in spaceship-0.4.0

- old
+ new

@@ -2,40 +2,40 @@ module Portal # Represents an App ID from the Developer Portal class App < PortalBase # @return (String) The identifier of this app, provided by the Dev Portal - # @example + # @example # "RGAWZGXSAA" attr_accessor :app_id # @return (String) The name you provided for this app # @example # "Spaceship" attr_accessor :name # @return (String) the supported platform of this app - # @example + # @example # "ios" attr_accessor :platform # Prefix provided by the Dev Portal - # @example + # @example # "5A997XSHK2" attr_accessor :prefix # @return (String) The bundle_id (app identifier) of your app - # @example + # @example # "com.krausefx.app" attr_accessor :bundle_id # @return (Bool) Is this app a wildcard app (e.g. com.krausefx.*) attr_accessor :is_wildcard # @return (Hash) Feature details attr_accessor :features - + # @return (Array) List of enabled features attr_accessor :enabled_features # @return (Bool) Development Push Enabled? attr_accessor :dev_push_enabled @@ -43,14 +43,14 @@ # @return (Bool) Production Push Enabled? attr_accessor :prod_push_enabled # @return (Fixnum) Number of associated app groups attr_accessor :app_groups_count - + # @return (Fixnum) Number of associated cloud containers attr_accessor :cloud_containers_count - + # @return (Fixnum) Number of associated identifiers attr_accessor :identifiers_count attr_mapping( 'appIdId' => :app_id, @@ -79,11 +79,11 @@ def all client.apps.map { |app| self.factory(app) } end # Creates a new App ID on the Apple Dev Portal - # + # # if bundle_id ends with '*' then it is a wildcard id otherwise, it is an explicit id # @param bundle_id [String] the bundle id (app_identifier) of the app associated with this provisioning profile # @param name [String] the name of the App # @return (App) The app you just created def create!(bundle_id: nil, name: nil) @@ -111,14 +111,28 @@ # @return (App) The app you just deletd def delete! client.delete_app!(app_id) self end - + # Fetch a specific App ID details based on the bundle_id # @return (App) The app you're looking for. This is nil if the app can't be found. def details app = client.details_for_app(self) + self.class.factory(app) + end + + # Associate specific groups with this app + # @return (App) The updated detailed app. This is nil if the app couldn't be found + def associate_groups(groups) + app = client.associate_groups_with_app(self, groups) + self.class.factory(app) + end + + # Update a service for the app with given AppService object + # @return (App) The updated detailed app. This is nil if the app couldn't be found + def update_service(service) + app = client.update_service_for_app(self, service) self.class.factory(app) end end end end