小编saw*_*awa的帖子

杰基尔和自定义css

有没有办法在jekyll网站中包含自定义css标签,同时对输入文件使用markdown; 例如,当我想突出某个段落时?

css ruby blogs jekyll

5
推荐指数
3
解决办法
4489
查看次数

创建ruby数据库时,惰性符号绑定失败

我正在尝试在rails上安装ruby,到目前为止,所有内容都已安装,但是当我尝试使用创建数据库时rake db:create,出现一个奇怪的错误:

dyld:懒惰的符号绑定失败:找不到符号:_mysql_get_client_info引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle预期在:平面命名空间

dyld:未找到符号:_mysql_get_client_info引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle预期在:平面名称空间

跟踪/ BPT陷阱:5

我正在研究osx山狮最新更新。有人对我有合适的解决方案吗?

ruby database ruby-on-rails

5
推荐指数
1
解决办法
6137
查看次数

类,模块,它们的本征类和方法查找

让我们打开课程Module并为其添加一个方法:

class Module  
  def foo  
    puts "phew"  
  end  
end
Run Code Online (Sandbox Code Playgroud)

我可以通过这样做来调用这个方法,

Class.foo
Run Code Online (Sandbox Code Playgroud)

这是可以理解的,因为ClassClass超类的类Module.所以它可以调用中定义的实例方法Module.

类和模块之间的关系

现在,bar下面的方法是在Module'eigenclass 上定义的:

class Module  
   def self.bar  
     puts "bar"  
   end  
end
Run Code Online (Sandbox Code Playgroud)

但现在

Class.bar 
Run Code Online (Sandbox Code Playgroud)

也有效.

有人可以解释一下如何在特征类Class中访问方法Module吗?


我想我现在明白了.方法查找不像我之前解释的那样工作.当我这样做的时候Class.foo,这个方法是在特征Class类中进行搜索,然后是超类,它是本Module征类的特征类,直到它的特征类BasicObject,此时它会转向自身(就像蛇吃它自己的尾巴)来寻找方法Class(就像'eigenclass Class的超类BasicObject一样)然后到它的超类Module,它找到了方法.

类似地,当我这样做时Class.bar,方法在Class's eigenclass中搜索,然后在Module它找到它的本征类中搜索.

当我做

class Class   
  def check  
    puts "class instance method"  
  end
end …
Run Code Online (Sandbox Code Playgroud)

ruby lookup module class eigenclass

5
推荐指数
1
解决办法
618
查看次数

UML图生成器

Ruby有一个很好的UML图生成器吗?我看到RailRoadyRailRoad,但他们需要Rails.

ruby gem uml

5
推荐指数
0
解决办法
247
查看次数

Infinity和NaN有哪些类型?

我能得到Infinity并且NaN通过

n = 9.0 / 0 #=> Infinity
n.class #=> Float

m = 0 / 0.0 #=> NaN
m.class #=> Float
Run Code Online (Sandbox Code Playgroud)

但是当我想要访问InfinityNaN直接访问时:

Infinity #=> uninitialized constant Infinity (NameError)
NaN #=> uninitialized constant NaN (NameError)
Run Code Online (Sandbox Code Playgroud)

什么是InfinityNaN?它们是对象,关键字还是其他什么?

ruby nan infinity

5
推荐指数
1
解决办法
1405
查看次数

如何找到重复字母数最多的单词

我的目标是找到给定字符串中具有最多重复字母数的单词.例如,"aabcc ddeeteefef iijjfff"会返回,"ddeeteefef"因为"e"在这个单词中重复了五次,这比所有其他重复的字符多.

到目前为止,这是我得到的,但它有很多问题,并不完整:

def LetterCountI(str)
  s = str.split(" ")
  i = 0
  result = []
  t = s[i].scan(/((.)\2+)/).map(&:max) 
  u = t.max { |a, b| a.length <=> b.length }
  return u.split(//).count 
end
Run Code Online (Sandbox Code Playgroud)

我只能找到连续模式的代码; 如果模式被中断(例如"aabaaa",它会计数三次而不是五次).

ruby

5
推荐指数
2
解决办法
1905
查看次数

事件委托和窗口与window.document

我想做事件委托并通过绑定到整个文档的事件处理程序捕获DOM对象上发生的所有事件.将事件绑定到以下内容之间是否有任何区别window:

window.addEventListener(event, function(e){
  var obj = e.target;
  ... // if `obj` is a certain kind of object, then do something
}, false);
Run Code Online (Sandbox Code Playgroud)

window.document在下面?

window.document.addEventListener(event, function(e){
  var obj = e.target;
  ... // if `obj` is a certain kind of object, then do something
}, false);
Run Code Online (Sandbox Code Playgroud)

event是某种事件一样'click','mouseover'

html javascript events event-delegation

5
推荐指数
1
解决办法
109
查看次数

学习Ruby艰难之路第9章三重引号

Zed Shaw's Learn Ruby the Hard Way第9章使用三重双引号:

puts """
There's something going on here.
With the three double-quotes.
We'll be able to type as much as we like.
Even 4 lines if we want, or 5, or 6.
"""
Run Code Online (Sandbox Code Playgroud)

我试着用单双引号写同样的东西,它似乎工作正常.我不明白三重和单双引号之间的区别.我错过了什么吗?

ruby string-literals

5
推荐指数
2
解决办法
1413
查看次数

在“nil”上双击

我的理解是,非数组对象上的单个 splat 调用to_a然后将元素分离。由于nil.to_a被定义为[],因此会发生以下转换:

[:foo, *nil, :bar]
# => [:foo, *nil.to_a, :bar]
# => [:foo, *[], :bar]
# => [:foo, :bar]
Run Code Online (Sandbox Code Playgroud)

通过类比,我认为非哈希对象上的 double splat 调用to_h然后将键值对分离。由于nil.to_h被定义为{},我预计会发生以下转换:

{"foo" => 1, **nil, "bar" => 2}
# => {"foo" => 1, **nil.to_h, "bar" => 2}
# => {"foo" => 1, **{}, "bar" => 2}
# => {"foo" => 1, "bar" => 2}
Run Code Online (Sandbox Code Playgroud)

但实际上,它会引发一个错误:no implicit conversion of nil into Hash。为什么它会这样?

编辑我不是在问设计背后的原因。我想问我关于双打的想法哪里错了。

ruby hash literals splat double-splat

5
推荐指数
1
解决办法
542
查看次数

定义方法参数的条件

我有一个方法只采用一个参数:

def my_method(number)

end
Run Code Online (Sandbox Code Playgroud)

如果使用number < 2?调用方法,如何引发错误?通常,我如何定义方法参数的条件?

例如,我想在调用时出错:

my_method(1)
Run Code Online (Sandbox Code Playgroud)

ruby methods

5
推荐指数
1
解决办法
122
查看次数