require "./list" require "yaml" module AutoBoard class Template property name : String property lists : Array(List) def initialize(@name : String) end def load_from_yaml(filepath : String) data = YAML.load_file(filepath) @name = data["name"] @lists = data["lists"].map { |list| List.new(list["name"], list["label"]) } end def save_to_yaml(filepath : String) data = { "name" => @name, "lists" => @lists.map { |list| { "name" => list.name, "label" => list.label } } } File.write(filepath, data.to_yaml) end def add_list(list : List) @lists << list end def remove_list(list_name : String) @lists.delete_if { |list| list.name == list_name } end def inspect puts "Template name: #{@name}" puts "Lists:" @lists.each do |list| puts "- #{list.name} (Label: #{list.label})" end end def self.create_template(template_name : String) template = Template.new(template_name) template.save_to_yaml("~/.config/autoboard/templates/#{template_name}.yml") end def self.destroy_template(template_name : String) File.delete("~/.config/autoboard/templates/#{template_name}.yml") end end end