What's new in Rails 4.1 (as of 752f9fed00221ad97073e13b12be9c849199b4b8)
Upcoming SlideShare
Loading in...5
×
 

What's new in Rails 4.1 (as of 752f9fed00221ad97073e13b12be9c849199b4b8)

on

  • 3,076 views

 

Statistics

Views

Total Views
3,076
Views on SlideShare
3,072
Embed Views
4

Actions

Likes
4
Downloads
15
Comments
1

1 Embed 4

https://twitter.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

What's new in Rails 4.1 (as of 752f9fed00221ad97073e13b12be9c849199b4b8) What's new in Rails 4.1 (as of 752f9fed00221ad97073e13b12be9c849199b4b8) Presentation Transcript

  • Hello #VANRUBY!
  • Godfrey Chan   @chancancode
  • PUBLIC SERVICE ANNOUNCEMENT
  • RAILS 3.2.16 + 4.0.2 http://groups.google.com/group/rubyonrails-security
  • What’s NEW IN Rails 4.1 * * As OF 752f9fed00221ad97073e13b12be9c849199b4b8
  • VARIANTS
  • Variants
  • Variants class ApplicationController < ActionController::Base before_action :detect_variant   private   def detect_variant request.variant = case request.user_agent when /iPhone/ then :phone when /iPad/ then :tablet end end end respond_to do |format| format.html do |html| html.phone # index.html+phone.erb html.tablet do # index.html+tablet.erb # ... render end end end
  • Variants OTHER USES... A/B TESTING? API VERSIONING? OLD BROWSERS? NO JS FALLBACK?
  • ENUMS
  • ENUMS class Conversation < ActiveRecord::Base enum status: [ :active, :archived ] end conversation.archive! conversation.active? # => false conversation.status # => "archived" Conversation.archived # => Relation for all archived Conversations
  • MESSAGE VERIFIER
  • MESSAGE VERIFIER message = Rails.application .message_verifier('salt') .generate('my sensible data')   Rails.application .message_verifier('salt') .verify(message) # => 'my sensible data'
  • MESSAGE VERIFIER USES... PASSWORD RESET? INVITE TOKEN? OTHER LINKS IN EMAILS?
  • TIME TRAVEL
  • TIME TRAVEL
  • TIME TRAVEL test "Fast forward to Christmas" do refute is_it_christmas_yet? travel_to Time.new(2013, 12, 25, 00, 00, 00) assert is_it_christmas_yet? end   test "How I met your mother" do @mother = User.find(...) travel -30.years do assert @mother.single? end refute @mother.single? end
  • SPRING
  • Rails application preloader
  • Totally AutomatICGIc
  • spring $ time ./bin/rails runner 'puts "Hello"' Hello 0.05s user 0.02s system 1% cpu 3.860 total $ time ./bin/rails runner 'puts "Hello"' Hello 0.05s user 0.01s system 27% cpu 0.229 total $ time ./bin/rake spec .............................................................................................   Finished in 15.04 seconds 322 examples, 0 failures   0.06s user 0.02s system 0% cpu 25.446 total   $ time ./bin/rake spec .............................................................................................   Finished in 14.79 seconds 322 examples, 0 failures   0.05s user 0.01s system 0% cpu 20.543 total
  • spring
  • NO TOUCHING
  • NO TOUCHING ActiveRecord::Base.no_touching do Post.first.touch # does nothing end   Comment.no_touching do Comment.first.touch # does nothing Post.first.touch # updates, but won't update related comments if there are any end
  • TO_PARAM
  • _ TO_PARAM class User < ActiveRecord::Base to_param :name end   user = User.find_by(name: 'Fancy Pants') user.id # => 123 user.to_param # => "123-fancy-pants"
  • String#Remove
  • String#Remove >> ' a lot of whitespace => "alotofwhitespace" '.remove(/[:space:]/) >> 'username=godfrey&password=123456'.remove(/&?password=[^&]*/) => "username=godfrey"
  • JSON
  • r.i.p. multijson
  • all-New JSON encoder
  • Action view
  • SURPRISES?
  • TRY IT TODAY https://gist.github.com/chancancode/7781341
  • TRY IT TODAY # Gemfile gem 'rails', github: 'rails/rails' gem 'arel', github: 'rails/arel'
  • #VANRUBY + OSS = <3 <3 <3 <3
  • Hack night TUE dec 17
  • IRC #VANRUBY (freenode)
  • Godfrey Chan   @chancancode