module ZendeskAppsTools::ManifestHandler

Constants

VERSION_PARTS

Attributes

semver[R]

Private Instance Methods

load_manifest() click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 27
def load_manifest
  require 'json'
  manifest_json = File.read(manifest_json_path)
  @manifest = JSON.load(manifest_json)
rescue => e
  say(e.message, :red) and exit 1
end
manifest_json_path() click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 23
def manifest_json_path
  'manifest.json'
end
normalize_version() click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 41
def normalize_version
  VERSION_PARTS.each do |part|
    semver[part] = (semver[part] || '0').to_i
  end
end
read_version() click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 35
def read_version
  version = @manifest.fetch('version', '0.0.0')
  sem_parts = sub_semver(version)
  @semver = sem_parts.names.map(&:to_sym).zip(sem_parts.to_a.drop(1)).to_h
end
sub_semver(v) click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 58
def sub_semver(v)
  v.match(/\A(?<v>v)?(?<major>\d+)(?:\.(?<minor>\d+)(?:\.(?<patch>\d+))?)?\Z/)
end
update_version() click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 47
def update_version
  @manifest['version'] = version
end
version(v: false) click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 62
def version(v: false)
  [
    v ? 'v' : semver[:v],
    [
      semver[:major],
      semver[:minor],
      semver[:patch]
    ].compact.map(&:to_s).join('.')
  ].compact.join
end
write_manifest() click to toggle source
# File lib/zendesk_apps_tools/manifest_handler.rb, line 51
def write_manifest
  File.open(manifest_json_path, 'w') do |f|
    f.write(JSON.pretty_generate(@manifest))
    f.write("\n")
  end
end