Class: Zui::Dist::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/zui/dist_config.rb

Instance Method Summary collapse

Constructor Details

#initializeBuilder

Returns a new instance of Builder.



115
116
117
# File 'lib/zui/dist_config.rb', line 115

def initialize
  @values = { homepage: nil, icons: {}, categories: ["Utility"] }
end

Instance Method Details

#buildObject



138
139
140
141
142
143
144
145
146
# File 'lib/zui/dist_config.rb', line 138

def build
  required = %i[name identifier version publisher description license]
  missing = required.reject { |field| @values.key?(field) }
  unless missing.empty?
    raise ArgumentError, "#{CONFIG_FILE} is missing: #{missing.join(', ')}"
  end

  Config.new(**@values)
end

#categories(*values) ⇒ Object



134
135
136
# File 'lib/zui/dist_config.rb', line 134

def categories(*values)
  @values[:categories] = values.flatten.map(&:to_s)
end

#icon(**paths) ⇒ Object

Raises:

  • (ArgumentError)


127
128
129
130
131
132
# File 'lib/zui/dist_config.rb', line 127

def icon(**paths)
  unknown = paths.keys.map(&:to_sym) - PLATFORM_ICON_EXTENSIONS.keys
  raise ArgumentError, "unknown icon platform: #{unknown.first}" unless unknown.empty?

  @values[:icons].merge!(paths.transform_keys(&:to_sym))
end