PStore not dead
by
Lukas Rieder
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
pstore ! not dead
Slide 2
Slide 2 text
filesystem data ruby script #1
Slide 3
Slide 3 text
MySQL? Redis? LevelDB? database.txt?
Slide 4
Slide 4 text
JSON? YAML? CSV?
Slide 5
Slide 5 text
format is irrelevant
Slide 6
Slide 6 text
your data is
Slide 7
Slide 7 text
Int egr i ty
Slide 8
Slide 8 text
lock filesystem data ruby script #1 ruby script #2 ruby script #3
Slide 9
Slide 9 text
require "pstore" ! pstore = PStore.new("filename.pstore") ! pstore.transaction do pstore["foo"] # reading pstore["zig"] = "zag" # writing end
Slide 10
Slide 10 text
fuck dependencies
Slide 11
Slide 11 text
ruby stdlib
Slide 12
Slide 12 text
class HotelBar ! @pstore = PStore.new("hotelbar.pstore") ! def self.pstore return @pstore unless block_given? @pstore.transaction { yield @pstore } end ! end
Slide 13
Slide 13 text
def self.find(name) pstore do |db| new(db[name]) if db.root?(name) end end
Slide 14
Slide 14 text
def self.all pstore do |db| db.roots.map { |name| new(db[name]) } end end
Slide 15
Slide 15 text
Bonus Round
Slide 16
Slide 16 text
require "pstore" require "json" ! class JSON::Store < PStore ! def dump(table) JSON::pretty_generate(table) end ! def load(content) JSON::parse(content) end ! end
Slide 17
Slide 17 text
Overbryd