草庐IT

rb_protect

全部标签

ruby - 你应该在 Ruby 中使用 private、protected 和 public 修饰符吗?

我更多的是C#背景,但我在业余时间学习Ruby。给定类,可以将它们的方法设置为private、public(默认)或protected。虽然我了解它们的用法,但Ruby代码是否通常使用此类修饰符,尽管它是一种动态语言,用户可以轻松覆盖访问权限?虽然使用Send之类的东西允许用户访问私有(private)方法,但我只是想知道关于Ruby和访问修饰符的最佳实践是什么?换句话说,我应该在类里面使用它们吗? 最佳答案 Givenclasses,itispossibletomaketheirmethodsprivate,public(defa

ruby - Bundler 在直接调用 .rb 文件时工作,在通过其他 ruby​​ 脚本的 exec 调用时失败

我需要使用Bundler+Gemfile从另一个使用Bundler+Gemfile的ruby​​script1.rb调用一个ruby​​script2.rb。我注意到script2.rb可用的gem只有script1.rb的gem。当script1.rb调用script2.rb时,script2.rb独有的gem不可用。当直接从bashshell调用script2.rb时,一切都可用。我确定这不是ENV问题,我在两个文件中使用diff和辅助代码对它们进行了比较,并进行了一些修改以使它们匹配。File.open("script2_env.txt",'wb'){|f|f.write(JSO

ruby - 安装报错rb-inotify安装

我正在尝试使用以下命令安装rb-inotifysudogeminstallrb-inotify我得到了以下错误Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrb-inotify:ERROR:Failedtobuildgemnativeextension./usr/bin/ruby1.9.1extconf.rb/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in`require':cannotloadsuchfile--mkmf(LoadError

Ruby - protected 方法

我有以下Ruby程序:classAccessdefretrieve_publicputs"Thisismewhenpublic..."endprivatedefretrieve_privateputs"Thisismewhenprivtae..."endprotecteddefretrieve_protectedputs"Thisismewhenprotected..."endendaccess=Access.newaccess.retrieve_protected当我运行它时,我得到以下信息:accessor.rb:23:protectedmethod`retrieve_protec

ruby - Ubuntu 10.04 上的 ruby​​gems 更新后 dev_appserver.rb 无法启动

我安装了ruby​​gems1.3.5(或1.3.6?),然后在很长一段时间后再次进行了sudogemupdate。一些gems提示他们需要更新的gems版本。因为sudogemupdate--system在Ubuntu上被停用,所以我遵循了以下步骤:HowcanIgetRubyGems1.3.6onUbuntu10.4但现在我无法启动dev_appserver.rb,它说:=>BundlinggemsERROR:Whileexecutinggem...(RuntimeError)Unknowncommandbundle我还尝试再次执行sudogemupdate和sudogemupda

ruby - "ruby filename.rb"没有打开我的文件

我是Ruby的新手,是脚本语言的新手,但并不是编程的新手。我有大约一年的Java经验,但整个命令行的事情让我很困惑。我正在学习本教程,只是为了它:http://www.ruby-lang.org/en/documentation/quickstart/3/在我被要求保存文件并从IRB运行它之前,一切都很简单。我在IRB中输入“rubyri20min.rb”(当然没有引号)。我收到此错误:NameError:undefinedlocalvariableormethod'ri20min'formain:Objectfrom(irb):1我做错了什么?该教程似乎暗示该文件应该通过IRB运行;

ruby - 使用 RSpec 测试纯 Ruby bin/my_app.rb 应用程序?

我有一个用纯Ruby编写的命令行(非RAILS)应用程序,我正在通过Cucumber和RSpec运行它。它遵循lib、bin、spec和feature目录的典型应用程序层次结构。到目前为止,我一直遵循编写失败的Cucumber功能/场景的传统流程,下降到RSpec以驱动支持的lib文件,然后让场景通过。不幸的是,在“bin/my_application.rb”中推出主应用程序入口点时,这似乎并不那么直接。对我来说主要问题是我不是在描述RSpec中的类,它是一个顺序Ruby脚本,用于管理应用程序的类并通过命令行参数和选项进行初始化。“bin/my_application.rb”只是一个小

ruby - 无法批量分配 protected 属性 attr_accessor 和 attr_accessible

在rails2.3.11中,我有以下模型attr_accessor:person_id在Controller中@project.person_id=current_user.id现在,我在rails3.2.11中转换它,我得到了Can'tmass-assignprotectedattributes:person_id所以我改变了模型,我从attr_accessor中删除了:person_id并添加了下面一行attr_accessible:person_id但我在Controller中使用了person_id,就在这里@project.person_id=current_user.id我

ruby 需要 './blahblah.rb' 与需要 File.expand_path ('../blahblah' , __FILE__)

有什么区别require'blahblahlblah.rb'对比require'./blahblah.rb'对比requireFile.expand_path('../blahblah',__FILE__)我看到它们都被使用了。想知道什么更好,在什么情况下一个比另一个更好。谢谢! 最佳答案 requireblaba.rb正在搜索您的默认gem路径以加载文件,这取决于您使用的ruby​​版本。例如,RVM将在$HOME/.rvm/rubies/...中搜索,而系统范围的ruby​​将在发行版的默认路径中搜索。请注意,这是gems所在的

ruby-on-rails - 在 Rails 中运行 bundle exec rspec spec/requests/static_pages_spec.rb 时出错

我正在关注这篇文章,我可以在下面的这个ruby​​文件中编写这段代码,主页确实有示例应用程序,但当我运行bundleexec时,它仍然说静态页面主页应该有内容“示例应用程序”rspec规范/requests/static_pages_spec.rbspec/requests/static_pages_spec文件代码:require'spec_helper'describe"Staticpages"dodescribe"Homepage"doit"shouldhavethecontent'SampleApp'"dovisit'/static_pages/home'page.should