在Python中,我们可以"dir"一个模块,如下所示:
>>> import re
>>> dir(re)
Run Code Online (Sandbox Code Playgroud)
它列出了模块中的所有功能.在Ruby中有类似的方法吗?
好吧,假设我有Ruby程序来读取版本控制日志文件并对数据执行某些操作.(我没有,但情况类似,我对这些类比很开心).我们现在假设我想支持Bazaar和Git.假设程序将以某种参数执行,指示正在使用哪个版本控制软件.
鉴于此,我想创建一个LogFileReaderFactory,它给出版本控制程序的名称将返回一个适当的日志文件读取器(从泛型中继承)以读取日志文件并吐出规范的内部表示.所以,当然,我可以制作BazaarLogFileReader和GitLogFileReader并将它们硬编码到程序中,但是我希望它能够以这样的方式设置:添加对新版本控制程序的支持就像填充新的类文件一样简单在Bazaar和Git阅读器的目录中.
所以,现在你可以调用"do-something-with-the-log --software git"和"do-something-with-the-log --software bazaar",因为有那些日志阅读器.我想要的是可以简单地将一个SVNLogFileReader类和文件添加到同一目录中,并自动调用"do-something-with-the-log --software svn",而无需对其余部分进行任何更改.程序.(这些文件当然可以用特定的模式命名,并在require调用中进行全局化.)
我知道这可以在Ruby中完成......我不知道应该怎么做......或者如果我应该这样做的话.
我正在尝试将图像上传到PingFM.他们的文件说:
media – base64 encoded media data.
Run Code Online (Sandbox Code Playgroud)
我可以通过URL访问此图像.我试过(几乎猜到了)这个:
ActiveSupport::Base64.encode64(open("http://image.com/img.jpg"))
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
TypeError: can't convert Tempfile into String
from /usr/lib/ruby/1.8/base64.rb:97:in `pack'
from /usr/lib/ruby/1.8/base64.rb:97:in `encode64'
from (irb):19
from :0
Run Code Online (Sandbox Code Playgroud) 我正在使用本地服务器来测试应用程序,并从我自己的机器向该服务器发出请求.
测试服务器的SSL很糟糕,因此HTTParty会抛出错误.根据我的阅读,HTTParty默认情况下应该忽略SSL,但是当我尝试这样做时:
HTTParty.get( "#{ @settings.api_server }#{ url }" ).parsed_response
Run Code Online (Sandbox Code Playgroud)
它抛出此错误:
OpenSSL::SSL::SSLError at /
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
如何让它忽略SSL?
有没有一种方法来创建关联.ruby-version,并.ruby-gemset创建一个新的宝石时的文件吗?
使用旧版本的rvm,可以做到rvm --create --rvmrc 1.8.7@project,但这会创建.rvmrc文件.
我以为我读过某个地方我们可以使用--ruby-version命令行开关,但我没有成功.
尝试使用RVM安装任何内容时出现以下错误:
Searching for binary rubies, this might take some time.
Found remote file https://rvm.io/binaries/ubuntu/13.04/x86_64/ruby-2.1.1.tar.bz2
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..kshitiz password required for 'apt-get --quiet --yes update':
............................
Error running 'requirements_debian_update_system ruby-2.1.1',
showing last 15 lines of /home/kshitiz/.rvm/log/1400047196_ruby-2.1.1/update_system.log
++ /scripts/functions/logging : rvm_pretty_print() 78 > case "${TERM:-dumb}" in
++ /scripts/functions/logging : rvm_pretty_print() 81 > case "$1" in
++ /scripts/functions/logging : rvm_pretty_print() 83 > [[ -t 2 ]]
++ /scripts/functions/logging : rvm_pretty_print() 83 > return 1
++ /scripts/functions/logging …Run Code Online (Sandbox Code Playgroud) 在Ruby中,有没有办法在尝试解析之前检查字符串是否有效json?
例如,从其他一些网址获取一些信息,有时会返回json,有时它会返回一个垃圾而不是有效的响应.
我的代码:
def get_parsed_response(response)
parsed_response = JSON.parse(response)
end
Run Code Online (Sandbox Code Playgroud) 我在安装ruby后尝试安装sass,但是我得到以下错误,请帮我解决这个问题
maradhak@WW730VW7X1688 /c/softwares
$ gem -v
2.2.2
maradhak@WW730VW7X1688 /c/softwares
$ gem install sass
ERROR: Could not find a valid gem 'sass' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect retur
ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (
https://rubygems.org/latest_specs.4.8.gz)
Run Code Online (Sandbox Code Playgroud) 我有红宝石的问题.我尝试了很多,但对我没什么用.
当我想启动rails服务器时,我收到以下错误消息:
安装pg(0.18.1)时发生错误,Bundler无法继续.在捆绑之前确保"gem install pg -v'0.18.1"成功.
这是我已经尝试过的:
sudo install gem
bundle install
bundle install --path vendor/cache
gem install pg -v '0.18.1'
Run Code Online (Sandbox Code Playgroud)
当我尝试gem install pg -v '0.18.1'我收到此错误消息:
在Gemfile中列出的或安装在此计算机上的任何gem源中找不到gem'pg(> = 0)ruby'.运行
bundle install以安装缺少的宝石.
但bundle install也不起作用.我收到此错误消息:
安装pg(0.18.1)时发生错误,Bundler无法继续.
gem install pg -v '0.18.1'在捆绑之前确保成功.
我还尝试在一个新的ruby项目中启动服务器.
什么都没有帮助..
谢谢你的帮助!
这些是我在Gemfile中的更改:
group :production do
gem 'pg'
gem 'rails_12factor'
end
group :development do
gem 'sqlite3'
end
Run Code Online (Sandbox Code Playgroud) 如何创建Gemfile?我正在尝试按照教程(RSpec教程)说明下面的内容,我无法做到.
这是一个基本的Gemfile开头.
source 'http://rubygems.org'
gem "rspec"
Run Code Online (Sandbox Code Playgroud)
Rspec教程链接:http://www.tweakstreet.io/blog/2015/2/9/using-standalone-jruby-and-rspec-to-test-your-java-projects