如何在创建ruby gem时修复此错误

时间:2013-07-29 22:27:08

标签: ruby rubygems

我正在按照教程创建ruby gems http://guides.rubygems.org/make-your-own-gem/

教程告诉我要创建一个像这样的ruby文件:

% cat lib/hola.rb
class Hola
  def self.hi
    puts "Hello world!"
  end
end

然后像这样的gemspec文件:

% cat hola.gemspec
Gem::Specification.new do |s|
  s.name        = 'hola'
  s.version     = '0.0.0'
  s.date        = '2010-04-28'
  s.summary     = "Hola!"
  s.description = "A simple hello world gem"
  s.authors     = ["Nick Quaranto"]
  s.email       = 'nick@quaran.to'
  s.files       = ["lib/hola.rb"]
  s.homepage    =
    'http://rubygems.org/gems/hola'
end

当我gem build hola.gemspec时,我收到此错误:

Invalid gemspec in [hola.gemspec]: hola.gemspec:1: syntax error, unexpected tIDENTIFIER, expecting $end
% cat hola.gemspec
      ^
ERROR:  Error loading gemspec. Aborting.

现在他在Github上的代码不会在没有Rakefile的情况下构建。

那么我怎样才能做到这一点?我是否需要添加Rakefile或代码有问题?

2 个答案:

答案 0 :(得分:7)

您的错误表明您的文件字面上有% cat hola.gemspec行。示例中的这一行不是文件本身的一部分;这是作者用来打印文件内容的Unix命令。从另一个文件中删除该行和类似的行,您应该可以进入下一步。

答案 1 :(得分:0)

第一行% cat lib/hola.rb并不是文件的一部分,而是整个命令行输出。 cat是用于输出文件内容的命令,%$之类的命令通常用于表示命令的开始。因此,从文件中删除第一行。