lib/drawio_dsl/configuration.rb in drawio_dsl-0.10.0 vs lib/drawio_dsl/configuration.rb in drawio_dsl-0.10.1
- old
+ new
@@ -206,22 +206,23 @@
end
class Theme
attr_reader :source_config
- BackgroundThemeConfig = Struct.new(:type, :bg_color, :font_color, keyword_init: true)
+ BackgroundThemeConfig = Struct.new(:type, :bg_color, :font_color, :favourite, keyword_init: true)
ElementThemeConfig = Struct.new(:type, :fill_color, :stroke_color, :font_color, :gradient, keyword_init: true)
def initialize(source_config)
@source_config = source_config
end
def background(type)
backgrounds[type] || BackgroundThemeConfig.new(
type: type,
bg_color: '#000000',
- font_color: '#ffffff'
+ font_color: '#FFFFFF',
+ favourite: false
)
end
def backgrounds
return @backgrounds if defined? @backgrounds
@@ -229,18 +230,23 @@
@backgrounds = {}
source_config['backgrounds'].each do |background|
@backgrounds[background['type'].to_sym] = BackgroundThemeConfig.new(
type: background['type'].to_sym,
bg_color: background['bg_color'],
- font_color: background['font_color']
+ font_color: background['font_color'],
+ favourite: background['favourite'] == 1
)
end
@backgrounds
end
def background_types
backgrounds.keys
+ end
+
+ def favourite_background_types
+ backgrounds.values.select(&:favourite).map(&:type)
end
def random_background_type
backgrounds.values.sample.type
end