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
America's Next Top Engineer
Search
Aaron Patterson
June 07, 2013
16
2.2k
America's Next Top Engineer
Presentation popularity at RedDot RubyConf
Aaron Patterson
June 07, 2013
Tweet
Share
More Decks by Aaron Patterson
See All by Aaron Patterson
RubyKaigi 2025: Class New, A New Approach
tenderlove
0
81
RubyKaigi Dev Meeting 2025
tenderlove
1
3.3k
Speeding up Instance Variables in Ruby 3.3
tenderlove
2
450
[Feature #20425] Speeding up delegate methods
tenderlove
3
280
RailsConf 2023
tenderlove
30
1.2k
Don't @ Me! Faster Instance Variables with Object Shapes
tenderlove
1
470
RailsConf 2022 Keynote
tenderlove
2
570
Some Assembly Required
tenderlove
1
580
HexDevs 2021
tenderlove
1
480
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
GitHub's CSS Performance
jonrohan
1031
460k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Visualization
eitanlees
147
16k
Side Projects
sachag
455
43k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Agile that works and the tools we love
rasmusluckow
329
21k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Speed Design
sergeychernyshev
32
1.1k
Transcript
Your Guide to Presentation Popularity!
Your Guide to Presentation Notoriety!
None
•Provocative Title •Risqué Photos •Ruby Code?
Provocative Title:
Use Ruby 1.9 like an Engineer
Use Ruby 1.9 like a SEXY Engineer
Risqué Photos
America's Next Top Model
America's Next Top Engineer
Confident
Elegant
Sultry
Sexy
Thoughtful
Fierce
Playful
Powerful
Provocative
Ruby Code?
protected def method_missing(method, *args, &block) if Array.method_defined?(method) to_a.send(method, *args, &block)
elsif @klass.scopes[method] merge(@klass.send(method, *args, &block)) elsif @klass.respond_to?(method) scoping { @klass.send(method, *args, &block) } elsif arel.respond_to?(method) arel.send(method, *args, &block) elsif match = DynamicFinderMatch.match(method) attributes = match.attribute_names super unless @klass.send(:all_attributes_exists?, attributes) if match.finder? find_by_attributes(match, attributes, *args) elsif match.instantiator? find_or_instantiator_by_attributes(match, attributes, *args, &block) end else super end end private def references_eager_loaded_tables? # always convert table names to downcase as in Oracle quoted table names are in uppercase joined_tables = (tables_in_string(arel.joins(arel)) + [table.name, table.table_alias]).compact.map{ |t| t.downcase }.uniq (tables_in_string(to_sql) - joined_tables).any? end
TL;DR