标签: ruby

有人可以解释一下<< self to to?

我第一次跳进rails编程,在查看我下载的一些库的代码时,我偶尔会注意到代码:

class << self
  def func
     stuff
  end
end
Run Code Online (Sandbox Code Playgroud)

我已经尝试在网上搜索一下解释,但是<< ???从最有用的搜索引擎中删除了,所以它最终只是搜索类自我,这不是很有用.任何见解将不胜感激.

ruby ruby-on-rails

9
推荐指数
1
解决办法
652
查看次数

如何在Ubuntu 10.10上安装Ruby on Rails 3.0?

安装Ruby和Ruby Gems之后:

$ sudo apt-get install ruby rubygems
...
$ ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]
$ gem -v
1.3.7
Run Code Online (Sandbox Code Playgroud)

如果我尝试安装Rails,我会收到一个错误,即使它似乎只是文档,rails也没有安装:

$ sudo gem install rails
...
Successfully installed rails-3.0.1
24 gems installed
... 
Installing ri documentation for builder-2.1.2...
ERROR:  While generating documentation for builder-2.1.2
... MESSAGE:   Unhandled special: Special: type=17, text="<!-- HI -->"
... RDOC args: --ri --op /var/lib/gems/1.8/doc/builder-2.1.2/ri --title Builder -- Easy XML Building --main README --line-numbers --quiet lib CHANGES Rakefile README doc/releases/builder-1.2.4.rdoc doc/releases/builder-2.0.0.rdoc …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails

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

Ruby的"Open Classes"打破了封装吗?

在Ruby中,程序员可以更改预定义的类.所以一个非常糟糕的程序员可以做类似的事情:

class String
  def ==(other)
    return true
  end
end
Run Code Online (Sandbox Code Playgroud)

显然,几乎没有人会这么愚蠢,但是对于预定义类的更微妙的改变可能会导致已经工作的代码出现问题的想法在我看来违反了封装原则.

四个问题:

  1. 首先,这实际上是否违反了OO封装原则?
  2. 第二,作为一名程序员,我是否有办法在我的代码中保证我正在使用未修改版本的类?
  3. 第三,我是否应该出于任何原因在我的代码中"打开"类?
  4. 最后,在大规模的生产编码环境中如何处理这类事情?换句话说,编程行业的人们是否真的在其他人会使用的代码中执行此操作?或者即使他们不这样做,你如何确保一些插件作者在某个地方没有做到这样会破坏你程序的重要部分呢?

我知道这是一个有点主观的问题,但我真的想知道更广泛的编程社区对这个所谓的"猴子修补"的看法.

ruby encapsulation monkeypatching

9
推荐指数
1
解决办法
734
查看次数

怎么写得更好?Ruby Sequel链接OR

在SQL中它应该如下所示:

SELECT * FROM `categories_description_old` WHERE ((`categories_description` = '') OR (`categories_name` = '') OR (`categories_heading_title` = ''))
Run Code Online (Sandbox Code Playgroud)

我(丑陋)的解决方案:

conditions = [:categories_name, :categories_heading_title, :categories_description]
b = table_categories_description_old.filter(conditions.pop => "")
conditions.each do |m|
 b = b.or(m => "")
end
Run Code Online (Sandbox Code Playgroud)

是否有更好的解决方案来链接或条件?

ruby chaining sequel

9
推荐指数
2
解决办法
2036
查看次数

获取Bundler项目正在使用的gem列表

有没有办法获得Bundler(它是一个Rails 3)项目为当前项目加载的宝石的宝石或路径列表.

我正在寻找类似的东西:

Gem.path
Run Code Online (Sandbox Code Playgroud)

但是只返回Gemfile中Bundler主动要求的那些.

ruby gem bundler

9
推荐指数
1
解决办法
2454
查看次数

Ruby on Rails的SAML 2.0 SSO?

我在哪里可以为SAML 2.0 SSO挖掘Ruby或Ruby on Rails库.我有一组要构建的企业应用程序,但需要从中央身份验证系统进行联合登录.我在Microsoft .Net环境中使用过SAML 1.1和SAML 2.0,但还没有看到一个处理Ruby on Rails的SAML提供程序和消费者的库.有人可以指出我正确的方向或告诉我,我是否需要自己建立图书馆?

ruby authentication ruby-on-rails saml single-sign-on

9
推荐指数
2
解决办法
1万
查看次数

用于转换Ruby中物理单位(千克,磅)的库?

我知道Rails有一些很好的日期和时间管理助手.是否有一个已经完成的项目由标准单元及其转换组成或包含干净的DSL?任何带有助手的项目都可以在两个系统的基本长度和重量单位之间进行转换.谢谢!

ruby dsl physics units-of-measurement

9
推荐指数
2
解决办法
3210
查看次数

Ruby正则表达式:^匹配行的开头,即使没有m修饰符?

Ruby 1.8.7.我正在使用带有^的正则表达式来匹配字符串开头的模式.问题是,如果在字符串中的任何行的开头找到模式,它仍然匹配.如果我使用'm'修饰符,这是我期望的行为,但我不是:

$ irb
irb(main):001:0> str = "hello\ngoodbye"
=> "hello\ngoodbye"
irb(main):002:0> puts str
hello
goodbye
=> nil
irb(main):004:0> str =~ /^goodbye/
=> 6
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

ruby regex

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

如何在运行时获取ruby system()调用的STDOUT?

类似于在Ruby中获取system()调用的输出,我正在运行系统命令,但在这种情况下,我需要在命令运行时输出STDOUT.

ruby

9
推荐指数
1
解决办法
6751
查看次数

Ruby on Rails中的百分比

如果

@prescribed_wod_count = @user.workouts.rx_workouts.count 回报 4

@user_workout_count = @user.workouts.count 回报 26

怎么会

<%= number_to_percentage(@prescribed_wod_count / @user_workout_count) %>回报0.000%而不是15%?

ruby math ruby-on-rails division

9
推荐指数
1
解决办法
8506
查看次数