Choose Your Battles and LetIt::REST. Hampton Catlin and Jeffrey Hardy

Size: px
Start display at page:

Download "Choose Your Battles and LetIt::REST. Hampton Catlin and Jeffrey Hardy"

Transcription

1 Choose Your Battles and LetIt::REST Hampton Catlin and Jeffrey Hardy

2

3 Obligatory Resume 50 years of Rails experience PHDs from MIT Founded the Dharma Initiative

4 Invented Haml, Scribbish, Sass, ASCII, Ruby, Lisp, The DaVinci Code, Unicorns, Rainbows, Kittens, Cat Macros, Balloons, Prototype, Rails, Babies, Altoids, SQL, Religion, and Monkey Poop (not monkeys, though).

5 The Beauty of Resource-Based Controllers

6 class PostsController < ApplicationController def = Post.find(:all) respond_to do format format.html # index.rhtml format.xml { rer :xml } def = Post.find(params[:id]) respond_to do format format.html # show.rhtml format.xml { rer :xml } def = Post.new def = Post.find(params[:id]) def = Post.new(params[:post]) respond_to do format flash[:notice] = 'Posts was successfully created.' format.html { redirect_to post_url(@post) } format.xml { head :created, :location => post_url(@post) } else format.html { rer :action => "new" } format.xml { rer :xml } def = Post.find(params[:id]) respond_to do format flash[:notice] = 'Posts was successfully updated.' format.html { redirect_to post_url(@post) } format.xml { head :ok } else format.html { rer :action => "edit" } format.xml { rer :xml } def = respond_to do format format.html { redirect_to posts_url } format.xml { head :ok }

7 The Problem

8 The Goal

9 PRODUCTION No Shit!

10 Exceptions are Manageable

11 Action Pattern load resource object(s) optional preloads perform modifying action (CUD) respond

12 class PostsController < ApplicationController def = Post.find(:all) respond_to do format format.html # index.rhtml format.xml { rer :xml } def = Post.find(params[:id]) respond_to do format format.html # show.rhtml format.xml { rer :xml } def = Post.new def = Post.find(params[:id]) def = Post.new(params[:post]) respond_to do format flash[:notice] = 'Posts was successfully created.' format.html { redirect_to post_url(@post) } format.xml { head :created, :location => post_url(@post) } else format.html { rer :action => "new" } format.xml { rer :xml } def = Post.find(params[:id]) respond_to do format flash[:notice] = 'Posts was successfully updated.' format.html { redirect_to post_url(@post) } format.xml { head :ok } else format.html { rer :action => "edit" } format.xml { rer :xml } def = respond_to do format format.html { redirect_to posts_url } format.xml { head :ok }

13 class PostsController < ApplicationController make_resourceful do build :all

14 class CommentsController < ApplicationController make_resourceful do build :create, :destroy

15 map.resources :posts, :has_many => :comments

16 class CommentsController < ApplicationController make_resourceful do build :create, :destroy belongs_to :post

17 Association Proxy (our saviour)

18 Post.find(params[:post_id]).comments.find(:all) Post.find(params[:post_id]).comments.find(params[:id]) Post.find(params[:post_id]).comments.find(params[:id]).update_attributes(params[:comment]) Post.find(params[:post_id]).comments.find(params[:id]).destroy Post.find(params[:post_id]).comments.build(params[:comment]) Post.find(params[:post_id]).comments.build(params[:comment]).save notice something?

19 current_model

20 Comment.belongs_to :user

21 current_user

22 class CommentsController < ApplicationController make_resourceful do build :create, :destroy belongs_to :post associate_with :current_user

23 More Helpers

24 def current_param params[:id] def current_object current_model.find(current_param) def current_objects current_model.find(:all) def load_object current_object)

25 Callbacks

26 class PostsController < ApplicationController make_resourceful do build :all before :show = "Awesome"

27 class PostsController < ApplicationController make_resourceful do build :all before :show = "Awesome" response_for :show do format format.html { redirect_to current_object } response_for :update do redirect_to root_url

28 No Blocking

29 Encourages Phat Models

30 Experimental: Publish

31 class PostsController < ApplicationController make_resourceful do build :all #... publish :formats => [:xml, :yaml, :json], :only => :show, :attributes => [:title, :body, { :comments => :body }]

32 super alpha (but we re using it in production)

33

Are you using Ruby on Rails?

Are you using Ruby on Rails? Are you using Ruby on Rails? Should you? Come have a seat, and we ll figure it out Learn how to create happy programmers, and 10 real world benefits to using Rails Talk begins at 5 PM Warning Warning I

