标签: ruby

Ruby相当于Python的"dir"?

在Python中,我们可以"dir"一个模块,如下所示:

>>> import re
>>> dir(re)
Run Code Online (Sandbox Code Playgroud)

它列出了模块中的所有功能.在Ruby中有类似的方法吗?

ruby python inspection

50
推荐指数
3
解决办法
1万
查看次数

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中完成......我不知道应该怎么做......或者如果我应该这样做的话.

ruby design-patterns

50
推荐指数
4
解决办法
2万
查看次数

如何在Ruby中给定URL中的base64编码媒体

我正在尝试将图像上传到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)

ruby base64 encode ruby-on-rails activesupport

50
推荐指数
5
解决办法
5万
查看次数

如何使HTTParty忽略SSL?

我正在使用本地服务器来测试应用程序,并从我自己的机器向该服务器发出请求.

测试服务器的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 ssl httparty

50
推荐指数
3
解决办法
2万
查看次数

用rvm创建.ruby-version和.ruby-gemset

有没有一种方法来创建关联.ruby-version,并.ruby-gemset创建一个新的宝石时的文件吗?

使用旧版本的rvm,可以做到rvm --create --rvmrc 1.8.7@project,但这会创建.rvmrc文件.

我以为我读过某个地方我们可以使用--ruby-version命令行开关,但我没有成功.

ruby ruby-on-rails rvm gemset

50
推荐指数
2
解决办法
3万
查看次数

Ruby RVM apt-get更新错误

尝试使用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 rvm

50
推荐指数
5
解决办法
3万
查看次数

在尝试解析字符串之前检查字符串是否有效json?

在Ruby中,有没有办法在尝试解析之前检查字符串是否有效json?

例如,从其他一些网址获取一些信息,有时会返回json,有时它会返回一个垃圾而不是有效的响应.

我的代码:

def get_parsed_response(response)
  parsed_response = JSON.parse(response)
end
Run Code Online (Sandbox Code Playgroud)

ruby json

50
推荐指数
3
解决办法
3万
查看次数

错误:Windows的SASS安装

我在安装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)

ruby gem sass

50
推荐指数
5
解决办法
5万
查看次数

错误消息:在捆绑之前确保`gem install pg -v'0.18.1'成功

我有红宝石的问题.我尝试了很多,但对我没什么用.

当我想启动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)

ruby ruby-on-rails

50
推荐指数
5
解决办法
5万
查看次数

如何创建Gemfile?

如何创建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

ruby rspec

50
推荐指数
2
解决办法
4万
查看次数