module GdsApi::PartMethods
def find_part(slug)
def find_part(slug) return nil unless index = part_index(slug) parsed_content['parts'][index] end
def has_next_part?(part)
def has_next_part?(part) index = part_index(part['slug']) !! (index && (index + 1) < parsed_content['parts'].length) end
def has_parts?(part)
def has_parts?(part) !! (has_previous_part?(part) || has_next_part?(part)) end
def has_previous_part?(part)
def has_previous_part?(part) index = part_index(part['slug']) !! (index && index > 0) end
def part_after(part)
def part_after(part) part_at(part, 1) end
def part_at(part, relative_offset)
def part_at(part, relative_offset) current_index = part_index(part['slug']) return nil unless current_index other_index = current_index + relative_offset return nil unless (0...parsed_content['parts'].length).cover?(other_index) parsed_content['parts'][other_index] end
def part_before(part)
def part_before(part) part_at(part, -1) end
def part_index(slug)
def part_index(slug) parsed_content['parts'].index { |p| p['slug'] == slug } end