More information

The State of the DSL Art. Glenn Vanderburg Relevance, Inc. in Ruby

The State of the DSL Art. Glenn Vanderburg Relevance, Inc. in Ruby The State of the DSL Art Glenn Vanderburg Relevance, Inc. glenn@thinkrelevance.com in Ruby State of the Art Focus on internal DSLs Rubyists pushing the leading edge Ruby s features make it a good match

More information

Web System Development with Ruby on Rails

Web System Development with Ruby on Rails Web System Development with Ruby on Rails Day 11(6/Dec/2012) File uploading and Image Display Today's Theme p Upload image files to the database, and let Memopad store the image file. p Try some other

More information

Advanced RESTful Rails. Ben Scofield

Advanced RESTful Rails. Ben Scofield Advanced RESTful Rails Ben Scofield Constraints Shall I compare thee to a summer's day? Thou art more lovely and more temperate. Rough winds do shake the darling buds of May, And summer's lease hath all

More information

Courslets, a golf improvement web service. Peter Battaglia

Courslets, a golf improvement web service. Peter Battaglia Courslets, a golf improvement web service Peter Battaglia Discussion Project Overview Design and Technologies Utilized Rails and REST URLs, URLs, URLs Rails and Web Services What s s exposed as a service?

More information

What is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573

What is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573 What is a compiler? Xiaokang Qiu Purdue University ECE 573 August 21, 2017 What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g.,

More information

Ruby on Rails 3. Robert Crida Stuart Corbishley. Clue Technologies

Ruby on Rails 3. Robert Crida Stuart Corbishley. Clue Technologies Ruby on Rails 3 Robert Crida Stuart Corbishley Clue Technologies Topic Overview What is Rails New in Rails 3 New Project Generators MVC Active Record UJS RVM Bundler Migrations Factory Girl RSpec haml

More information

What is a compiler? var a var b mov 3 a mov 4 r1 cmpi a r1 jge l_e mov 2 b jmp l_d l_e: mov 3 b l_d: ;done

What is a compiler? var a var b mov 3 a mov 4 r1 cmpi a r1 jge l_e mov 2 b jmp l_d l_e: mov 3 b l_d: ;done What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g., C++) to low-level assembly language that can be executed by hardware int a,

More information

At the Forge RJS Templates Reuven M. Lerner Abstract The power of Ajax to fetch and run JavaScript generated by your server-side language. The past few months, I've written a number of articles in this

More information

Ruby on Rails. Brian McCallister Ning, Inc. Philadelphia Emerging Technology Conference 06

Ruby on Rails. Brian McCallister Ning, Inc. Philadelphia Emerging Technology Conference 06 Ruby on Rails Brian McCallister Ning, Inc. Philadelphia Emerging Technology Conference 06 Smalltalk Robert Tinney www.tinney.net + Lisp Conrad Barski www.lisperati.com + Perl O Reilly www.perl.com Without

More information

Pete Forde Partner, Unspace Interactive Toronto, ON

Pete Forde Partner, Unspace Interactive Toronto, ON Building Rich JavaScript Database Applications with Jester QuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture. Pete Forde Partner, Unspace Interactive Toronto, ON http://unspace.ca/

More information

Ruby on Rails. Rails Released 1.0 Yesterday! Brian McCallister. ApacheCon US 2005

Ruby on Rails. Rails Released 1.0 Yesterday! Brian McCallister. ApacheCon US 2005 Ruby on Rails Rails Released 1.0 Yesterday! Brian McCallister ApacheCon US 2005 Smalltalk Robert Tinney www.tinney.net + Lisp Conrad Barski www.lisperati.com + Perl O Reilly www.perl.com Without the...

More information

Ruby on Rails 3.1 Release Notes

Ruby on Rails 3.1 Release Notes Ruby on Rails 3.1 Release Notes December 25, 2014 Highlights in Rails 3.1: Streaming Reversible Migrations Assets Pipeline jquery as the default JavaScript library These release notes cover only the major

More information

Authentication in Rails

Authentication in Rails Authentication in Rails Aaron Mulder CTO Chariot Solutions Philly on Rails, October 2007 1 Agenda The problem Plugins in Rails, and the (many) solutions acts_as_authenticated Generated Code Custom Code

More information

Rails: MVC in action

