Class: Alchemy::Node

Inherits:
BaseRecord
  • Object
show all
Defined in:
app/models/alchemy/node.rb

Constant Summary collapse

VALID_URL_REGEX =
/\A(\/|\D[a-z\+\d\.\-]+:)/

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseRecord

#active_record_5_1?

Class Method Details

.available_menu_namesObject



33
34
35
# File 'app/models/alchemy/node.rb', line 33

def available_menu_names
  read_definitions_file
end

.language_root_nodesObject

Returns all root nodes for current language



27
28
29
30
31
# File 'app/models/alchemy/node.rb', line 27

def language_root_nodes
  raise "No language found" if Language.current.nil?

  roots.where(language_id: Language.current.id)
end

Instance Method Details

#nameObject

Returns the name

Either the value is stored in the database or, if attached, the values comes from a page.



21
22
23
# File 'app/models/alchemy/node.rb', line 21

def name
  read_attribute(:name).presence || page&.name
end

#to_partial_pathObject



64
65
66
# File 'app/models/alchemy/node.rb', line 64

def to_partial_path
  "#{view_folder_name}/wrapper"
end

#urlObject

Returns the url

Either the value is stored in the database, aka. an external url. Or, if attached, the values comes from a page.



60
61
62
# File 'app/models/alchemy/node.rb', line 60

def url
  page&.url_path || read_attribute(:url).presence
end

#view_folder_nameObject



68
69
70
# File 'app/models/alchemy/node.rb', line 68

def view_folder_name
  "alchemy/menus/#{name.parameterize.underscore}"
end