Sha256: d49241e2c68132797106651514cb7c7d93c3368ba45817c8a636788f98c3f402

Contents?: true

Size: 1 KB

Versions: 3

Compression:

Stored size: 1 KB

Contents

module Cardio
  # methods for handling simple and gem mod paths/files
  module Modfiles
    # @return [Hash] in the form{ modname(String) => Gem::Specification }
    def gem_mod_specs
      Bundler.definition.specs.each_with_object({}) do |gem_spec, h|
        h[gem_spec.name] = gem_spec if gem_mod_spec? gem_spec
      end
    end

    # @return [True/False]
    def gem_mod_spec? spec
      return unless spec

      spec.name.match?(/^card-mod-/) || spec.metadata["card-mod"].present?
    end

    def each_mod_path &block
      each_simple_mod_path(&block)
      each_gem_mod_path(&block)
    end

    def each_simple_mod_path &block
      paths["mod"].each do |mods_path|
        Dir.glob("#{mods_path}/*").each(&block)
      end
    end

    def each_gem_mod_path
      gem_mod_specs.each_value do |spec|
        yield spec.full_gem_path
      end
    end

    def mod_migration_paths dir
      [].tap do |list|
        Cardio::Mod.dirs.each("db/#{dir}") { |path| list.concat Dir.glob path }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
card-1.101.7 lib/cardio/modfiles.rb
card-1.101.6 lib/cardio/modfiles.rb
card-1.101.5 lib/cardio/modfiles.rb