iberianpig/fusuma · error

Not Found: #{match_data[1]}/#{match_data[2]}/*.gemspec

Error message

Not Found: #{match_data[1]}/#{match_data[2]}/*.gemspec

What it means

Error "Not Found: #{match_data[1]}/#{match_data[2]}/*.gemspec" thrown in iberianpig/fusuma.

Source

Thrown at lib/fusuma/plugin/manager.rb:44

      def exclude_path_pattern
        %r{fusuma/plugin/[^/]*.rb}
      end

      #: () -> Array[untyped]
      def fusuma_default_plugin_paths
        @_fusuma_default_plugin_paths ||= Dir.glob(File.expand_path("#{__dir__}/../../#{search_key}")).grep_v(exclude_path_pattern).sort
      end

      # @return [Array<String>] paths of external plugins (installed by gem)
      #: () -> Array[untyped]
      def fusuma_external_plugin_paths
        @_fusuma_external_plugin_paths ||=
          Gem.find_latest_files(search_key).map do |siblings_plugin|
            next unless %r{fusuma-plugin-(.+).*/lib/#{plugin_dir_name}/.+\.rb}.match?(siblings_plugin)

            match_data = siblings_plugin.match(%r{(.*)/(.*)/lib/(.*)})
            plugin_gemspec_path = Dir.glob("#{match_data[1]}/#{match_data[2]}/*.gemspec").first
            raise "Not Found: #{match_data[1]}/#{match_data[2]}/*.gemspec" unless plugin_gemspec_path

            plugin_gemspec = Gem::Specification.load(plugin_gemspec_path)
            fusuma_gemspec_path = File.expand_path("../../../fusuma.gemspec", __dir__ || ".")
            fusuma_gemspec = Gem::Specification.load(fusuma_gemspec_path)
            next if plugin_gemspec == fusuma_gemspec

            if plugin_gemspec.dependencies.find { |d| d.name == "fusuma" }&.match?(fusuma_gemspec)
              siblings_plugin
            else
              MultiLogger.warn "#{plugin_gemspec.name} #{plugin_gemspec.version} is incompatible with running #{fusuma_gemspec.name} #{fusuma_gemspec.version}"
              MultiLogger.warn "gemspec: #{plugin_gemspec_path}"
              next
            end
          end.compact.grep_v(exclude_path_pattern).sort
      end

      # @return [String] search key for plugin
      # @example

View on GitHub (pinned to 43a7eb04fe)

Solutions

  1. Reinstall the fusuma plugin gem (gem install fusuma-plugin-NAME) so its .gemspec file is present in the gem directory.
  2. Repair a corrupted gem installation with gem pristine fusuma-plugin-NAME, or uninstall and reinstall the plugin.
  3. Ensure the plugin gem name follows the fusuma-plugin-* convention so its gemspec sits next to its lib directory.

When it happens

Trigger: Thrown at lib/fusuma/plugin/manager.rb:44 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of iberianpig/fusuma@43a7eb04fe (2026-08-23). Data as JSON: /api/errors/d5baa6ad5436123f. Report an issue: GitHub.