×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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