2013-07-29 45 views
2

当我解决这个错误,我在下面的教程创建红宝石宝石http://guides.rubygems.org/make-your-own-gem/如何创建一个Ruby宝石

的教程告诉我,创造一个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  = '[email protected]' 
    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或者代码有问题?

回答

6

你的错误表明你的文件在字面上有% cat hola.gemspec。该示例中的这一行不是要成为文件本身的一部分;这是作者用来打印文件内容的Unix命令。从另一个文件中删除该行和类似的行,您应该确定移动到下一步。

+0

雅我想知道为什么红宝石文档没有提及猫命令。多么尴尬。清除一些东西,谢谢。 – Sangaku

0

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