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.1k
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
Speeding up Instance Variables in Ruby 3.3
tenderlove
0
32
[Feature #20425] Speeding up delegate methods
tenderlove
2
93
RailsConf 2023
tenderlove
16
720
Don't @ Me! Faster Instance Variables with Object Shapes
tenderlove
0
220
RailsConf 2022 Keynote
tenderlove
1
380
Some Assembly Required
tenderlove
0
430
HexDevs 2021
tenderlove
0
320
Compacting GC for MRI
tenderlove
59
4.3k
But At What Cost?
tenderlove
8
14k
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
399
65k
The Language of Interfaces
destraynor
151
23k
Faster Mobile Websites
deanohume
303
30k
What's new in Ruby 2.0
geeforr
338
31k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
Producing Creativity
orderedlist
PRO
340
39k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
[RailsConf 2023] Rails as a piece of cake
palkan
35
4.4k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
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