我的设置可能有问题:
irb(main):001:0> truncate("Once upon a time in a world far far away", :length => 17)
NoMethodError: undefined method `truncate' for main:Object
from (irb):1
from /usr/lib64/ruby/gems/1.9.1/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start'
from /usr/lib64/ruby/gems/1.9.1/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start'
from /usr/lib64/ruby/gems/1.9.1/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
看起来我不能使用任何文本助手(在irb和rails控制台中).
我该怎么检查?
如何使用watir-webdrive刷新页面?我尝试了他们在这里说的话:http://watirwebdriver.com/sending-special-keys/,但没有运气.
browser.send_keys :f5
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?谢谢
我有一个docker容器运行一个rails应用程序(我们称之为容器A)需要使用firefox作为后端使用watir webdriver进行一些抓取.
我在另一个容器(容器B)中安装了firefox,我希望能够传入容器A,例如:
Selenium::WebDriver::Firefox::Binary.path= $DOCKER_RUN_CONTAINER_A
Run Code Online (Sandbox Code Playgroud)
因此,每次watir启动firefox时,CONTAINER_A的新实例都会启动一个新的Firefox.
我知道容器使用端口进行通信很容易,但可执行文件怎么样?并且,顺便说一下,将firefox隔离在一个单独的容器中看起来是一个好的设计理念吗?
我需要在CSV文件中转换哈希数组.我发现的各种方法涉及在数组中插入哈希值:
class Array
def to_csv(csv_filename="hash.csv")
require 'csv'
CSV.open(csv_filename, "wb") do |csv|
csv << first.keys # adds the attributes name on the first line
self.each do |hash|
csv << hash.values
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种方法要求数组中的每个元素都是完整的,例如当我有这个数组时,它甚至不会返回有效的csv:
myarray = [
{foo: 1, bar: 2, baz: 3},
{bar: 2, baz: 3},
{foo: 2, bar: 4, baz: 9, zab: 44}
]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来创建一个找到所有可能的标头的csv,并按正确的顺序分配值,在需要的地方添加空格.
我正在处理一些以奇怪方式表现的字符串.
在ruby中的正则表达式中,/ s不识别某些空格.
"175 75 16C 101/99 R".gsub( /\s/ , 'x' )
=> "175 x75 x16C x101/99 xR"
Run Code Online (Sandbox Code Playgroud)
预期的结果是每个空格都转换为'x'
我试图强制编码为UTF-8到字符串,但它也没有工作.我需要一个正则表达式匹配我的字符串中的每种空格并将它们转换为常规空格.
编辑:
str.encode('utf-8').chars.each { |c| puts c.ord }
49
55
53
160
32
55
53
160
160
32
49
54
67
160
32
49
48
49
47
57
57
160
160
160
32
82
Run Code Online (Sandbox Code Playgroud) 我在我的sidekiq初始化程序中有这个:
Sidekiq.configure_server do |config|
config.redis = { url: "redis://#{ENV['REDIS_PORT_6379_TCP_ADDR']}:#{ENV['REDIS_PORT_6379_TCP_PORT']}/0", namespace: 'Tyresearch' }
end
Run Code Online (Sandbox Code Playgroud)
当我启动sidekiq时,它在正确的主机和端口上正常启动:
INFO: Booting Sidekiq 3.2.4 with redis options {:url=>"redis://172.17.0.6:6379/0", :namespace=>"Tyresearch"}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试启动工作人员或访问sidekiq管理面板时,我收到此错误:
Redis::CannotConnectError at /sidekiq
Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)
Run Code Online (Sandbox Code Playgroud)
因此,由于某种原因,它现在尝试连接127.0.0.1而不是172.17.0.6
这是我的环境(该应用程序由流浪者管理的链接的docker容器组成)
{"ADMIN_EMAIL"=>"user@example.com",
"ADMIN_NAME"=>"First User",
"ADMIN_PASSWORD"=>"changeme",
"BUNDLE_BIN_PATH"=>
"/opt/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.4/bin/bundle",
"BUNDLE_GEMFILE"=>"/var/www/Gemfile",
"COLUMNS"=>"135",
"GEM_HOME"=>"/var/bundle/ruby/2.1.0",
"GEM_PATH"=>"",
"GMAIL_PASSWORD"=>"Your_Password",
"GMAIL_USERNAME"=>"Your_Username",
"HOME"=>"/home/web",
"HOSTNAME"=>"223b7ef7396f",
"LESSCLOSE"=>"/usr/bin/lesspipe %s %s",
"LESSOPEN"=>"| /usr/bin/lesspipe %s",
"LINES"=>"43",
"LS_COLORS"=>
"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=
01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:
*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=0
1;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.
flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:
*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:",
"NODE_PATH"=>"/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript",
"PATH"=>
"/var/bundle/ruby/2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/rubies/ruby-2.1.2/bin",
"POSTGRES_ENV_PASSWORD"=>"password",
"POSTGRES_ENV_USERNAME"=>"postgres",
"POSTGRES_ENV_VERSION"=>"9.3",
"POSTGRES_NAME"=>"/tyresearch/postgres",
"POSTGRES_PORT"=>"tcp://172.17.0.5:5432",
"POSTGRES_PORT_5432_TCP"=>"tcp://172.17.0.5:5432",
"POSTGRES_PORT_5432_TCP_ADDR"=>"172.17.0.5",
"POSTGRES_PORT_5432_TCP_PORT"=>"5432",
"POSTGRES_PORT_5432_TCP_PROTO"=>"tcp",
"PWD"=>"/var/www",
"REDIS_NAME"=>"/tyresearch/redis",
"REDIS_PORT"=>"tcp://172.17.0.6:6379",
"REDIS_PORT_6379_TCP"=>"tcp://172.17.0.6:6379", …Run Code Online (Sandbox Code Playgroud)