Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
180
Intro to Cybersecurity Workshop
jtdowney
0
140
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
180
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
190
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
350
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
160
Cryptography Pitfalls at LASCON 2016
jtdowney
0
210
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
270
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
350
Other Decks in Programming
See All in Programming
Patterns of Patterns
denyspoltorak
0
340
TestingOsaka6_Ozono
o3
0
180
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
160
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
170
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
110
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3k
ゆくKotlin くるRust
exoego
1
160
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
130
認証・認可の基本を学ぼう後編
kouyuume
0
250
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
730
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
450
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
370
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Are puppies a ranking factor?
jonoalderson
0
2.4k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
From π to Pie charts
rasagy
0
91
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
We Have a Design System, Now What?
morganepeng
54
7.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Believing is Seeing
oripsolob
0
15
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
49k
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