about summary refs log tree commit diff
path: root/app/lib/themes.rb
blob: 7ced9f945a44c6f796e3a73f1a4902e1269356c1 (plain) (blame)
1
2
3
4
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
# frozen_string_literal: true

require 'singleton'
require 'yaml'

class Themes
  include Singleton

  def initialize

    core = YAML.load_file(Rails.root.join('app', 'javascript', 'core', 'theme.yml'))
    core['pack'] = Hash.new unless core['pack']

    result = Hash.new
    Dir.glob(Rails.root.join('app', 'javascript', 'themes', '*', 'theme.yml')) do |path|
      data = YAML.load_file(path)
      name = File.basename(File.dirname(path))
      if data['pack']
        data['name'] = name
        result[name] = data
      end
    end

    @core = core
    @conf = result

  end

  def core
    @core
  end

  def get(name)
    @conf[name]
  end

  def names
    @conf.keys
  end
end