`
bd7lx
  • 浏览: 201794 次
社区版块
存档分类
最新评论

PStore Meets YAML- 有这个必要吗?

    博客分类:
  • ruby
阅读更多
http://blog.grayproductions.net/articles/2006/07/30/pstore-meets-yaml

看了这片短文有点惊讶

Pstore应该是

将Ruby对象存入外部文件------比如磁盘文件时使用的类。该类内部使用了Marshal。

Java和PHP类似的做法叫序列化

http://rubycn.ce-lab.net/man/addlib/PStore.html

db = PStore.new("/tmp/foo")
db.transaction do
  p db.roots
  ary = db["root"] = [1,2,3,4]
  ary[0] = [1,1.5]
end

db.transaction do
  p db["root"]
end


必须在transaction块内部访问数据库。其接口类似于Hash。

另外的例子
对象“H”实例化后存储在“/tmp/rb”中,之后便可以直接打开读取该实例的属性和操作该实例方法。


http://www.cnzxh.net/blog/Index.php?month=2005-12&catalogId=0&key=

#!/usr/bin/env ruby
require 'pstore'
path = '/tmp/rb'

class H
        attr_accessor :a
        attr_accessor :b
        attr_accessor :c
        def initialize
                @a, @b, @c = 3, "abc", ["arr", "ay"]
        end

        public
        def test
                @c.join
        end

end

#写入
ps = PStore.new(path)
ps.transaction {|x|
        x['H'] = H.new
}
ps = nil

#读取
PStore.new(path).transaction {|x|
        h = x['H']
        puts h.a
        puts h.b
        puts h.test
}


YAML 也可以被 PS,

拉郎配, 生硬
分享到:
评论
3 楼 whisper 2006-11-01  
好东西
2 楼 aardvark 2006-11-01  
这么做的理由作者不是说得很清楚么?
引用

Now, if I had to level any one complaint at PStore, it would be that because it uses Marshal under the hood it doesn't create files you can easily browse or tweak by hand.


有些场合能够tweak by hand很重要,比如做data repairing。但是能手工tweak也有弊端,伪造篡改就很容易。完全看场合。
1 楼 axgle 2006-10-29  
bd7lx 写道
http://blog.grayproductions.net/articles/2006/07/30/pstore-meets-yaml

看了这片短文有点惊讶

Pstore应该是将Ruby对象存入外部文件------比如磁盘文件时使用的类。该类内部使用了Marshal。

Java和PHP类似的做法叫序列化
YAML 也可以被 PS,

拉郎配, 生硬

我看了后觉得不惊讶.用YAML作为Pstore的序列化格式,适合人读,也可以用手修改,这是Pstore默认的格式所没有的。并且作者的评价也比较公正.
还有就是Pstore默认的格式和Yaml格式两种都不保存对象的方法,只保存对象的数据,这个行为和PHP完全类似.另外你给的连接也不错.本文已收藏

相关推荐

    Python库 | pstore-2.0.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pstore-2.0.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    efi-pstore.rar_If...

    在EFI-pstore中,“If...”可能表示在检查一个旧格式,这个旧格式不支持存储多个日志的情况。 描述中提到的“Check if an old format, which doesn't support holding multiple logs, remains.”暗示了一个问题,即...

    Linuxpstore实现自动“抓捕”内核崩溃日志.pdf

    pstore 的设计理念是在内核 Panic/Oops 时自动转存内核日志,为了实现这个目标,pstore 文件系统支持多种方式来转存日志,包括转存到 ram、块设备和 mtd 设备等。pstore 的前端和后端都是可配置的,可以根据不同的...

    YAML.rb: YAML for Ruby-开源

    它旨在提供一个轻量级的替代方案,特别是针对`PStore`,这是一个Ruby内置的持久化存储库。`PStore`虽然功能强大,但它的使用场景可能相对有限,而`YAML.rb`通过支持更丰富的数据结构和更灵活的序列化/反序列化,可以...

    efi-pstore.rar_Linux/Unix编程_Unix_Linux_

    标题中的“efi-pstore.rar”暗示了这是一个与EFI(Extensible Firmware Interface)持久存储相关的文件集合,而“Linux/Unix编程”表明内容可能涉及在Linux或Unix操作系统中进行编程的相关知识。EFI-pstore通常指的...

    pstore:与程序存储库一起使用的持久性存储

    其设计目标是: 性能接近内存哈希表对并行编译的良好支持多个指标进行中目录建立pstore先决条件pstore在各种平台上构建和测试: Ubuntu Linux 14.04 LTS Trusty Tahr:使用GCC 5.5.0和GCC 9.2.1构建Ubuntu Linux ...

    pstore:使用客户端GPG加密的受Python保护的密码存储(Django服务器+ CLI接口)

    pstore ::受Python保护的密码存储区 快速跳转:摘要| | | ... 概括 () ... 权限系统允许您与同一... (*)当然,安全性取决于每个人都使用强密钥,并且每个人都将其保密。 用法示例 () 您已经设置了.pstorerc : $ c

    MiTeC System Information Component Suite v11.6.2 XE7-D10.1 Berlin

    TFAC_PStore - Protected Storage analyzer TFAC_USBHistory - USB usage history TFAC_WZC - XP Wireless Zero Configuration analyzer TFAC_WLANAC - WLAN AutoConfig analyzer Every component has Load/Save ...

    ftrace-kernel-hooks-2014-More than just tracing.pdf | 注释

    这表明Ftrace不仅是一个独立的追踪工具,它还可以与其他工具协同工作,为开发者提供更为全面的内核调试和分析能力。 综上所述,文档《ftrace-kernel-hooks-2014-More than just tracing》深入探讨了Ftrace作为一个...

    ftrace-kernel-hooks-2014-More than just tracing.pdf

    8. **Pstore**:这是一个内核的固件日志存储框架,能够捕获各种故障时的内核信息,通过ftrace可以将这些信息进行记录。 9. **SystemTap**:虽然不是ftrace的一部分,但SystemTap是一个与ftrace功能类似的系统,它...

    Ftrace Kernel Hooks-More than just tracing.pdf

    8. Pstore:Pstore 是 Linux 内核中的一个持久化存储机制,能够记录和分析内核中的错误信息。它可以与 Ftrace 集成,提供更加强大的问题诊断和性能优化能力。 9. SystemTap:SystemTap 是 Linux 内核中的一个探测...

    store:Crystal的基于文件的存储库(受Ruby的PStore启发)

    店铺 Store是Crystal的基于文件的存储库。 尽管API的区别足够大,以至于不能将P保留在名称中,但它受到了的极大启发。 Store的工作是轻松允许基于本地文件的持久化到任何可序列化的数据结构,避免出现诸如数据损坏...

    The Ruby Way(处理文件和目录)

    **权限模式和标记**: `File.new`还有一个形式可以接受三个参数,其中第二个参数是指定文件的原始权限(通常是八进制常量),第三个参数是一组用OR连接的标记。这些标记包括但不限于`File::CREAT`(如果要打开的文件...

    android goldfih内核 3.18 源码打包下载

    源码的组织结构通常包括arch(架构)、drivers(驱动)、fs(文件系统)、include(头文件)、kernel(核心)等目录,每个目录下都有相应的子目录和文件,对应着内核的不同功能模块。 对于开发者来说,理解Goldfish...

    J2ME类库电子书

    根据提供的文件信息,“J2ME类库电子书”的标题与描述,我们可以推断这是一本专注于Java 2 Platform, Micro Edition (J2ME) 的类库介绍与使用指南的书籍。接下来,我们将深入探讨J2ME及其类库的相关知识点。 ### ...

    ruby-spider:使用“ anemone” gem作为框架,用ruby编写的电子邮件爬虫

    它将写出一个pages.pstore文件(用于跟踪其已爬网的页面),以及一个data.db文件(用于存储收集的地址)。 要从数据库中导出地址,请执行“导出” Rake任务: rake export 您应该看到如下输出: [~/projects/...

    arm汇编指令集PDF格式

    4. **内存访问指令**:加载和存储指令用于读写内存中的数据,如LDR(加载寄存器)、STR(存储到寄存器)、LDM(加载多个寄存器)、STM(存储多个寄存器)。此外,还有预加载(PLOAD)和预存储(PSTORE)指令,用于...

    CityControlPolice

    首先,"PSTORE"可能是项目中的一个模块,可能指的是存储和管理警务数据的部分。在Java中,可以使用持久化存储技术如JDBC(Java Database Connectivity)来连接数据库,存储和检索警务信息。此外,"不更新"可能意味着...

Global site tag (gtag.js) - Google Analytics