Welcome to mirror list, hosted at ThFree Co, Russian Federation.

chapter.rb « models « app - github.com/git/git-scm.com.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1c6e954a53e775f264563999c76d03ca6dc1bc81 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# frozen_string_literal: true

# t.string      :title
# t.integer     :number
# t.belongs_to  :book
# t.timestamps
class Chapter < ApplicationRecord
  default_scope { order(:number) }
  belongs_to :book
  has_many :sections, dependent: :delete_all
  has_many :chapters, through: :book

  def prev
    return false unless number

    num = number - 1
    return chapters.find_by(number: num) if num > 0

    false
  end

  def next
    return false unless number

    num = number + 1
    return chapters.find_by(number: num) if num > 0

    false
  end

  def last_section
    sections.reorder("number DESC").first
  end

  def first_section
    sections.first
  end

  def cs_number
    if chapter_type == "appendix"
      "A" + chapter_number
    else
      chapter_number
    end
  end
end