我正在遵循此处找到的基本教程:http://guides.rubygems.org/make-your-own-gem/
hola_username.rb:
class Hola
def self.hi
puts "Hello world!"
end
end
hola_username.gemspec:
Gem::Specification.new do |s|
s.name = 'hola_username'
s.version = '0.0.0'
s.date = '2010-04-28'
s.summary = "Hola!"
s.description = "A simple hello world gem"
s.authors = ["Surname Lastname"]
s.email = 'me.me@gmail.com'
s.files = ["lib/hola_username.rb"]
s.homepage =
'http://rubygems.org/gems/hola_username'
s.license = 'MIT'
end
这就是项目的全部内容。
我可以用
建立我的宝石gem build .\hola_username.gemspec
我还通过导入和执行Hola类的hi函数来测试它,它可以工作:
PS E:\hola_username> gem install .\hola_username-0.0.0.gem
Successfully installed hola_username-0.0.0
Parsing documentation for hola_username-0.0.0
Done installing documentation for hola_username after 0 seconds
1 gem installed
&安培;
irb(main):001:0> require 'hola_username'
=> true
irb(main):002:0> Hola.hi
Hello world!
=> nil
irb(main):003:0>
但是当我尝试
时gem push .\hola_username-0.0.0.gem
我明白了:
错误:执行gem时...(Psych :: SyntaxError) ():第1行第1列不允许使用控制字符
有什么想法吗?
编辑:我在使用ruby 2.0.0p598的Windows 10计算机
编辑v01:任何我在宝石推送后放置会导致上述错误,似乎没有样本rubygem的问题。
编辑v02:我在.gem文件夹中生成的凭据文件但是用十六进制字符标记:fffe2d002d00 ..哪些可能导致问题?
答案 0 :(得分:1)
我在.gem文件夹中的凭据文件是用UCS2编码的 - Little Endian并将其转换为UTF而没有BOM就行了。
虽然我绝对不知道为什么......