我正在按照教程创建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或代码有问题?
答案 0 :(得分:7)
您的错误表明您的文件字面上有% cat hola.gemspec
行。示例中的这一行不是文件本身的一部分;这是作者用来打印文件内容的Unix命令。从另一个文件中删除该行和类似的行,您应该可以进入下一步。
答案 1 :(得分:0)
第一行% cat lib/hola.rb
并不是文件的一部分,而是整个命令行输出。 cat
是用于输出文件内容的命令,%
和$
之类的命令通常用于表示命令的开始。因此,从文件中删除第一行。