Sha256: 1b665aa3c15b6459bf979eb9007f1bba85e6e276e4eaf5fe0f60af98408ab293
Contents?: true
Size: 1.46 KB
Versions: 3
Compression:
Stored size: 1.46 KB
Contents
# frozen_string_literal: true require_relative '../components/storage' require_relative '../logic/helpers/hash' require_relative '../logic/cartridge/default' module NanoBot module Controllers class Cartridges def self.all files = {} path = Components::Storage.cartridges_path Dir.glob("#{path}/**/*.{yml,yaml}").each do |file| files[Pathname.new(file).realpath] = { base: path, path: Pathname.new(file).realpath } end cartridges = [] files.values.uniq.map do |file| cartridge = Logic::Helpers::Hash.symbolize_keys( YAML.safe_load(File.read(file[:path]), permitted_classes: [Symbol]) ).merge({ system: { id: file[:path].to_s.sub(/^#{Regexp.escape(file[:base])}/, '').sub(%r{^/}, '').sub(/\.[^.]+\z/, ''), path: file[:path], base: file[:base] } }) next if cartridge[:meta][:name].nil? cartridges << cartridge rescue StandardError => _e end cartridges = cartridges.sort_by { |cartridge| cartridge[:meta][:name] } cartridges.prepend( { system: { id: '-' }, meta: { name: 'Default', symbol: '🤖' } } ) cartridges end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nano-bots-0.1.1 | controllers/cartridges.rb |
nano-bots-0.1.0 | controllers/cartridges.rb |
nano-bots-0.0.10 | controllers/cartridges.rb |