Tôi đang cố gắng sửa đổi cách xóa mặc định của định dạng dấu thời gian dựng sẵn, để ảnh hưởng đến Thời gian của Ruby.Ruby YAML :: tải
Tôi làm điều này (thành công) với Hash:
YAML::add_domain_type('yaml.org,2002', 'map') { |t, v| nil }
YAML::add_domain_type('ruby.yaml.org,2002', 'hash') { |t, v| nil }
hash = { :hello => :world }
puts YAML::load(hash.to_yaml) # nil
Nhưng khi tôi cố gắng cùng với thời gian, nó không hoạt động:
YAML::add_domain_type('yaml.org,2002', 'timestamp') { |t, v| nil }
YAML::add_domain_type('ruby.yaml.org,2002', 'time') { |t, v| nil }
puts YAML::load(Time.now.to_yaml).class # 'Time'
Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn!
Tôi không chắc chắn nếu nó liên quan, nhưng YAML được không khứ hồi đối tượng Thời gian theo http://redmine.ruby-lang.org/issues/show/4005 –
mục đích của dòng đầu tiên là gì, 'YAML :: add_domain_type ('yaml.org, 2002', 'map') {| t, v | nil} 'bởi vì nếu bạn loại bỏ điều đó, hàm băm cũng không hoạt động. – stephenr
Tham chiếu cho [YAML :: add_domain_type] (http://yaml4r.sourceforge.net/doc/class/yaml_add_domain_type_method.htm). –