Rails: MVC in action Ruby on Rails Basic Facts 1. Rails is a web application framework built upon, and written in, the Ruby programming language. 2. Open source 3. Easy to learn; difficult to master. 4. Fun (and a time-saver)!

More information

Online Entry using Ruby-on-Rails A Sport Event Management System

Online Entry using Ruby-on-Rails A Sport Event Management System Online Entry using Ruby-on-Rails A Sport Event Management System 23 rd April 2008 By Supervisor: Ian Watson Final Year Project Report - 1 - Project Title: Online entry, using Ruby on Rails A sport event

More information

Model-View-Controller (MVC)

Model-View-Controller (MVC) Model-View-Controller (MVC) with Ruby on Rails Software Languages Team University of Koblenz-Landau Ralf Lämmel and Andrei Varanovich MVC - a classic definition The Model is the application object The

More information

Associations: mechanics (ESaaS 5.3)"

Associations: mechanics (ESaaS 5.3) Associations: mechanics (ESaaS 5.3)" Armando Fox" 2013 Armando Fox & David Patterson, all rights reserved How does it work?" Models must have attribute for foreign key of owning object" e.g., movie_id

More information

Where we are. For example. Extensions. Authorization and Testing

Where we are. For example. Extensions. Authorization and Testing Where we are Authorization and Testing Last time: We added the ability of users to log in, and made sure that we treated their passwords in a secure fashion. INFO 2310: Topics in Web Design and Programming

More information

Building a Rails Application. Part 2

Building a Rails Application. Part 2 Building a Rails Application Part 2 app/views/layouts/store.rhtml

More information

Lecture 8. Validations & Sessions 1 / 41

Lecture 8. Validations & Sessions 1 / 41 Lecture 8 Validations & Sessions 1 / 41 Advanced Active Record 2 / 41 More Complex Queries Arel provides us with a number of methods to query our database tables So far, we've only used find which limits

More information

Advanced Rails Recipes

Advanced Rails Recipes Advanced Rails Recipes Mike Clark and the Rails Community The Pragmatic Bookshelf Raleigh, North Carolina Dallas, Texas Many of the designations used by manufacturers and sellers to distinguish their products

More information

Utilisez Mutant / Mutest pour améliorer vos tests, votre code Sigilium

Utilisez Mutant / Mutest pour améliorer vos tests, votre code Sigilium Utilisez Mutant / Mutest pour améliorer vos tests, votre code Sigilium @getsigilium Sigilium Gestion centralisée des Signatures Emails @thomasdarde @getsigilium Parmi nos clients: Motul Nicolas Prost,

More information

COPYRIGHTED MATERIAL. Building Resources. A Good Place to Start

COPYRIGHTED MATERIAL. Building Resources. A Good Place to Start Building Resources Ruby on Rails is opinionated software. This doesn t mean that it s going to make fun of your haircut, or tell you what kind of car to drive. It does mean that Rails has definite ideas

More information

Rails: Views and Controllers

Rails: Views and Controllers Rails: Views and Controllers Computer Science and Engineering College of Engineering The Ohio State University Lecture 18 Recall: Rails Architecture Wiring Views and Controllers A controller is just an

More information

the great logfile in the

the great logfile in the the great logfile in the sky @jpignata Kafka Kafka is a persistent publish/ subscribe messaging system designed to broker highthroughput, data streams for multiple consumers. Kafka is a persistent,

More information

Migration Methods* Column Options. Active Record Supported Types. Add Column. Remove Column. Create Table. Don t Forget to Rake!

Migration Methods* Column Options. Active Record Supported Types. Add Column. Remove Column. Create Table. Don t Forget to Rake! Migrations To Create a Blank Migration: rails g migration To Add Columns: rails g migration AddTo [columnname:type] To Remove Columns: rails g migration RemoveFrom

More information

Typical PHP Code Everything shoved into one file. Not Good!

Typical PHP Code Everything shoved into one file. Not Good! MVC in Trax Typical PHP Code Everything shoved into one file. Not Good!

More information

Cheap, Fast, and Good You can have it all with Ruby on Rails

Cheap, Fast, and Good You can have it all with Ruby on Rails Cheap, Fast, and Good You can have it all with Ruby on Rails Brian McCallister brianm@ninginc.com http://www.ning.com/ What is Ruby? Dynamic and Interpreted Strong support for OO programming Everything

More information

CS 169 Spring 2016, Quiz 1

CS 169 Spring 2016, Quiz 1 CS 169 Spring 2016, Quiz 1 Wednesday, Feb. 17, 2016 7 10pm 155 Dwinelle Your name: SID#: Name & signature of person on your left: Name & signature of person on your right: I certify that in accordance

