def create_subscription(user_partnership, sport, options={}, &block)
      raise 'Error: Param user_partnership is nil!' if user_partnership.nil?
      raise 'Error: Param sport is nil!' if sport.nil?

      url = if user_partnership.is_a?(Resource::User)
              url_for_path(subscription_user_path(user_partnership.username, sport))
            elsif user_partnership.is_a?(Resource::Partnership)
              first_username = user_partnership.first_user.username
              second_username = user_partnership.second_user.username
              url_for_path(subscription_partnership_path(first_username, second_username, sport))
            elsif user_partnership.is_a?(String)
              url_for_uri(user_partnership)
            else
              raise 'Error: Invalid parameter!'
            end

      builder = Builder::Subscription.new(public_visible: Privacy::Public)
      block.call(builder) if block_given?

      begin
        client.put(url, builder.to_xml, options) do |response|
          a_hash = parse response
          Resource::Subscription.from_coach a_hash
        end
      rescue => e
        raise e if debug
        false
      end
    end
def create_subscription(user_partnership, sport, options={}, &block)
      raise 'Error: Param user_partnership is nil!' if user_partnership.nil?
      raise 'Error: Param sport is nil!' if sport.nil?

      url = if user_partnership.is_a?(Resource::User)
              url_for_path(subscription_user_path(user_partnership.username, sport))
            elsif user_partnership.is_a?(Resource::Partnership)
              first_username = user_partnership.first_user.username
              second_username = user_partnership.second_user.username
              url_for_path(subscription_partnership_path(first_username, second_username, sport))
            elsif user_partnership.is_a?(String)
              url_for_uri(user_partnership)
            else
              raise 'Error: Invalid parameter!'
            end

      builder = Builder::Subscription.new(public_visible: Privacy::Public)
      block.call(builder) if block_given?

      begin
        client.put(url, builder.to_xml, options) do |response|
          a_hash = parse response
          Resource::Subscription.from_coach a_hash
        end
      rescue => e
        raise e if debug
        false
      end
    end
Creates a subscription with public visibility as default.

 @param [User|Partnership|String] user_partnership
 @param [String] sport
 @param [Hash] options
 @param [Block] block
 @return [Subscription]

 ====Examples
 @example
   @coach.create_subscription(user, :boxing) do |subscription|
     subscription.public_visible = Coach4rb::Privacy::Public
   end

 @example
   @coach.create_subscription(user, :boxing)

 @example
   partnership = @coach.partnership 'arueedlinger', 'asarteam5'
   @coach.subscribe(partnership, :running)