草庐IT

git - 类似 GNU screen 的 Git Bash 多 session 管理器

全部标签

ruby - LoadError 通过要求带有 :path or :git 的 gem

我遇到了一个非常奇怪的问题。我在github上fork了一个gem来做一些修改,在我的本地机器上克隆了我的repo,进行了更改并更改了另一个项目的Gemfile以从我的本地存储库中获取gem以进行测试。不幸的是,我在我的ruby​​脚本中需要该gem时遇到LoadError。rvmcurrent=>ruby-1.9.3-p448ruby--version=>ruby1.9.3p448(2013-06-27revision41675)[x86_64-linux]bundle--version=>Bundlerversion1.3.5我的Gemfile的内容:source'http://r

Ruby:想要一个保留顺序的类似集合的对象

...或者一个防止重复条目的数组。Ruby中是否有某种对象:响应[]、[]=和默默地删除重复的条目是可枚举的(或至少支持find_all)保留条目插入的顺序?据我所知,数组支持点1、3和4;而Set支持1、2和3(但不支持4)。而SortedSet不会做,因为我的条目没有实现。 最佳答案 从Ruby1.9开始,内置的Hash对象保留了插入顺序。例如:h={}h[:z]=1h[:b]=2h[:a]=3h[:x]=0ph.keys#=>[:z,:b,:a,:x]h.delete:bph.keys#=>[:z,:a,:x]h[:b]=1p

ruby - 如何使用 sinatra session

enable:sessionsget'/foo'dosession['m']='HelloWorld!'redirect'/bar'endget'/bar'dosession['m']#=>'HelloWorld!'end好像不行。 最佳答案 你在用霰弹枪吗?如果是这样,请执行以下操作:configure(:development){set:session_secret,"something"}这在Sinatra1.3中将不再是必需的。 关于ruby-如何使用sinatrasession

ruby - before_session Hook 失败:Pry::CommandError:找不到此方法:加载

在Ruby脚本中加载PryREPL我得到了这个奇怪的错误:before_sessionhookfailed:Pry::CommandError:Cannotlocatethismethod:load.~/.rvm/gems/ruby-2.0.0-p195/gems/pry-0.9.12.2/lib/pry/method.rb:498:in`pry_doc_info'(see_pry_.hooks.errorstodebug)知道问题出在哪里吗?注意事项:1.除了那个神秘的消息之外,代码似乎执行得很好,并且2.我找不到“_pry_.hooks.errors”文件

ruby - 是否有类似于 Nokogiri 的东西来解析 Ruby 代码?

Nokogiri很棒。我可以做#css('.bla')这样的事情,它会返回第一个匹配的元素。现在我们需要对Ruby源代码进行一些解析-查找类中的所有方法等。我们正在使用ruby_parsergem,但它所做的只是梳理你的源代码并吐出S表达式。对于这些S表达式,是否有类似Nokogiri的东西可以执行诸如“为找到的名为‘foo’的第一个方法返回S表达式”之类的事情? 最佳答案 我唯一能想到的是AdamSanderson'sSExpPathlibrary. 关于ruby-是否有类似于Noko

ruby-on-rails - 如何使用来自 git hook post-receive 的特定 rvm gemset 进行 bundle 安装?

因此,我正在尝试在不使用capistrano的情况下实现类似heroku的部署。为了检查和安装gems,我尝试使用githook并将以下命令放入/hooks/post-receive:bundlecheck||bundleinstall但是当我运行gitpush时,我得到:remote:hooks/post-receive:line20:bundle:commandnotfound.我知道hook可能会从错误的环境中启动命令,并且我必须以某种方式从hook切换rvm环境。我尝试在接收后使用rvmuse1.8.7@rails3但它没有帮助。有什么想法吗? 最佳

ruby-on-rails - 使用 ruby​​ mechanize 在浏览器中存储登录 session cookie

我正在尝试登录网站并通过Rails操作重定向到安全页面。我的代码看起来像这样。defredirect_to_externalagent=Mechanize.newpage=agent.get('http://example.com/home.asp')login_form=page.form_with(:name=>"loginForm")login_form.login='username'login_form.password='password'agent.submit(login_form)#cookies=agent.cookie_jar.store.map{|i|i}#ne

git submodule update --init --recursive 父子仓库

.gitmodules:记录子模块信息在父项目新建submodule添加:gitsubmoduleadd 子模块仓库地址  子模块在父模块目录下的存储路径。注意:路径不能以/结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利Clone)删除:首先删除.gitmodules文件下的对应子模块信息,然后 gitrm–cached 克隆下来的项目有submodule拉取submodule: gitsubmoduleupdate--init--recursive更新submodulegitsubmoduleupdate--remote或者在submodule打开gitbash,然后用gitp

ruby - Rack::Session::Pool 与 Sinatra

我有一个使用enable:sessions构建的Sinatrawebapp,我使用session[:mything]访问我的session数据。我现在想在服务器端存储数据(即使用基于数据库的session),但我不知道如何使用Rack::Session::Pool,这似乎是我需要使用的东西。我如何着手转换我的网络应用程序以与Pool一起使用?我知道我需要添加行useRack::Session::Pool接下来会发生什么?—提前致谢!编辑:这是一个使用基于cookie的session的示例:require'rubygems'require'sinatra'enable:sessionsg

ruby-on-rails - 使用 Upstart 管理 Unicorn w/rbenv + bundler binstubs w/ruby-local-exec shebang

好吧,这让我的大脑融化了。这可能与我不了解Upstart以及我应该了解的事实有关。对于这么长的问题提前致歉。我正在尝试使用Upstart来管理Rails应用程序的Unicorn主进程。这是我现在的/etc/init/app.conf:description"app"startonrunlevel[2]stoponrunlevel[016]consoleowner#expectdaemonscriptAPP_ROOT=/home/deploy/appPATH=/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:$PATH$APP_ROOT/