| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- # frozen_string_literal: true
- module Docs
- class Entry
- class Invalid < StandardError; end
- attr_accessor :name, :type, :path
- def initialize(name = nil, path = nil, type = nil)
- self.name = name
- self.path = path
- self.type = type
- unless root?
- raise Invalid, 'missing name' if !name || name.empty?
- raise Invalid, 'missing path' if !path || path.empty?
- raise Invalid, 'missing type' if !type || type.empty?
- end
- end
- def ==(other)
- other.name == name && other.path == path && other.type == type
- end
- def name=(value)
- @name = value.try :strip
- end
- def type=(value)
- @type = value.try :strip
- end
- def root?
- path == 'index'
- end
- def as_json
- { name: name, path: path, type: type }
- end
- end
- end
|