rails oo views
DESCRIPTION
TRANSCRIPT
![Page 1: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/1.jpg)
Loading...
![Page 2: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/2.jpg)
Markdown vs. MongoDBA Journey through bleeding edge
technologies for the NeXT Web
![Page 3: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/3.jpg)
RubyMotion vs. BackboneA Journey through bleeding edge
technologies for the NeXT Web
![Page 4: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/4.jpg)
![Page 5: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/5.jpg)
![Page 6: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/6.jpg)
Rails Views for the
OO-savvy Rubyist
![Page 7: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/7.jpg)
M
V
C
![Page 8: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/8.jpg)
M
V
C
![Page 9: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/9.jpg)
Look at: Rails current implementation
![Page 10: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/10.jpg)
def show @post = Post.find(params[:id]) @title = @post.titleend
![Page 11: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/11.jpg)
<h1><%= @post.title %></h1><p><%= @post.body %></p>
![Page 12: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/12.jpg)
<html> <head><title><%= @title %></title></head> <body><%= yield %></body></html>
![Page 13: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/13.jpg)
My name‘s Guybrush threepwood. I‘m new in town
Matz told me their only for Object‘s internal state
Who‘s in charge here?
Nice talking to you.
And tell me boy, what‘s wrong with my @ivars
![Page 14: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/14.jpg)
So how should I use @ivars?
![Page 15: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/15.jpg)
When you design a class, you decide what internal state it has and also decide how that state is to appear on the outside (to users of your class).
![Page 16: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/16.jpg)
The internal state is held in instance variables. The external state is exposed through methods we‘re call- ing attributes.
![Page 17: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/17.jpg)
Dave Thomas,Programming Ruby
![Page 18: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/18.jpg)
Deep in the Rails source...
![Page 19: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/19.jpg)
# Define some internal variables that
# should not be propagated to the view.self.protected_instance_variables = [
:@_status, :@_headers, :@_params, :@_env, :@_response, :@_request, :@_view_runtime,
:@_stream, :@_url_options, :@_action_has_layout]
![Page 20: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/20.jpg)
# Define some internal variables that
# should not be propagated to the view.self.protected_instance_variables = [
:@_status, :@_headers, :@_params, :@_env, :@_response, :@_request, :@_view_runtime,
:@_stream, :@_url_options, :@_action_has_layout]
![Page 21: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/21.jpg)
protected instance variables
![Page 22: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/22.jpg)
protected - instance - variables
![Page 23: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/23.jpg)
I‘ll stick with "helper_method".
Give me some "decent_exposure"?
It‘s "obviews"!
I‘m made of rubber, you‘re made of glue.
And tell me boy, what ya doing about this?
![Page 24: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/24.jpg)
helper_methodpros: rails standardcons: verbose, bad semantics, class level
![Page 25: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/25.jpg)
helper_methodpros: rails standardcons: verbose, bad semantics, class level
![Page 26: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/26.jpg)
helper_methodpros: rails standardcons: verbose, bad semantics, class level
![Page 27: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/27.jpg)
decent_exposurepros: easy syntax, good defaultscons: class level
![Page 28: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/28.jpg)
decent_exposurepros: easy syntax, good defaultscons: class level
![Page 29: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/29.jpg)
decent_exposurepros: easy syntax, good defaultscons: class level
![Page 30: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/30.jpg)
obviewspros: easy syntax, action levelcons: unpublished
![Page 31: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/31.jpg)
obviewspros: easy syntax, action levelcons: unpublished
![Page 32: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/32.jpg)
obviewspros: easy syntax, action levelcons: unpublished!
![Page 33: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/33.jpg)
We want examples!
![Page 34: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/34.jpg)
class PostsController < ApplicationController
expose :posts
def posts; Post.all; end
end
We want examples!
![Page 35: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/35.jpg)
def show
expose post
end
def post; posts.find(params[:id]) end
We want examples!
![Page 36: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/36.jpg)
def show
expose post: posts.find(params[:id])
end
We want examples!
![Page 37: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/37.jpg)
<h1><%= post.title %></h1>
<p><%= post.body %></p>
We want examples!
![Page 38: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/38.jpg)
![Page 39: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/39.jpg)
Obviews
![Page 40: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/40.jpg)
Obviews
on rubygems shipping today!
![Page 41: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/41.jpg)
Thank you !1
![Page 42: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/42.jpg)
No monkeys were harmed during the making of this keynote
twitter: @eliagithub: @eliablog: dev.mikamai.comblog: elia.schito.me
MIKAMAI
![Page 43: Rails OO views](https://reader034.vdocument.in/reader034/viewer/2022050808/54bd19e24a7959f95e8b4618/html5/thumbnails/43.jpg)
No monkeys were harmed during the making of this keynote
twitter: @eliagithub: @eliablog: dev.mikamai.comblog: elia.schito.me
MIKAMAI