Class: ZendeskAppsSupport::AppVersion
- Inherits:
-
Object
- Object
- ZendeskAppsSupport::AppVersion
- 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
-
#current ⇒ Object
readonly
Returns the value of attribute current.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #blank? ⇒ Boolean
- #deprecated? ⇒ Boolean
-
#initialize(version) ⇒ AppVersion
constructor
A new instance of AppVersion.
- #obsolete? ⇒ Boolean
- #present? ⇒ Boolean
- #servable? ⇒ Boolean
- #sunsetting? ⇒ Boolean
- #to_json ⇒ Object
- #to_s ⇒ Object
- #valid_for_create? ⇒ Boolean
- #valid_for_update? ⇒ Boolean
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
#current ⇒ Object (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
55 56 57 |
# File 'lib/zendesk_apps_support/app_version.rb', line 55 def blank? @version.nil? || @version == '' end |
#deprecated? ⇒ Boolean
43 44 45 |
# File 'lib/zendesk_apps_support/app_version.rb', line 43 def deprecated? @version == DEPRECATED end |
#obsolete? ⇒ Boolean
51 52 53 |
# File 'lib/zendesk_apps_support/app_version.rb', line 51 def obsolete? !servable? end |
#present? ⇒ Boolean
59 60 61 |
# File 'lib/zendesk_apps_support/app_version.rb', line 59 def present? !blank? end |
#servable? ⇒ Boolean
31 32 33 |
# File 'lib/zendesk_apps_support/app_version.rb', line 31 def servable? TO_BE_SERVED.include?(@version) end |
#sunsetting? ⇒ Boolean
47 48 49 |
# File 'lib/zendesk_apps_support/app_version.rb', line 47 def sunsetting? @version == SUNSETTING end |
#to_json ⇒ Object
67 68 69 |
# File 'lib/zendesk_apps_support/app_version.rb', line 67 def to_json(*) @version.inspect end |
#to_s ⇒ Object
63 64 65 |
# File 'lib/zendesk_apps_support/app_version.rb', line 63 def to_s @version end |
#valid_for_create? ⇒ 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
35 36 37 |
# File 'lib/zendesk_apps_support/app_version.rb', line 35 def valid_for_update? VALID_FOR_UPDATE.include?(@version) end |