#21 楼 @yedingding 时候时候上 Teahour.fm 啊。
#2 楼 @hz_qiuyuanxin 看来是 rails 迷惑了你啊。你可以去 github 上面找一些相对简单的 Gem 看看他们的测试就可以了。
http://ruby-china.org/topics/6492 不完全一样,可以参考。 你这个问题神马线索都没有,没办法解决。
先学个测试工具你就知道了。
RMBP 也很亮啊。
还是做加法好啊。
@iBachue @kenshin54 @linjunhalida 打开不就得了
不会出神马不测了吧。~
你也没提供什么线索。
1:
One called with Hello
2:
##
Example
one
*****
3.1:
@@@
two
$$$$
3.2:
##
Example
two
*****
3.3:
@@@
two
true
$$$$
4:
==> calling one with ["GoodBye"]
One called with GoodBye
<== one returned nil
5:
==> calling two with [4, 5]
<== two returned 9
9
1.
ex1.one("Hello") => # 打印 1
2.
include TraceCalls =>
self.included(klass) =>
wrap(klass, existing_method) =>
def self.wrap(klass, method)
# 打印 2
puts "###{}"
puts klass
puts method
puts "*****"
# 结束打印 2
klass.instance_eval do
method_object = instance_method(method)
define_method(method) do |*args, &block|
puts "==> calling #{method} with #{args.inspect}"
result = method_object.bind(self).call(*args, &block)
puts "<== #{method} returned #{result.inspect}"
result
end
end
end
3.
def two(arg1, arg2)
arg1 + arg2
end
=>
def klass.method_added(method)
# 打印 3.1
puts "@@@"
puts method
puts @trace_calls_internal
puts "$$$$"
# 结束打印 3.1
unless @trace_calls_internal
@trace_calls_internal = true
TraceCalls.wrap(self, method) =>(
def self.wrap(klass, method)
# 打印 3.2
puts "###{}"
puts klass
puts method
puts "*****"
# 结束打印 3.2
klass.instance_eval do
method_object = instance_method(method)
define_method(method) do |*args, &block|
puts "==> calling #{method} with #{args.inspect}"
result = method_object.bind(self).call(*args, &block)
puts "<== #{method} returned #{result.inspect}"
result
end =>(
def klass.method_added(method)
# 打印 3.3
puts "@@@"
puts method
puts @trace_calls_internal
puts "$$$$"
# 结束打印 3.3
unless @trace_calls_internal
@trace_calls_internal = true
TraceCalls.wrap(self, method)
@trace_calls_internal = false
end
end
)
end
end
)
@trace_calls_internal = false
end
# 结束打印 3
end
4.
ex1.one("GoodBye") =>
define_method(method) do |*args, &block|
# 打印 4
puts "==> calling #{method} with #{args.inspect}"
result = method_object.bind(self).call(*args, &block)
puts "<== #{method} returned #{result.inspect}"
# 结束打印4
result
end
5. puts ex1.two(4, 5) =>
define_method(method) do |*args, &block|
# 打印 5
puts "==> calling #{method} with #{args.inspect}"
result = method_object.bind(self).call(*args, &block)
puts "<== #{method} returned #{result.inspect}"
# 结束 打印 5
esult
end
@kenshin54 @Grant 大神的代码在哪啊
我觉得注释还是有必要的。 尤其是那些关于具体 业务 的代码,靠逻辑根本解释不清楚,这时候最好有注释,最起码也要标明当时写的文档的位置吧,要不然下个程序员脑袋想炸也不知道它们为什么会这样。 亲身经历。
这种排版我基本上不会看。
话说 6 级 410 分为什么放简历里?
我个人觉得很不错。加油。
偶像!
可能是 bootstrap 吧
两年大家都有什么改变呢?
不错!