More information

insecure expectations Matt Jemurai.com

insecure expectations Matt Jemurai.com insecure expectations Matt Konda @mkonda Jemurai.com introduction BACKGROUND ON ME Thanks to family! demo cucumber --name "person is restricted from putting input into a field that will be executed by

More information

A shortcut: has and belongs to many (habtm)

A shortcut: has and belongs to many (habtm) A shortcut: has and belongs to many (habtm) join tables express a relationship between existing model tables using FKs Join table has no primary key because there s no object being represented! ttvgtnlx

More information

DRYing Out MVC (ESaaS 5.1)"

DRYing Out MVC (ESaaS 5.1) DRYing Out MVC (ESaaS 5.1)" Armando Fox" 2013 Armando Fox & David Patterson, all rights reserved Don t Repeat Yourself but how?" Goal: enforce that movie names must be less than 40 characters" Call a check

More information

I dreamed a thousand new paths... I woke and walked my old one. Chinese proverb

I dreamed a thousand new paths... I woke and walked my old one. Chinese proverb CHAPTER 3 Routing I dreamed a thousand new paths... I woke and walked my old one. Chinese proverb The routing system in Rails is the system that examines the URL of an incoming request and determines what

More information

Action Mailer Basics

Action Mailer Basics Action Mailer Basics January 13, 2015 This guide provides you with all you need to get started in sing and receiving emails from and to your application, and many internals of Action Mailer. It also covers

More information

Lecture 4. Ruby on Rails 1 / 49

Lecture 4. Ruby on Rails 1 / 49 Lecture 4 Ruby on Rails 1 / 49 Client-Server Model 2 / 49 What is it? A client (e.g. web browser, phone, computer, etc.) sends a request to a server Request is an HTTP request Stands for HyperText Transfer

More information

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Platform defmodule MyMap do

More information

Rails 最佳實務 /4

Rails 最佳實務 /4 Rails 最佳實務 http://ihower.tw 2016/4 Aga Concept: What s good code? Move Code from Controller to Model Model best practices Controller best practices View best practices Next Warning! you should have testing

More information

Social Network Leverage Search

Social Network Leverage Search San Jose State University SJSU ScholarWorks Master's Projects Master's Theses and Graduate Research Summer 2011 Social Network Leverage Search Payal Gupta San Jose State University Follow this and additional

More information

Index. Numbers and Symbols. 404.html file, html file, html file, 24. store, 186

Index. Numbers and Symbols. 404.html file, html file, html file, 24. store, 186 Index Numbers and Symbols 404.html file, 24 422.html file, 24 500.html file, 24 && (and) operator, 9 10 @, for instance variables, 15 \ (backslash), for special characters, 6 : (colon), for symbols, 7

More information

Ruby on Rails Installation

Ruby on Rails Installation Ruby on Rails Installation http://www.tutorialspoint.com/ruby-on-rails/rails-installation.htm This tutorial will guide you to set up a private Ruby on Rails environment in the daw server. Step 0: Login

More information

Strategies for Rapid Web Prototyping. Ruby on Rails. Clemens H. Cap

Strategies for Rapid Web Prototyping. Ruby on Rails. Clemens H. Cap Strategies for Rapid Web Prototyping Ruby on Rails Strategies for Rapid Web Prototyping DRY: Don't repeat yourself Convention over Configuration Separation of Concern Templating MVC: Model View Controler

More information

Chado on Rails. a framework to simplify development on the Chado schema. Justin Reese / Chris Childers

Chado on Rails. a framework to simplify development on the Chado schema. Justin Reese / Chris Childers Chado on Rails a framework to simplify development on the Chado schema Justin Reese / Chris Childers Some links: These slides: http://tinyurl.com/chadoonrails Source code, have a look: svn co http://chadoonrails.rubyforge.org/svn/trunk

More information

Lecture 4. Ruby on Rails 1 / 52

Lecture 4. Ruby on Rails 1 / 52 Lecture 4 Ruby on Rails 1 / 52 Homeworks 2 & 3 Grades were released for homework 2 Homework 3 was due last night Everyone got a style freebie since my default setup ignores spec files and I didn't change

More information

Toby Crawley. Creative Commons BY-SA 3.0. Raleigh.rb April 2011

