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
- #ensure_path_segment ⇒ Object
- #full_path(last_segment = nil) ⇒ Object
- #full_path?(last_segment = nil) ⇒ Boolean
- #pathable? ⇒ Boolean
Instance Method Details
#ensure_path_segment ⇒ Object
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
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
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 |