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 four versions:

* deprecated -- we will still serve apps targeting the deprecated version,
                but newly created or updated apps CANNOT target it
* sunsetting -- we will soon be removing support for this version;
                updated apps SHOULD target the current version, no new apps allowed
* 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'
SUNSETTING =
'1.0'
CURRENT =
'2.0'
FUTURE =
nil
TO_BE_SERVED =
[DEPRECATED, SUNSETTING, CURRENT, FUTURE].compact.freeze
VALID_FOR_UPDATE =
[SUNSETTING, CURRENT, FUTURE].compact.freeze
VALID_FOR_CREATE =
[CURRENT, FUTURE].compact.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version) ⇒ AppVersion

Returns a new instance of AppVersion.



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

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

Instance Attribute Details

#currentObject (readonly)

Returns the value of attribute current.



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

def current
  @current
end

Instance Method Details

#==(other) ⇒ Object



71
72
73
# File 'lib/zendesk_apps_support/app_version.rb', line 71

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

#blank?Boolean

Returns:

  • (Boolean)


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

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

#deprecated?Boolean

Returns:

  • (Boolean)


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

def deprecated?
  @version == DEPRECATED
end

#obsolete?Boolean

Returns:

  • (Boolean)


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

def obsolete?
  !servable?
end

#present?Boolean

Returns:

  • (Boolean)


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

def present?
  !blank?
end

#servable?Boolean

Returns:

  • (Boolean)


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

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

#sunsetting?Boolean

Returns:

  • (Boolean)


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

def sunsetting?
  @version == SUNSETTING
end

#to_jsonObject



67
68
69
# File 'lib/zendesk_apps_support/app_version.rb', line 67

def to_json(*)
  @version.inspect
end

#to_sObject



63
64
65
# File 'lib/zendesk_apps_support/app_version.rb', line 63

def to_s
  @version
end

#valid_for_create?Boolean

Returns:

  • (Boolean)


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

def valid_for_create?
  VALID_FOR_CREATE.include?(@version)
end

#valid_for_update?Boolean

Returns:

  • (Boolean)


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

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