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
150
Intro to Cybersecurity Workshop
jtdowney
0
120
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
160
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
160
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
330
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
140
Cryptography Pitfalls at LASCON 2016
jtdowney
0
190
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
210
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
300
Other Decks in Programming
See All in Programming
現場から考えるソフトウェアエンジニアリングの価値と実験
nomuson
1
140
CSC509 Lecture 06
javiergs
PRO
0
130
Jakarta EE as Seen Trough the Lens of the ASF
ivargrimstad
0
800
ActiveRecordの力でDBのメタデータを迅速に解析する
lnit
5
2k
Serverless renderování Webových komponent
rarous
PRO
0
130
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
1.1k
2024-10-01 dev2next - Observability for Modern JVM Applications
jonatan_ivanov
1
140
CSC509 Lecture 03
javiergs
PRO
0
150
Subclassing, Composition, Python, and You
hynek
3
190
レイトレ合宿10 レンダラー紹介 / Renderer Introduction, Ray Tracing Camp 10
shocker_0x15
0
630
Mercari AI/LLM Hackathon TeamBの発表資料
imaikosuke
0
180
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
8
3.5k
Featured
See All Featured
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
How to train your dragon (web standard)
notwaldorf
87
5.6k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Documentation Writing (for coders)
carmenintech
65
4.4k
4 Signs Your Business is Dying
shpigford
180
21k
Become a Pro
speakerdeck
PRO
24
4.9k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
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