Class: Motion::Project::Sparkle::Appcast

Inherits:
Object
  • Object
show all
Defined in:
lib/motion/project/appcast.rb

Constant Summary collapse

PARAMS =
%i[
  package_base_url
  package_filename
  notes_base_url
  notes_filename
  use_exported_private_key
  base_url
  releases_folder
  feed_base_url
  feed_filename
].freeze
CLI_OPTIONS =
{
  account: '--account',
  private_ed_key_file: '--ed-key-file',
  download_url_prefix: '--download-url-prefix',
  release_notes_url_prefix: '--release-notes-url-prefix',
  full_release_notes_url: '--full-release-notes-url',
  link: '--link',
  versions: '--versions',
  maximum_deltas: '--maximum-deltas',
  delta_compression: '--delta-compression',
  delta_compression_level: '--delta-compression-level',
  channel: '--channel',
  major_version: '--major-version',
  ignore_skipped_upgrades_below_version: '--ignore-skipped-upgrades-below-version',
  phased_rollout_interval: '--phased-rollout-interval',
  critical_update_version: '--critical-update-version',
  informational_update_versions: '--informational-update-versions',
  output_path: '-o'
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sparkle_object) ⇒ Appcast

Returns a new instance of Appcast.



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/motion/project/appcast.rb', line 51

def initialize(sparkle_object)
  @sparkle = sparkle_object
  @cli_options = {
    account: 'ed25519' # Sparkle's default account
  }

  @feed_base_url = nil
  @feed_filename = 'releases.xml'
  @notes_base_url = nil
  @notes_filename = nil
  @package_base_url = nil
  @package_filename = nil
  @base_url = nil
  @releases_folder = nil
  @use_exported_private_key = false
end

Instance Attribute Details

#base_urlObject

Returns the value of attribute base_url.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def base_url
  @base_url
end

#cli_optionsObject

Returns the value of attribute cli_options.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def cli_options
  @cli_options
end

#feed_base_urlObject

Returns the value of attribute feed_base_url.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def feed_base_url
  @feed_base_url
end

#feed_filenameObject

Returns the value of attribute feed_filename.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def feed_filename
  @feed_filename
end

#notes_base_urlObject



84
85
86
# File 'lib/motion/project/appcast.rb', line 84

def notes_base_url
  @notes_base_url || base_url
end

#notes_filenameObject

Returns the value of attribute notes_filename.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def notes_filename
  @notes_filename
end

#package_base_urlObject



88
89
90
# File 'lib/motion/project/appcast.rb', line 88

def package_base_url
  @package_base_url || base_url
end

#package_filenameObject

Returns the value of attribute package_filename.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def package_filename
  @package_filename
end

#releases_folderObject

Returns the value of attribute releases_folder.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def releases_folder
  @releases_folder
end

#use_exported_private_keyObject

Returns the value of attribute use_exported_private_key.



40
41
42
# File 'lib/motion/project/appcast.rb', line 40

def use_exported_private_key
  @use_exported_private_key
end

Instance Method Details

#feed_urlObject



80
81
82
# File 'lib/motion/project/appcast.rb', line 80

def feed_url
  "#{feed_base_url || base_url}#{feed_filename}"
end

#prepare_argsObject



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/motion/project/appcast.rb', line 92

def prepare_args
  args = []

  (args)
  private_ed_key_file(args)
  download_url_prefix(args)
  release_notes_url_prefix(args)
  full_release_notes_url(args)
  link(args)
  versions(args)
  maximum_deltas(args)
  delta_compression(args)
  delta_compression_level(args)
  channel(args)
  major_version(args)
  ignore_skipped_upgrades_below_version(args)
  phased_rollout_interval(args)
  critical_update_version(args)
  informational_update_versions(args)
  output_path(args)

  args
end

#process_option(key, value) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
# File 'lib/motion/project/appcast.rb', line 68

def process_option(key, value)
  if CLI_OPTIONS.keys.include?(key)
    cli_options[key] = value
  elsif PARAMS.include?(key)
    send("#{key}=", value)
  else
    return false
  end

  true
end