Invalid theme folder

I am using a custom gem based theme locally.

gem "themename", '0.1.0', :path => "./"

But I am getting this error:

Invalid theme folder: _sass
Invalid theme folder: _includes
Invalid theme folder: _layouts

The warnings mean that those directories do not exist within the current theme. If those directories do exist, you may want to check the regex in the theme’s gemspec file…

All those directories do exist.

Here’s the .gemspec file

spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r!^(_data|assets|_layouts|_includes|_sass|LICENSE|README)!i) }

When I run jekyll serve in the theme directory it works file, but when I use that same theme gem in some other jekyll site, it doesn’t work.

Then its simply the incorrect entry in your Gemfile.
It should just be

gem "themename", :path => "path/to/themename"

There’s no need to include the version constraint when using the path parameter.
:path => "./" means “current directory” which is obviously not the case in another jekyll site.

NOTE: I am using a local gem

If I use it without mentioning the version, it doesn’t work and I get this error.

Could not find gem 'themename' in source at `./`.
The source does not contain any versions of 'themename'
Run `bundle install` to install missing gems.

Here’s the tree structure.

image

:path => should point to the directory containing your gemspec.

For example, if the theme is named theme-yashu, then I would have a directory named theme-yashu containing theme-yashu.gemspec with its spec.name = "theme-yashu"

Then the Gemfile in a site called yashu-site just outside theme directory theme-yashu would point to the theme gemspec:

gem "theme-yashu", :path => "../theme-yashu"

I’m having the same problem:

apparently, my gem is visible to bundler only by specifying the version number (as they say here)