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'
CURRENT =
'1.0'
FUTURE =
'2.0'
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.



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

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

Instance Method Details

#==(other) ⇒ Object



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

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

#blank?Boolean

Returns:

  • (Boolean)


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

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

#deprecated?Boolean

Returns:

  • (Boolean)


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

def deprecated?
  @version == DEPRECATED
end

#obsolete?Boolean

Returns:

  • (Boolean)


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

def obsolete?
  !servable?
end

#present?Boolean

Returns:

  • (Boolean)


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

def present?
  !blank?
end

#servable?Boolean

Returns:

  • (Boolean)


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

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

#to_jsonObject



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

def to_json(*)
  @version.inspect
end

#to_sObject



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

def to_s
  @version
end

#valid_for_update?Boolean

Returns:

  • (Boolean)


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

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