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.5'.freeze
CURRENT =
'1.0'.freeze
FUTURE =
'2.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.



20
21
22
23
24
# File 'lib/zendesk_apps_support/app_version.rb', line 20

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

Instance Method Details

#==(other) ⇒ Object



58
59
60
# File 'lib/zendesk_apps_support/app_version.rb', line 58

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

#blank?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/zendesk_apps_support/app_version.rb', line 42

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

#deprecated?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/zendesk_apps_support/app_version.rb', line 34

def deprecated?
  @version == DEPRECATED
end

#obsolete?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/zendesk_apps_support/app_version.rb', line 38

def obsolete?
  !servable?
end

#present?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/zendesk_apps_support/app_version.rb', line 46

def present?
  !blank?
end

#servable?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/zendesk_apps_support/app_version.rb', line 26

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

#to_jsonObject



54
55
56
# File 'lib/zendesk_apps_support/app_version.rb', line 54

def to_json(*)
  @version.inspect
end

#to_sObject



50
51
52
# File 'lib/zendesk_apps_support/app_version.rb', line 50

def to_s
  @version
end

#valid_for_update?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/zendesk_apps_support/app_version.rb', line 30

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