Toby Crawley. Creative Commons BY-SA 3.0. Raleigh.rb April 2011 Toby Crawley Creative Commons BY-SA 3.0 Raleigh.rb April 2011 whoami @tcrawley C > Java > PHP > Java > Ruby > Java? Red Hat Senior Engineer member of Goal To have you all downloading TorqueBox right after

More information

CouchDB. Johan Sørensen

CouchDB. Johan Sørensen CouchDB Johan Sørensen This is CouchDB A wonderful idea This is CouchDB A wonderful idea Based on an awful thing This is CouchDB Lotus Notes This is CouchDB Damien Katz wanted to recreate Lotus Notes This

More information

CHORDS: Cloud-Hosted Real-time Data

CHORDS: Cloud-Hosted Real-time Data CHORDS: Cloud-Hosted Real-time Data Services for the Geosciences Mike Daniels (NCAR), Branko Kerkez (UMich), V. Chandrasekar (CSU), Sara Graves (UAH), D. Sarah Stamps (VT), Aaron Botnick (NCAR), Charlie

More information

GraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub

GraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub GraphQL Concepts & Challenges - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub Rails API WHY - You have your Rails app, why bother with an API? - You have clients.

More information

Active Model Basics. December 29, 2014

Active Model Basics. December 29, 2014 Active Model Basics December 29, 2014 This guide should provide you with all you need to get started using model classes. Active Model allows for Action Pack helpers to interact with plain Ruby objects.

More information

Merging. Merb into Rails

Merging. Merb into Rails Merging Merb into Rails Me Yehuda Katz @carlhuda Cloud 12/23 2008 So how'd we do? "Rails will become more modular, starting with a rails-core, and including the ability to opt in or out of specific

More information

Multitenancy with Rails - 2nd edition

Multitenancy with Rails - 2nd edition Multitenancy with Rails - 2nd edition Ryan Bigg This book is for sale at http://leanpub.com/multi-tenancy-rails-2 This version was published on 2018-04-13 This is a Leanpub book. Leanpub empowers authors

More information

Application Development in Web Mapping 6.

Application Development in Web Mapping 6. Application Development in Web Mapping 6. László Kottyán Application Development in Web Mapping 6.: Web Application Framework László Kottyán Lector: Antal Guszlev This module was created within TÁMOP -

More information

Testing PDI solutions

Testing PDI solutions Testing PDI solutions Slawomir Chodnicki BI Consultant slawo@twineworks.com The sample project. -- bin # entry point scripts -- environments # environment configuration -- etl # ETL solution `-- spec #

More information

CS169.1x Lecture 6: Basic Rails" Fall 2012"

CS169.1x Lecture 6: Basic Rails Fall 2012 CS169.1x Lecture 6: Basic Rails" Fall 2012" 1" The Database is Golden Contains valuable customer data don t want to test your app on that! Rails solution: development, production and test environments

More information

COM401 Software Engineering Laboratory

COM401 Software Engineering Laboratory Computer Engineering Department COM401 Software Engineering Laboratory November 04, 2014 LAB-3: Rails Introduction Time: 2 lab hours Objectives: Practice with Ruby Symbols Routes MVC pattern CRUD operations

More information

Toby Crawley. Creative Commons BY-SA 3.0. Charlotte.rb May 2011

Toby Crawley. Creative Commons BY-SA 3.0. Charlotte.rb May 2011 Toby Crawley Creative Commons BY-SA 3.0 Charlotte.rb May 2011 whoami @tcrawley C > Java > PHP > Java > Ruby > Java? Red Hat Senior Engineer member of Goal To convert you all to TorqueBox users! TorqueBox

More information

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Platform defmodule MyMap do

More information

Ruby%on%Rails% Ruby%on%Rails% %,% 1

Ruby%on%Rails% Ruby%on%Rails% %,% 1 Ruby%on%Rails% by#@tonytonyjan Ruby%on%Rails% %,% 1 !layout controller Ruby%on%Rails% %,% 2 !layout controller "applica(on.{js,css} applica(on.html.erb "admin.{js,css} admin.html.erb "admin"namespace"

More information

Application Development in Web Mapping 6.

Application Development in Web Mapping 6. University of West Hungary, Faculty of Geoinformatics László Kottyán Application Development in Web Mapping 6. module ADW6 Web Application Framework SZÉKESFEHÉRVÁR 2010 The right to this intellectual property

More information

Nginx: Accelerate Rails, HTTP Tricks. Adam Wiggins Railsconf 2008

