aboutsummaryrefslogtreecommitdiffstats
path: root/config/initializers/theme_loader.rb
blob: 9c79e513c2bc7d7b4b394b05406c6c081cab2935 (plain)
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
# This is a global array of route extensions. Alaveteli modules may add to it.
# It is used by our config/routes.rb to decide which route extension files to load.
$alaveteli_route_extensions = []

def require_theme(theme_name)
    theme_lib = Rails.root.join 'lib', 'themes', theme_name, 'lib'
    $LOAD_PATH.unshift theme_lib.to_s
    theme_main_include = Rails.root.join theme_lib, "alavetelitheme.rb"
    if File.exists? theme_main_include
        require theme_main_include
    end
end

if Rails.env == "test"
    # By setting this ALAVETELI_TEST_THEME to a theme name, theme tests can run in the Rails
    # context with the theme loaded. Otherwise the themes from the config aren't loaded in testing
    # so they don't interfere with core Alaveteli tests
    if defined? ALAVETELI_TEST_THEME
        require_theme(ALAVETELI_TEST_THEME)
    end
else
    for url in AlaveteliConfiguration::theme_urls.reverse
        require_theme theme_url_to_theme_name(url)
    end
end