Class: ZendeskAppsSupport::AppVersion

Inherits:
Object
  • Object
show all
Defined in:
lib/zendesk_apps_support/app_version.rb

Overview

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

Constant Summary collapse

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

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ AppVersion

Returns a new instance of AppVersion.



22
23
24
25
26
# File 'lib/zendesk_apps_support/app_version.rb', line 22

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

Instance Method Details

#==(other) ⇒ Object



60
61
62
# File 'lib/zendesk_apps_support/app_version.rb', line 60

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

#blank?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/zendesk_apps_support/app_version.rb', line 44

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

#deprecated?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/zendesk_apps_support/app_version.rb', line 36

def deprecated?
  @version == DEPRECATED
end

#obsolete?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/zendesk_apps_support/app_version.rb', line 40

def obsolete?
  !servable?
end

#present?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/zendesk_apps_support/app_version.rb', line 48

def present?
  !blank?
end

#servable?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/zendesk_apps_support/app_version.rb', line 28

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

#to_json(*options) ⇒ Object



56
57
58
# File 'lib/zendesk_apps_support/app_version.rb', line 56

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

#to_sObject



52
53
54
# File 'lib/zendesk_apps_support/app_version.rb', line 52

def to_s
  @version
end

#valid_for_update?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/zendesk_apps_support/app_version.rb', line 32

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