Nginx: Accelerate Rails, HTTP Tricks. Adam Wiggins Railsconf 2008 Nginx: Accelerate Rails, HTTP Tricks Adam Wiggins Railsconf 2008 Nginx is a webserver Which means: Nginx replaces Apache Nginx replaces Apache!Faster!Smaller memory footprint!more stable under load!more

More information

Ruby Gem Internals by Examples

Ruby Gem Internals by Examples SF Software Design in Ruby Meetup Group Ruby Gem Internals by Examples Ben Zhang, 1/14/2014 benzhangpro@gmail.com http://www.meetup.com/software-design-in-ruby-study-group/ Types of Ruby Gem Features Global

More information

Ruby%on%Rails% Ruby%on%Rails% %,% 1

Ruby%on%Rails% Ruby%on%Rails% %,% 1 Ruby%on%Rails% by#@tonytonyjan Ruby%on%Rails% %,% 1 / /tonytonyjan tonytonyjan.net Ruby-on-Rails- TJDict-Chrome- Rails-Girls-Taipei-1~5- Ruby%on%Rails% %,% 2 Ruby&(Rails) C&(Qt) Java&(Swing) Network&Programming

More information

CS 267: Automated Verification. Lecture 18, Part 2: Data Model Analysis for Web Applications. Instructor: Tevfik Bultan

CS 267: Automated Verification. Lecture 18, Part 2: Data Model Analysis for Web Applications. Instructor: Tevfik Bultan CS 267: Automated Verification Lecture 18, Part 2: Data Model Analysis for Web Applications Instructor: Tevfik Bultan Web Application Depability 2 Web Application Depability 3 Web Application Depability

More information

EAST WEST UNIVERSITY

EAST WEST UNIVERSITY EAST WEST UNIVERSITY Project Report Project Title: Socify-A Web Based social Networking system Prepared by Name: Junan Chakma ID: 2009-3-60-009 Supervised by Dr. Taskeed Jabid Assistant Professor Department

More information

Multitenancy with Rails

Multitenancy with Rails Multitenancy with Rails And subscriptions too! Ryan Bigg This book is for sale at http://leanpub.com/multi-tenancy-rails This version was published on 2015-11-24 This is a Leanpub book. Leanpub empowers

More information

iflame INSTITUTE OF TECHNOLOGY

iflame INSTITUTE OF TECHNOLOGY Web Development Ruby On Rails Duration: 3.5 Month Course Overview Ruby On Rails 4.0 Training From Iflame Allows You To Build Full Featured, High Quality, Object Oriented Web Apps. Ruby On Rails Is A Full

More information

This tutorial has been designed for beginners who would like to use the Ruby framework for developing database-backed web applications.

This tutorial has been designed for beginners who would like to use the Ruby framework for developing database-backed web applications. About the Tutorial Ruby on Rails is an extremely productive web application framework written in Ruby by David Heinemeier Hansson. This tutorial gives you a complete understanding on Ruby on Rails. Audience

More information

Layouts and Rendering in Rails

Layouts and Rendering in Rails Layouts and Rering in Rails January 13, 2015 This guide covers the basic layout features of Action Controller and Action View. After reading this guide, you will know: How to use the various rering methods

More information

Lecture 9. Forms & APIs 1 / 38

Lecture 9. Forms & APIs 1 / 38 Lecture 9 Forms & APIs 1 / 38 Final Project Proposal Due November 12th 11:59PM Should include: A summary of your idea A diagram with the db tables you plan to use& the relationships between them You can

More information

Keeping Rails Applications on Track with Brakeman. Justin RailsConf 2012

Keeping Rails Applications on Track with Brakeman. Justin RailsConf 2012 Keeping Rails Applications on Track with Brakeman Justin Collins @presidentbeef RailsConf 2012 1 Everyone knows they should worry about security 2 But when should you worry? 3 Idealized Software Development

More information

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

More information

Building a Rails Application

Building a Rails Application Building a Rails Application Let s get started! Use MySQL to create a depot_development database Create a new Ruby on Rails project called depot Make sure root password is included in Configuration/database.yml

More information

Ruby: Introduction, Basics

