根据http://en.wikipedia.org/wiki/Atomicity_(database_systems),我想用Ruby执行一些原子性方法.
例如,如果我有:
a = 30
b = 75
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
atomic_operation do
a += 10
b -= 39
end
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9中是否存在允许此类过程的本机模块?如果可能的话,我想在不使用插件的情况下这样做.非常感谢!
我在 Ruby 中遇到了一些关于回调(和继承)的问题。这是我的代码:
class Lmao
def initialize
@str = "HAHAHAHAHAHHAHAHAH"
@before_laughing = []
end
def self.inherited(base)
base.extend(Callbacks)
end
def laughing
@before_laughing.each {|method| send(method) }
@str
end
end
module Callbacks
def before_laughing(*methods)
@before_laughing = methods
end
end
class Lol < Lmao
before_laughing :downcase_please
def downcase_please
@str.downcase!
end
end
a = Lol.new
a.laughing # => "HAHAHAHAHAHHAHAHAH"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的笑前回调不起作用...因为数组 @before_laughing 是空的。我相信可以通过编辑将 *methods 保存到 Lol 实例方法中的方式(从回调内部)来解决此问题。但我真的不明白如何...
如果您知道解决方案,感谢您的光临!
我有一个程序,可以创建如下所示的类:
MyClass = Class.new do
def initialize; end
# ...
end
Run Code Online (Sandbox Code Playgroud)
但我想从字符串中动态命名MyClass.因为它是一个类的名称,我想对该字符串进行分类,例如(感谢Rails方法):
"hello_world".classify # => "HelloWorld"
Run Code Online (Sandbox Code Playgroud)
我不知道在纯Ruby中是否有一种方法.
谢谢
ruby ×3
atomic ×1
atomicity ×1
callback ×1
hook ×1
inheritance ×1
ruby-1.9 ×1
string ×1
transactions ×1