小编Phr*_*ogz的帖子

了解class方法的method_added

我想在瞬间做一些魔术,并将类方法添加到某个类中.因此我尝试了以下方法:

module Magic
  def self.included(base)
    base.extend ClassMethods
  end  
  module ClassMethods
    def method_added(name)
      puts "class method '#{name}' added"
    end  
    def some_class_method
      puts "some class method"
    end  
  end  
end

class Foo
  include Magic
  def self.method_added(name)
    puts "instance method #{name} added"
  end  
end
Run Code Online (Sandbox Code Playgroud)

这种方法适用于实例方法,类方法失败.我怎么解决这个问题?有什么建议?

ruby dsl metaprogramming

17
推荐指数
1
解决办法
2244
查看次数

如何将Nokogiri Document对象转换为JSON

我有一些解析Nokogiri::XML::Document对象,我想打印为JSON.

我可以将它变成一个字符串,将其解析为哈希,使用active-record或Crack然后使用Hash.to_json; 但这既丑陋又依赖于manay库.

有没有更简单的方法?

根据评论中的请求,例如,XML <root a="b"><a>b</a></root>可以表示为JSON:

<root a="b"><a>b</a></root> #=> {"root":{"a":"b"}}
<root foo="bar"><a>b</a></root> #=> {"root":{"a":"b","foo":"bar"}}
Run Code Online (Sandbox Code Playgroud)

这也是我现在用Crack得到的.实际上,实体和子标签之间的冲突是一个潜在的问题,但我自己构建了大部分XML,因此最简单的方法就是完全避免这些冲突:)

ruby xml json nokogiri

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

顶部或底部的CSS样式表?或如何解决空白页问题?

我一直把样式表放在<head></head>html的顶部(之间).据我所知,这是最好的做法.(例如http://stevesouders.com/hpws/css-bottom.php)

无论如何,最近我经历了不同的结果.相反,当test.css很慢时,下面的代码将返回空白页,这意味着我没有经历渐进式渲染.

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="test.css" />
</head>
<body>
Blah..
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后当test.css放在底部时,我得到渐进式渲染.

<!DOCTYPE html>
<html>
<head>
</head>
<body>
Blah..
<link rel="stylesheet" href="test.css" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

据我所知,到目前为止,它应该是相反的方向.可能还有其他因素我忽略了?

css rendering progressive

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

HTML5 canvas是否支持基于浏览器的缩放?

我设置了一个简单的画布,上面画了一个fillText.它看起来相当不错,但是当我使用浏览器提供的缩放功能(Safari,Firefox)时,抗锯齿效果看起来很难看.

我尝试使用scale()提升网格,但它没有帮助.

是否有任何方法可以在画布上绘制,即使使用缩放的浏览器窗口,它看起来也很清晰?


截图(无缩放):http://i.stack.imgur.com/CGWka.png

截图(最大缩放):http://i.stack.imgur.com/vNPjF.png

javascript css html5 canvas

17
推荐指数
1
解决办法
2823
查看次数

html画布阴影被应用于一切

如果你定义了一个阴影ONCE,那么它将在它之后从画布上的所有"图形"中应用(这是它应该做的).

示例:http: //flanvas.com/development/flanvas/test.html

有没有人知道你使用它后关闭阴影的最佳做法?我将shadowColor设置为"rgba(0,0,0,0)",这是一个无alpha黑色.我相信有更好的方法.

案例样本:文本也变成了阴影.我现在正在使用无alpha黑色来对抗它. http://flanvas.com/development/flanvas/examples/filters-dropShadowFilter.html

html5 canvas shadow

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

测试变量是否与if-elsif链长的几个字符串中的任何一个匹配,或者case-when

我假设在红宝石中有一个很好的单行方式

if mystr == "abc" or "def " or "ghi" or "xyz"
Run Code Online (Sandbox Code Playgroud)

但在我通常咨询的在线参考文献中找不到如何做到这一点...

谢谢!

ruby string comparison

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

正则表达式匹配日期

我希望匹配日期格式为mm/dd/yy或mm/dd/yyyy,但它不应该选择23/09/2010,其中月份为23,这是无效的,也没有一些无效的日期,如00/12/2020或12/00/2011.

ruby regex

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

防止JavaScript keydown事件在按下时被多次处理

我有这个代码:

else if (e.keyCode == 32){
      fired = true;
Run Code Online (Sandbox Code Playgroud)

在keyDown函数中(我添加了document.addEventListener代码).现在它工作正常,并完全按照我的要求去做.但问题出在这里:如果按住键,它会一直反复地持续激活= true,直到它被释放.我只想要它设置fired = true; 一旦,即使按键被按下.

javascript

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

如何使用正则表达式转换Markdown风格的链接?

我正在尝试编写一个替换markdown样式链接的正则表达式,但它似乎不起作用.这是我到目前为止:

# ruby code:
text = "[link me up](http://www.example.com)"
text.gsub!(%r{\[(\+)\]\((\+)\)}x, %{<a target="_blank" href="\\1">\\2</a>})
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ruby regex markdown

16
推荐指数
1
解决办法
4115
查看次数

具有多个参数的Setter方法(赋值)

我有一个自定义类,并希望能够覆盖赋值运算符.这是一个例子:

class MyArray < Array
  attr_accessor :direction
  def initialize
    @direction = :forward
  end
end
class History
  def initialize
    @strategy = MyArray.new
  end
  def strategy=(strategy, direction = :forward)
    @strategy << strategy
    @strategy.direction = direction
  end
end
Run Code Online (Sandbox Code Playgroud)

目前这不符合预期.使用时

h = History.new
h.strategy = :mystrategy, :backward
Run Code Online (Sandbox Code Playgroud)

[:mystrategy, :backward]被分配给策略变量并且方向变量保持不变:forward.
重要的是我希望能够为direction参数分配标准值.

任何提供这项工作的线索都受到高度赞赏.

ruby

16
推荐指数
1
解决办法
4250
查看次数