Module: Railsui::Pages

Defined in:
lib/railsui/pages.rb

Constant Summary collapse

CONFIG_FILE =
Railsui::Engine.root.join('config', 'pages.yml')
VIEWS_FOLDER =
Rails.root.join('app/views/rui/pages')

Class Method Summary collapse

Class Method Details

.all_pagesObject



6
7
8
# File 'lib/railsui/pages.rb', line 6

def self.all_pages
  @all_pages ||= load_pages_config
end

.all_pages_installed?Boolean

Returns:

  • (Boolean)


32
33
34
35
36
# File 'lib/railsui/pages.rb', line 32

def self.all_pages_installed?
  return false if theme_pages.nil? || theme_pages.empty?

  theme_pages.keys.all? { |page| page_exists?(page) }
end

.get_pages(theme) ⇒ Object



20
21
22
# File 'lib/railsui/pages.rb', line 20

def self.get_pages(theme)
  all_pages[theme.to_s].keys
end

.installed_pagesObject



38
39
40
41
42
# File 'lib/railsui/pages.rb', line 38

def self.installed_pages
  return {} if theme_pages.nil?

  theme_pages.select { |page, details| page_enabled?(page) && page_exists?(page) }
end

.load_pages_configObject



46
47
48
49
50
# File 'lib/railsui/pages.rb', line 46

def self.load_pages_config
  return {} unless File.exist?(CONFIG_FILE)

  YAML.safe_load_file(CONFIG_FILE)
end

.page_enabled?(page) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/railsui/pages.rb', line 24

def self.page_enabled?(page)
  Railsui.config.pages.include?(page.to_s)
end

.page_exists?(page) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/railsui/pages.rb', line 28

def self.page_exists?(page)
  VIEWS_FOLDER.join("#{page}.html.erb").exist?
end

.theme_pagesObject



10
11
12
13
14
15
16
17
18
# File 'lib/railsui/pages.rb', line 10

def self.theme_pages
  theme = Railsui.config.theme
  return {} if theme.nil?

  pages = all_pages[theme]
  return {} if pages.nil?

  pages
end