Sha256: 2c45d053617abe83e7a78b4748e9c2b9420aa9725c6dd34068b4f94ca72909c1
Contents?: true
Size: 1.44 KB
Versions: 4
Compression:
Stored size: 1.44 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.sort_by { |cartridge| cartridge[:meta][:name] } cartridges.prepend( { system: { id: '-' }, meta: { name: 'Default', symbol: '🤖' } } ) cartridges end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
nano-bots-0.0.9 | controllers/cartridges.rb |
nano-bots-0.0.8 | controllers/cartridges.rb |
nano-bots-0.0.7 | controllers/cartridges.rb |
nano-bots-0.0.6 | controllers/cartridges.rb |