草庐IT

Simplexml_load_string

全部标签

ruby - 在 Ruby 的 BigDecimal 中是否使用 String 或 Integer

引用BigDecimal类的文档,n,m=a.precsprecreturnsnumberofsignificantdigits(n)andmaximumnumberofsignificantdigits(m)ofa.我对以下与BigDecimal相关的输出感到困惑。require'bigdecimal'BigDecimal.new('1').precs#=>[9,18]BigDecimal.new(1).precs#=>[9,27]我不明白为什么当传递String时,有效数字的最大数目比传递Fixnum时少。它还会导致任何精度问题吗? 最佳答案

ruby-on-rails - RSpec load_missing_constant,期望 X 定义 Y(确实如此)

当我们运行时bundleexecrake规范尝试加载环境时出现错误:...gems/activesupport-3.2.8/lib/active_support/dependencies.rb:503:in`load_missing_constant':Expected...app/models/links/category.rbtodefineLinks::Category(LoadError)文件app/models/links/Category.rb确实定义了Links::Category。更奇怪的是,在guard和spork下运行时不会发生错误(我们运行测试的标准方式):bun

ruby-on-rails - 元编程 String#scan 和全局变量?

我的目标是将String类中的方法替换为其他可以完成额外工作的方法(这是一个研究项目)。通过在类似于的String类中编写代码,这适用于许多方法alias_method:center_OLD,:centerdefcenter(args*)r=self.send(*([:center_OLD]+args))#dosomeworkhere#returnsomethingend对于某些方法,我还需要处理一个Proc,这没问题。但是,对于scan方法,调用它会产生设置specialglobalvariables的副作用。来自正则表达式匹配。如文档所述,这些变量是线程和方法的本地变量。不幸的是,

ruby - 在 vagrant rbenv NoMethodError loaded_recipe 上安装 ruby​​ 1.9.3?

我正在尝试vagrant安装并希望将1.9.3-p327作为默认的ruby​​版本。我正在使用chef-solo和librarian-chef来管理vagrant机器。我为chef-solo配置的vagrant文件看起来像这样config.vm.provision:chef_solodo|chef|chef.cookbooks_path="cookbooks"chef.add_recipe"apt"chef.add_recipe"build-essential"chef.add_recipe"git"chef.add_recipe"ruby_build"chef.add_recipe"

ruby-on-rails - Rails 使用 Symbol 与 String 作为 params hash 中的键

如果我们使用字符串作为哈希键,Ruby需要计算字符串并查看它的内容(并计算其上的哈希函数)并将结果与​​已存储的键的(哈希)值进行比较在哈希中。如果我们使用一个符号作为散列键,则暗示它是不可变的,因此Ruby基本上可以将对象ID的(散列函数)与键的(散列)对象ID进行比较已经存储在哈希中。(快得多)。但问题在于Railsparams,它是HashWithIndifferentAccess的实例,如果我们编写params[:some_key]它会转换:som​​e_key到'some_key'然后它会尝试在参数散列中查找键。line159defconvert_key(key)key.ki

ruby-on-rails - Heroku 无法检测到 rake 任务(LoadError : cannot load such file -- rspec/core/rake_task)

我正在使用travisCI部署到heroku,但出现此错误。这才刚刚开始。我有基本的railsRakefile,我有一个看起来像这样的文件,否则travis无法检测到rake任务:#lib\tasks\spec.rakerequire'rspec/core/rake_task'RSpec::Core::RakeTask.newtask:default=>:spec为什么会专门为heroku显示此错误?编辑-我有一个与给出的(更好的)答案相似的版本:beginrequire'rspec/core/rake_task'desc"Runallexamples"RSpec::Core::Rak

ruby - Ruby 如何评估双引号(又名 "")与 String.new?

Ruby使用双引号("")与String.new初始化新字符串的方式有何不同?出于好奇和实验目的,我覆盖了String#initialize:classStringdefinitializeputs"I我想弄清楚的是:为什么这两个示例不同?#CallingtheStringclassdirectly,Icandeclarebananalove!irb(main):054:0>String.newI""#Usingdoublequotes,thisstringisnotastasty:(irb(main):055:0>""=>""这对研究来说很烦人,因为每个Google搜索结果似乎都集中

ruby - 了解 `load` 、 `require` 和 `require_relative` 之间的区别

我不明白导入库或模块的三种方法之间的区别。据我目前的了解,load'file.rb'会将外部文件的内容导入当前文件而:require'file.rb'将执行相同的功能,但不会导入已经导入的文件。require_relative'file.rb'类似于require,但它将加载仅在当前目录中的文件,而require将使用搜索路径$:试图找到该文件。我毫不怀疑我对这三种机制的理解是有缺陷的。谁能提供一些说明? 最佳答案 load在您想要导入文件时使用,无论它是否已经导入。require或require_relative仅当您想要导入尚未

ruby - ruby 的 String.hash 方法如何工作?

我只是ruby的新手。我见过一个字符串方法(String).hash。比如在irb中,我试过了>>"mgpyone".hash返回=>144611910这个方法是如何工作的? 最佳答案 hash方法是为所有对象定义的。参见documentation:GeneratesaFixnumhashvalueforthisobject.Thisfunctionmusthavethepropertythata.eql?(b)impliesa.hash==b.hash.ThehashvalueisusedbyclassHash.Anyhashva

ruby - 为什么需要 mongo 给我 LoadError : no such file to load -- openssl

我正在使用UbuntuServer10,Ruby1.9.2当我尝试要求'mongo'时它给我这个错误:irb(main):001:0>require'mongo'LoadError:nosuchfiletoload--opensslfrom/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require'from/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require'from/usr/local/lib