Essayer de construire un bijou, obtenir un petit bijou :: InvalidSpecificationException: « [...] ne sont pas des fichiers »

StackOverflow https://stackoverflow.com/questions/7815062

  •  26-10-2019
  •  | 
  •  

Question

Je suis en train de construire un petit bijou personnalisé que j'ai écrit appelé client_package mais il échoue.

Ma structure annuaire se présente comme suit:

client_package
    Gemfile
    Gemfile.lock
    client_package.gemspec
    Rakefile
    Readme.md
    .gitignore
    .git
        ...git files...
    lib
        client_package.rb
        client_package
            version.rb
            api.rb
            ...more...

Et mes client_package.gemspec ressemble à ceci:

# encoding: UTF-8
require File.expand_path('../lib/client_package/version', __FILE__)

Gem::Specification.new do |s|
    s.name = 'client_package'
    s.version = ClientPackage::VERSION
    s.platform = Gem::Platform::RUBY

    s.files = `git ls-files`.split('\n')
    s.executables = `git ls-files -- bin/*`.split('\n').map{ |f| File.basename(f) }
    s.require_paths = ['lib']

    # also have s.authors, s.email, s.homepage, s.summary, s.description

    s.add_dependency 'httparty'
    s.add_dependency 'json'
end

Et tous mes fichiers sont engagés et l'état git est propre.

à partir du répertoire de client_package haut, je lance gem build client_package.gemspec et obtenir cette erreur:

ERROR:  While executing gem ... (Gem::InvalidSpecificationException)
    [".gitignore
Gemfile
Rakefile
Readme.md
client_package.gemspec
lib/client_package.rb
lib/client_package/api.rb
lib/client_package/version.rb
lib/client_package/...more...
"] are not files

Ceci est déconcertant pour moi, parce que ceux qui semblent certainement être des fichiers pour moi. Quoi qu'il en soit, je me suis dit il y a un problème de chemin si elle est de ne pas voir ces fichiers, et juste faire quelques essais et erreurs que j'ai découvert que si je monte un répertoire (un au-dessus du client_package niveau haut), puis exécutez gem build client_package/client_package.gemspec Finalité semblent fonctionner dans un premier temps, la création du fichier client_package-1.0.0.gem. Mais quelque chose est encore mal. Si je puis installer ce petit bijou avec gem install client_package-1.0.0.gem qui apparaît aussi au travail. Mais ceci:

require 'rubygems'
require 'client_package'

Retours LoadError: no such file to load -- client_package.

Je sens que je dois manquer petit quelque chose, mais important. Toutes les idées?

Était-ce utile?

La solution

This'd être petite, mais importante:

split('\n') devraient être split("\n")?

Parce qu'il ressemble à

[".gitignore
Gemfile
Rakefile
Readme.md
client_package.gemspec
lib/client_package.rb
lib/client_package/api.rb
lib/client_package/version.rb
lib/client_package/...more...
"]

pourrait être un tableau contenant une seule chaîne multiligne, pas un tableau de plusieurs chaînes.

Autres conseils

Excuses pour ressusciter ce vieux fil, mais je l'ai trouvé une autre cause: si vous n'avez pas vérifié dans git, certains anciens (fichiers supprimés) peuvent interférer: sur le disque n'existent pas, mais ls-les fichiers git MIGH les signalent comme étant inclus dans la gemme.

Vérifiez dans les fichiers et cette erreur exacte est terminée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top