示例''Hola'“Windows上的Rubygem推送错误

时间:2016-06-29 18:28:28

标签: ruby rubygems

我正在遵循此处找到的基本教程: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 ..哪些可能导致问题?

1 个答案:

答案 0 :(得分:1)

我在.gem文件夹中的凭据文件是用UCS2编码的 - Little Endian并将其转换为UTF而没有BOM就行了。

虽然我绝对不知道为什么......