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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
200
Intro to Cybersecurity Workshop
jtdowney
0
150
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
200
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
210
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
370
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
160
Cryptography Pitfalls at LASCON 2016
jtdowney
0
220
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
280
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
370
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
0
170
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
190
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
240
ロボットのための工場に灯りは要らない
watany
12
3.2k
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
340
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2.1k
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
240
Java 21/25 Virtual Threads 소개
debop
0
300
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
110
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
160
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
290
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
230
How to make the Groovebox
asonas
2
2.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
240
Odyssey Design
rkendrick25
PRO
2
560
30 Presentation Tips
portentint
PRO
1
260
The Limits of Empathy - UXLibs8
cassininazir
1
280
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