Class: Zui::Dist::Builder
- Inherits:
-
Object
- Object
- Zui::Dist::Builder
- Defined in:
- lib/zui/dist_config.rb
Instance Method Summary collapse
- #build ⇒ Object
- #categories(*values) ⇒ Object
- #icon(**paths) ⇒ Object
-
#initialize ⇒ Builder
constructor
A new instance of Builder.
Constructor Details
#initialize ⇒ Builder
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
#build ⇒ Object
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
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 |