Class: UtilityPalettes::Palettes

Inherits:
Object
  • Object
show all
Defined in:
lib/utility_palettes/palettes.rb

Class Method Summary collapse

Class Method Details

.generateObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/utility_palettes/palettes.rb', line 5

def self.generate
  configuration = UtilityPalettes.configuration

  puts 'Generating utility palettes...'

  default_absolutes = configuration.use_default_absolutes == true ? UtilityPalettes::Defaults.absolutes : {}
  default_relatives = configuration.use_default_relatives == true ? UtilityPalettes::Defaults.relatives : {}
  default_singles = configuration.use_default_singles == true ? UtilityPalettes::Defaults.singles : {}

  puts 'Defined default palettes...'

  user_absolutes = configuration.absolutes
  user_relatives = configuration.relatives
  user_singles = configuration.singles

  puts 'Retrieved user palettes...'

  # merging should mean any user colours will overwrite default colours with the same key names
  combined_absolutes = default_absolutes.merge(user_absolutes)
  combined_relatives = default_relatives.merge(user_relatives)
  combined_singles = {}.merge(default_absolutes, user_absolutes, default_singles, user_singles)

  @combined_samples = combined_absolutes.merge(combined_relatives).merge(combined_singles)

  puts 'Merged palettes...'

  converted_absolutes = self.colourize_values(combined_absolutes)
  converted_relatives = self.colourize_values(combined_relatives)
  converted_singles = self.colourize_values(combined_singles)

  puts 'Converted palettes...'

  generated_absolutes = self.palette_looper(converted_absolutes, 'absolutes')
  generated_relatives = self.palette_looper(converted_relatives, 'relatives')
  generated_singles = converted_singles

  puts 'Generated utility palettes...'

  generated_palettes = {}.merge(generated_absolutes, generated_relatives, generated_singles)
  generated_palettes = self.format_palette(generated_palettes)
  output_palettes = UtilityPalettes::Outputs.generate(generated_palettes)

  filename = configuration.output_filename
  filename += "-#{Time.zone.now.strftime('%Y%m%d-%H%M%S')}" if configuration.output_dated == true

  output_files = configuration.output_files.map(&:strip)

  UtilityPalettes::Outputs.json(filename, output_palettes) if output_files.include?('json')
  UtilityPalettes::Outputs.scss(filename, output_palettes) if output_files.include?('scss')
  UtilityPalettes::Outputs.css(filename, output_palettes) if output_files.include?('css')

  true
end