feat: ✨ begin the repo a bit late but better than never
This commit is contained in:
commit
607159334b
22 changed files with 898 additions and 0 deletions
49
lib/comfpile/resource_location.rb
Normal file
49
lib/comfpile/resource_location.rb
Normal file
|
@ -0,0 +1,49 @@
|
|||
|
||||
require_relative 'sourcefile.rb'
|
||||
|
||||
module Comfpile
|
||||
class ResourceLocation
|
||||
attr_reader :base_path
|
||||
attr_reader :files
|
||||
|
||||
attr_reader :priority, :subpriority
|
||||
|
||||
def initialize(core, base_path, **options)
|
||||
raise ArgumentError, "Resource path must be a string!" unless base_path.is_a? String
|
||||
raise ArgumentError, "Resource path must be a valid file or directory" unless File.exists?(base_path)
|
||||
@base_path = File.expand_path(base_path)
|
||||
|
||||
@name = options[:name] || @location
|
||||
@core = core
|
||||
|
||||
@priority = options[:priority] || 0;
|
||||
@subpriority = options[:subpriority] || 0;
|
||||
|
||||
@settings_map = Hash.new()
|
||||
|
||||
@known_files = Hash.new()
|
||||
end
|
||||
|
||||
def find_sourcefile(item_key)
|
||||
return @known_files[item_key] if @known_files.include? item_key
|
||||
|
||||
item_path = File.join(@base_path, item_key)
|
||||
new_item = nil
|
||||
|
||||
if File.exists? item_path
|
||||
new_item = Sourcefile.new(self, item_path, item_key)
|
||||
|
||||
@known_files[item_key] = new_item
|
||||
end
|
||||
|
||||
new_item
|
||||
end
|
||||
|
||||
def <=>(other)
|
||||
prio = other.priority <=> self.priority
|
||||
return prio unless prio == 0
|
||||
|
||||
other.subpriority <=> self.subpriority
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue