18 lines
502 B
Ruby
18 lines
502 B
Ruby
class PathSegment < ApplicationRecord
|
|
validates :segment, presence: true, uniqueness: true
|
|
validates :usage_count, presence: true, numericality: { greater_than: 0 }
|
|
|
|
# Class method to find or create a segment
|
|
def self.find_or_create_segment(segment)
|
|
find_or_create_by(segment: segment) do |path_segment|
|
|
path_segment.usage_count = 1
|
|
path_segment.first_seen_at = Time.current
|
|
end
|
|
end
|
|
|
|
# Increment usage count
|
|
def increment_usage!
|
|
increment!(:usage_count)
|
|
end
|
|
end
|