在初始化时验证BinData :: Record

时间:2012-06-01 11:50:12

标签: ruby bindata

有没有办法在初始化期间验证BinData :: Record上设置的字段?每个参数的check_value似乎仅在从输入流

读取后进行评估
class Foo < BinData::Record
   uint8 :bar,:check_value=>lambda{raise 'Here is an error'}
end

Foo.new(:bar=>5)  #Does not raise validation exception

我尝试添加'initialize_instance'来读取'to_binary_s',但它会抛出一些其他错误,大概是因为对象没有完全实例化。

1 个答案:

答案 0 :(得分:0)

编写def initialize方法。然后将验证放在其中。 初始化在对象实例化时运行,因此必须进行检查。