Ruby: Introduction, Basics Ruby: Introduction, Basics Computer Science and Engineering College of Engineering The Ohio State University Lecture 4 Ruby vs Java: Similarities Imperative and object-oriented Classes and instances (ie

More information

Validations vs. Filters

Validations vs. Filters Validations vs. Filters Advice (DRYness) Validation Filter Check invariants on model Check conditions for allowing controller action to run Pointcut AR model lifecycle hooks Before and/or after any public

More information

Rails: Associations and Validation

Rails: Associations and Validation Rails: Associations and Validation Computer Science and Engineering College of Engineering The Ohio State University Lecture 17 Schemas, Migrations, Models migrations models database.yml db:migrate db:create

More information

spacetrack Documentation

spacetrack Documentation spacetrack Documentation Release 0.13.1 Frazer McLean Feb 03, 2018 Contents 1 Installation 3 1.1 pip.................................................. 3 1.2 Git..................................................

More information

Getting Started with Rails

Getting Started with Rails Getting Started with Rails January 13, 2015 This guide covers getting up and running with Ruby on Rails. After reading this guide, you will know: How to install Rails, create a new Rails application, and

More information

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University

The COS 333 Project. Robert M. Dondero, Ph.D. Princeton University The COS 333 Project Robert M. Dondero, Ph.D. Princeton University 1 Overview A simulation of reality In groups of 3-5 people... Build a substantial three tier software system 2 Three-Tier Systems "Three

More information

Requests Mock Documentation

Requests Mock Documentation Requests Mock Documentation Release 1.5.1.dev4 Jamie Lennox Jun 16, 2018 Contents 1 Overview 3 2 Using the Mocker 5 2.1 Activation................................................ 5 2.2 Class Decorator.............................................

More information

Lists of Lists. CS 5010 Program Design Paradigms Bootcamp Lesson 5.3

Lists of Lists. CS 5010 Program Design Paradigms Bootcamp Lesson 5.3 Lists of Lists CS 5010 Program Design Paradigms Bootcamp Lesson 5.3 Mitchell Wand, 2012-2017 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. 1 Learning

More information

Software Engineering 2 (SWT2) Chapter 2: Introduction into Ruby on Rails

Software Engineering 2 (SWT2) Chapter 2: Introduction into Ruby on Rails Software Engineering 2 (SWT2) Chapter 2: Introduction into Ruby on Rails Agenda 2 Ruby & Ruby on Rails What is Ruby on Rails? A few words about Ruby Core components RESTful architecture Active Record Your

More information

Web System Development with Ruby on Rails

Web System Development with Ruby on Rails Web System Development with Ruby on Rails Day 7(8/Nov/2012) Relational Database Today's Theme Learn Relation Structure in Relational Database Understand how to describe the relational structure Add new

More information

What's new in Rails 4. Lucas Caton

What's new in Rails 4. Lucas Caton What's new in Rails 4 Lucas Caton www.lucascaton.com.br 4 June 25, 2013 Rails 4.0: Final version released! Ruby 1.8.7 Ruby 1.9.2 Ruby 1.9.3 Ruby 2.0.0 RubyGems 2.x ThreadSafety memcache-client dalli =>

More information

Day 8: 7/June/2012. Log-in Authentication

Day 8: 7/June/2012. Log-in Authentication Day 8: 7/June/2012 Log-in Authentication p Learn authentication so that only specific users can use the Web information of the system. p We use Devise to p Add one line to the file project/gemfile gem

More information

Effective Rails Testing Practices

Effective Rails Testing Practices Effective Rails Testing Practices Mike Swieton atomicobject.com atomicobject.com 2007: 16,000 hours General testing strategies Integration tests View tests Controller tests Migration tests Test at a high

More information

User Authentication and Session Control

User Authentication and Session Control User Authentication and Session Control CITS3403 Web & Internet Technologies Includes material from Agile Web Development with Rails, 3rd Ed, 2008 and 4 th Ed 2011, 2012 The Pragmatic Programmers. Slides

More information

RailsConf Europe 2008 Juggernaut Realtime Rails. Alex MacCaw and Stuart Eccles

RailsConf Europe 2008 Juggernaut Realtime Rails. Alex MacCaw and Stuart Eccles RailsConf Europe 2008 Juggernaut Realtime Rails Alex MacCaw and Stuart Eccles RailsConf Europe 2008 Juggernaut Realtime Rails Alex MacCaw and Stuart Eccles http://www.madebymany.co.uk/ server push HTTP

More information

appendix B: Working with Ruby on Rails

appendix B: Working with Ruby on Rails B1 appix B: Working with Ruby on Rails APPENDIX B B2 Since the beginning of the Web, both static and dynamic typed languages have been used for writing web applications. Java and its cousin C# have emerged

More information

Table of Contents. Tutorial Setup Instructions...1 Thanks for signing up!...1. Refactoring...2 The First Step In Refactoring...2

Table of Contents. Tutorial Setup Instructions...1 Thanks for signing up!...1. Refactoring...2 The First Step In Refactoring...2 Table of Contents Tutorial Setup Instructions1 Thanks for signing up!..1 Refactoring..2 The First Step In Refactoring2 Summary of Concepts and Terms3 Single Responsibility Principle.3 Separation of Concerns..3

More information

Kim Dalsgaard. Co-owner of, and Software Designer at Trifork Athene Co-founder of Aarhus Ruby Brigade

Kim Dalsgaard. Co-owner of, and Software Designer at Trifork Athene Co-founder of Aarhus Ruby Brigade Kim Dalsgaard Co-owner of, and Software Designer at Trifork Athene Co-founder of Aarhus Ruby Brigade REST in Ruby How Ruby can support a RESTful architecture What is REST? REST is first described in Roy

More information

ANNABELLE CONTENT MANAGEMENT SYSTEM

ANNABELLE CONTENT MANAGEMENT SYSTEM ANNABELLE CONTENT MANAGEMENT SYSTEM (c) Sabu Francis, India Aug 1, 2007 Introduction This is the Annabelle Content Mangement System (ACMS). It is written entirely in Rebol (http://www.rebol.com), with

More information

School of Computer Science and Software Engineering 2ND SEMESTER EXAMINATIONS CITS4230 Internet Technologies

School of Computer Science and Software Engineering 2ND SEMESTER EXAMINATIONS CITS4230 Internet Technologies School of Computer Science and Software Engineering 2ND SEMESTER EXAMINATIONS 2012 Internet Technologies FAMILY NAME: GIVEN NAMES: STUDENT ID: SIGNATURE: This paper contains: 16 pages (including the title

More information

Sergio Benitez.

Sergio Benitez. Sergio Benitez sb@sergio.bz Rocket is a web framework for Rust that makes it simple to write fast web applications without sacrificing flexibility or type safety. Rocket is a web framework for Rust that

More information

Lecture 6. Active Record Associations 1 / 30

Lecture 6. Active Record Associations 1 / 30 Lecture 6 Active Record Associations 1 / 30 Homeworks 4 & 5 Homework 4 was graded Homework 5 was due last night Any questions? 2 / 30 Learn HTML Time's almost up! You're going to be writing your own views

More information

Principles of Ruby Applica3on Design. Dean Wampler Senior Mentor and Consultant Object Mentor, Inc. Chicago, IL

Principles of Ruby Applica3on Design. Dean Wampler Senior Mentor and Consultant Object Mentor, Inc. Chicago, IL Principles of Ruby Applica3on Design Dean Wampler Senior Mentor and Consultant Object Mentor, Inc. Chicago, IL dean@objectmentor.com 1 Get the latest version of this talk: aspectprogramming.com/papers

More information

Sass. The Future of Stylesheets.

Sass. The Future of Stylesheets. Sass. The Future of Stylesheets. Chris Eppstein Follow me @chriseppstein Architect - Caring.com Creator - Compass Stylesheet Framework Core Contributor - Sass A website for caregivers of the sick and elderly.

More information

RACK / SSO. and a little bit about the Bundler. Tuesday, December 1, 2009 hello hello

RACK / SSO. and a little bit about the Bundler. Tuesday, December 1, 2009 hello hello RACK / SSO and a little bit about the Bundler hello hello COREY DONOHOE @atmos / atmos@atmos.org i m a software developer and open source participant for a number of years this is me in hawaii last month

More information

Ruby on Rails 2.2 WHAT'S NEW. First Edition

Ruby on Rails 2.2 WHAT'S NEW. First Edition Ruby on Rails 2.2 WHAT'S NEW First Edition Ruby on Rails 2.2 WHAT'S NEW First Edition by Carlos Brando translated by Carl Youngblood Copyright 2008 Carlos Brando. All Rights Reserved. First edition: October

More information

Vaurien Documentation

Vaurien Documentation Vaurien Documentation Release 2.0 Mozilla Aug 02, 2017 Contents 1 Installing Vaurien 3 2 Design 5 3 Using Vaurien from the command-line 7 4 Controlling Vaurien live 9 5 Controlling Vaurien from your code

More information

Rails Routing Roundup

Rails Routing Roundup Rails Routing Roundup Rails Routing Roundup David A. Black Ruby Power and Light, LLC http://www.rubypal.com 1 Roadmap Basics of routing system Recognition Generation Defining routes (routing rules) in

More information