Sha256: 4e59d05206e2fc6a18fab630b4041beac45a7a92366f7461f20c7f29de2f8660

Contents?: true

Size: 1.44 KB

Versions: 25

Compression:

Stored size: 1.44 KB

Contents

require 'multi_json'

module ZendeskAppsSupport

  # At any point in time, we support up to three versions:
  #  * deprecated -- we will still serve apps targeting the deprecated version,
  #                  but newly created or updated apps CANNOT target it
  #  * current    -- we will serve apps targeting the current version;
  #                  newly created or updated apps SHOULD target it
  #  * future     -- we will serve apps targeting the future version;
  #                  newly created or updates apps MAY target it, but it
  #                  may change without notice
  class AppVersion

    DEPRECATED = '0.4'.freeze
    CURRENT    = '0.5'.freeze
    FUTURE     = '1.0'.freeze

    TO_BE_SERVED     = [ DEPRECATED, CURRENT, FUTURE ].compact.freeze
    VALID_FOR_UPDATE = [ CURRENT, FUTURE ].compact.freeze

    def initialize(version)
      @version = version.to_s
      @version.freeze
      freeze
    end

    def servable?
      TO_BE_SERVED.include?(@version)
    end

    def valid_for_update?
      VALID_FOR_UPDATE.include?(@version)
    end

    def deprecated?
      @version == DEPRECATED
    end

    def obsolete?
      !servable?
    end

    def blank?
      @version.nil? || @version == ''
    end

    def present?
      !blank?
    end

    def to_s
      @version
    end

    def to_json(*options)
      MultiJson.encode(@version)
    end

    def ==(other)
      @version == other.to_s
    end

  end

  AppVersion.freeze

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
zendesk_apps_support-1.17.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.16.2 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.16.1 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.16.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.15.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.14.4 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.14.3 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.14.2 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.14.1 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.14.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.13.3 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.13.2 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.13.1 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.13.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.12.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.11.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.10.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.9.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.8.0 lib/zendesk_apps_support/app_version.rb
zendesk_apps_support-1.7.1 lib/zendesk_apps_support/app_version.rb