3

我正在按照教程创建红宝石宝石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.

现在,如果没有 Rakefile,他在 Github 上的代码将无法构建。

那么我怎样才能使这项工作呢?我需要添加 Rakefile 还是代码有问题?

4

2 回答 2

7

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

于 2013-07-29T22:35:49.397 回答
0

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

于 2013-07-29T22:37:41.200 回答