Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Curator at RICON 2012
Search
John Downey
October 10, 2012
Programming
1
17k
Curator at RICON 2012
John Downey
October 10, 2012
Tweet
Share
More Decks by John Downey
See All by John Downey
Cryptography Pitfalls at CactusCon 2019
jtdowney
0
160
Intro to Cybersecurity Workshop
jtdowney
0
130
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
170
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
170
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
350
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
150
Cryptography Pitfalls at LASCON 2016
jtdowney
0
200
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
260
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
340
Other Decks in Programming
See All in Programming
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
400
ドメイン駆動設計のエッセンス
masuda220
PRO
15
6.3k
kiroとCodexで最高のSpec駆動開発を!!数時間で web3ネイティブなミニゲームを作ってみたよ!
mashharuki
0
980
AkarengaLT vol.38
hashimoto_kei
1
130
AI Agent 時代的開發者生存指南
eddie
4
2.2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
590
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
5
1k
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
1.3k
Swift Concurrency 年表クイズ
omochi
2
140
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
450
品質ワークショップをやってみた
nealle
0
650
Developer Joy - The New Paradigm
hollycummins
1
380
Featured
See All Featured
Visualization
eitanlees
150
16k
Side Projects
sachag
455
43k
What's in a price? How to price your products and services
michaelherold
246
12k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Fireside Chat
paigeccino
41
3.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
How GitHub (no longer) Works
holman
315
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Transcript
CURATOR John Downey | @jtdowney
joinbraintree.com
None
http://www.flickr.com/photos/uberculture/2058870277/ Curator
class Person include Curator::Model attr_accessor :id, :first_name, :last_name, :age end
class PersonRepository include Curator::Repository indexed_fields :age end
person = Person.new( :first_name => "John", :last_name => "Downey", :age
=> 25 ) PersonRepository.save(person)
PersonRepository.find_by_id(person.id) => #<Person:0x007fec3437d868 ...> PersonRepository.find_by_age(25) => [#<Person:0x007fec3437d868 ...>]
Lazy Migrations http://www.flickr.com/photos/themichaelsmith/4399654643/
class Person include Curator::Model attr_accessor :id, :age def name if
@name @name else "#{@first_name} #{@last_name}" end end end
class Person include Curator::Model version 1 attr_accessor :id, :name, :age
end
# db/migrate/people/0001_consolidate_name.rb class ConsolidateName < Curator::Migration def migrate(attributes) first_name =
attributes.delete(:first_name) last_name = attributes.delete(:last_name) attributes.merge(:name => "#{first_name} #{last_name}") end end
braintree/curator