Module: PagesCore::PageModel::Pathable

Extended by:
ActiveSupport::Concern
Included in:
Page
Defined in:
app/models/concerns/pages_core/page_model/pathable.rb

Instance Method Summary collapse

Instance Method Details

#ensure_path_segmentObject



35
36
37
38
39
40
41
42
# File 'app/models/concerns/pages_core/page_model/pathable.rb', line 35

def ensure_path_segment
  return if deleted? || path_segment? || !name?
  if path_collision?(generated_path_segment)
    update path_segment: "#{generated_path_segment}-#{id}"
  else
    update path_segment: generated_path_segment
  end
end

#full_path(last_segment = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'app/models/concerns/pages_core/page_model/pathable.rb', line 16

def full_path(last_segment = nil)
  last_segment ||= path_segment
  return nil unless full_path?(last_segment)
  if parent
    [parent.full_path, last_segment].join("/")
  else
    last_segment
  end
end

#full_path?(last_segment = nil) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
29
30
31
32
33
# File 'app/models/concerns/pages_core/page_model/pathable.rb', line 26

def full_path?(last_segment = nil)
  last_segment ||= path_segment
  if parent
    parent.full_path? && last_segment.present?
  else
    last_segment.present?
  end
end

#pathable?Boolean

Returns:

  • (Boolean)


44
45
46
47
# File 'app/models/concerns/pages_core/page_model/pathable.rb', line 44

def pathable?
  return true unless parent
  parent.full_path?
end