Learn Ruby on Rails a Tutorial by Daniel Kehoe · 1.C16 (Prerelease) · 18 November 2013 2 Contents

Total Page:16

File Type:pdf, Size:1020Kb

Learn Ruby on Rails a Tutorial by Daniel Kehoe · 1.C16 (Prerelease) · 18 November 2013 2 Contents 1 learn-rails.com Learn Ruby on Rails A tutorial by Daniel Kehoe · 1.c16 (prerelease) · 18 November 2013 2 Contents 1. About the Book ........................................... 3 29. Credits and Comments......................... 247 2. Introduction ................................................. 4 3. Concepts........................................................ 9 4. Get Help When You Need It................. 15 5. Plan Your Product.................................... 19 6. Manage Your Project............................... 26 7. Accounts You May Need ....................... 28 8. Get Started.................................................. 31 9. Create the Application............................ 39 10. The Parking Structure............................. 47 11. Time Travel with Git ............................... 51 12. Gems ............................................................ 61 13. Configure.................................................... 71 14. Static Pages and Routing........................ 76 15. Request and Response ............................ 79 16. Dynamic Home Page .............................. 88 17. Troubleshoot.............................................. 98 18. Just Enough Ruby .................................. 110 19. Layout and Views .................................. 132 20. Front-End Framework .......................... 155 21. Add Pages................................................. 176 22. Contact Form ........................................... 181 23. Spreadsheet Connection....................... 201 24. Send Mail.................................................. 207 25. Mailing List .............................................. 214 26. Deploy ....................................................... 223 27. Analytics ................................................... 235 28. Rails Challenges...................................... 242 3 Chapter 1 About the Book I hope you will agree that this is the “best book for Rails beginners.” Over 900 people have downloaded an advance edition of this book. I’ve incorporated many of their suggestions for improvements. Over 600 people have contributed to the Kickstarter campaign to launch the book with pledges ranging from $9 to $350. Launching the book would not be possible without support from Kickstarter contributors. The Kickstarter campaign ends on Saturday, November 30th, at 5pm US Pacific Time. If you agree that the book is valuable, I hope you will contribute to the Kickstarter campaign. Click here: • Make a pledge to the Kickstarter campaign In addition to contributing to the Kickstarter campaign, please help get the word out: • Write a blog post about the book • post the link on Twitter • post the link on Facebook • post the link on Google+ Mentioning the book online is important. Here’s the link to the book: • http://learn-rails.com/learn-ruby-on-rails.html Thank you for your support. 4 Chapter 2 Introduction Welcome. This tutorial is a first step on your path to learn Ruby on Rails. You’ll learn key concepts so you’ll have a solid foundation for continued study. You’ll build a working web application so you’ll gain hands-on experience. Along the way, you’ll practice the techniques used by professional Rails developers and you’ll understand why Rails has become a popular choice for web development. 5 Is It for You? You don’t need to be a programmer to succeed with this tutorial. You’ll get comfortable with the Ruby programming language and the Unix command line interface as you build a Rails application. This tutorial is ideal if you are: • a student • a startup founder • making a career change Does this sound like you? Readers who work in social media or graphic design say this tutorial is a good way to get introduced to programming. Others who previously built simple websites using HTML, or used applications such as WordPress, found they could easily progress to building websites with Rails. Programmers with experience in languages such as PHP or Java found this tutorial to be a good way to get started with the Rails framework. On the other hand, if you’ve never encountered HTML, it is best to start elsewhere with an “Introduction to Web Design” course or online tutorial. Warnings This is two books in one. At the core is a hands-on tutorial that will lead you through the code needed to build a real-world web application. I thoroughly explain the code you’ll need to write a Rails application. Before you start coding, I explain the culture and practices of the Rails community. If you’re in a hurry to start coding, jump right now to Chapter 7, “Get Started.” But I urge you to read the preliminary chapters first. They’ll give you the context you need to become a skilled Rails developer. Many readers have told me the concepts at the beginning of the book provide a grounding they haven’t found in any other tutorial. The tutorial is designed to unfold in steps, one section leading to another. You can use the book as a reference, skipping around without reading from beginning to end, but you’ll actually waste time as you try to pick up the pieces you missed. The chapters are densely packed with links to background reading. If you click every link, you’ll be a well-informed student, but you may never finish the book! It’s up to you to master your curiosity. Follow the links only when you want to dive deeper. There is rich satisfaction in building something and making it run. But programming can be frustrating and Rails isn’t easy for beginners. Before you get to the reward, you’ll encounter setbacks. If at times you’re ready to quit, jump to the chapter titled “Rails Challenges”at the 6 end of the book. It describes many of the problems learners encounter. I’ve written it to address your concerns when learning Rails becomes difficult and frustrating. It’s best to work through the book from start to end, allowing enough time to read the introductory chapters and then building the application. That means you should allow time to read the book before you start a new job or join a developer bootcamp. Really! What To Expect You can read the book and complete the tutorial in one long weekend, though it will take concentration and stamina. If you work through the book over a longer timespan, try to work in uninterrupted blocks of two hours or more for reading and coding, as it takes time to focus and concentrate. When you’ve completed this tutorial, you will be ready for more advanced self-study, including other tutorials from the RailsApps project, textbook introductions to Rails, or workshops and developer bootcamps that provide intensive training in Ruby on Rails. Other curriculums often skip the basics. With this tutorial you’ll have a solid grounding in key concepts; you won’t feel overwhelmed or frustrated as you continue your studies. This tutorial is good preparation for: • advanced tutorials from the RailsApps Project • textbooks such as Michael Hartl’s Ruby on Rails Tutorial • introductory workshops from RailsBridge or Rails Girls • intensive training with immersive code camps We are blessed with many textbooks, workshops, and classroom programs that teach Ruby on Rails. I believe this book is unique in covering the basics while introducing the tools and techniques of professional Rails development. The RailsApps Project This book is the foundation for a series of tutorials that accompany example applications from the RailsApps project. Tutorials from @rails_apps take you on a guided path starting with absolute basics (this tutorial). You’ll progress to intermediate-level tutorials and soon be using the RailsApps in- depth guides for professional Rails developers. It is important to feel satisfaction and accomplishment as you learn. That’s why each tutorial introduces Rails in stages. With each tutorial you will build a real-world Rails application. The finished product confirms your accomplishment; you’ll feel genuine satisfaction as you 7 deploy your Rails application. Hands-on learning with real Rails applications is the key to absorbing and retaining knowledge. The applications you’ll build in the tutorials are not classroom exercises. The primary purpose of the RailsApps project is to provide starter applications for Rails developers. You’ll build real applications that you can customize and adapt for your startup, at your job, or for clients. Hundreds of developers use the RailsApps example applications, report problems as they arise, and propose solutions. Rails changes frequently; each application is known to work and serves as your personal “reference implementation” so you can stay up to date. Maintenance and development of the RailsApps applications is supported by subscriptions to the RailsApps tutorials. The Application We’ll build a basic web application that can be used by a typical small business. The website will include a home page, “about” page, contact form, and option to sign up for a mailing list. You’ll also learn how to collect data from a form and save it to a spreadsheet on Google Drive. You’ll find the complete learn-rails application on GitHub. It is a working application that is maintained by a team of experienced developers so you can always check the “reference implementation” if you have problems. A Note to Reviewers and Teachers This book approaches the subject differently than most introductions to Rails. It introduces concepts of product planning, project management, and website analytics to place development within a larger context of product development and marketing. In introducing Rails, rather
Recommended publications
  • Joomla Vs Drupal - Website Content Management Systems]
    [JOOMLA VS DRUPAL - WEBSITE CONTENT MANAGEMENT SYSTEMS] Joomla or Drupal? CMS’s are generally used to manage and control a large, dynamic collection of Web material (HTML documents and their associated images). And yes, they can take the web maintenance person out of the picture, as clients can update their own content, as and when required There are numerous Web CMS (Content Management Systems), and each one can ether fall into Open Source or proprietary. The ones that tend to stand out from the crowd, or should I say those that are more commonly used by small website design agencies are Word Press, Joomla and Drupal. So which one do you choose as a customer, or do you leave this to your web developer? Generally speaking, Joomla has a cleaner and smoother user interface; on the other hand Drupal is more flexible. Drupal and Joomla developers could argue all day,, so I’m going to go in as a bipartisan developer. • For starters both are easy to install and deploy, and many hosting companies have a one click install for these. • Both have plenty of modules and extensions you can use. • Joomla has a lighter learning curve than Drupal. • Joomla support SSL logins and SSL pages. Drupal not known to support it. • Server resources utilization is more compared to drupal © 2009 www.visualwebz.com Seattle Web Development Company [JOOMLA VS DRUPAL - WEBSITE CONTENT MANAGEMENT SYSTEMS] Summary of Joomla & Drupal Features • Limited technical knowledge need to get started. • Short learning curve • Cannot integrate other scripts etc. to your site • Generally you cannot create high-end sites, without additional investment of time.
    [Show full text]
  • O'reilly- Collaborating in Devops Culture
    Compliments of Collaborating in DevOps Culture Better Software Through Better Relationships Jennifer Davis & Ryn Daniels REPORT Teamwork powers DevOps GitHub powers teams GitHub helps more than two million organizations build better software together by centralizing discussions, automating tasks, and integrating with thousands of apps. Embraced by 31 million developers and counting, GitHub is where high-performing DevOps starts. Get started with a free trial at enterprise.github.com/contact Our on-premises and cloud solutions help enterprise teams: Collaborate Innovate Integrate Work across internal and Bring the power of Build on GitHub and external teams securely. the world’s largest open integrate with everything GitHub Enterprise includes source community to from legacy tools to access to on-premises developers at work, while cutting-edge apps, unifying Enterprise Server as well keeping your most critical your DevOps toolchain as Enterprise Cloud—now code behind the firewall so you can keep things with SOC 1, SOC 2, and ISAE with GitHub Connect. simple as you grow. 3000/3402 compliance. Work fast. Work secure. Work together. Start a free trial To find out more about GitHub Enterprise visit github.com/enterprise or email us at [email protected] Collaborating in DevOps Culture Better Software Through Better Relationships Jennifer Davis and Ryn Daniels Beijing Boston Farnham Sebastopol Tokyo Collaborating in DevOps Culture by Jennifer Davis and Ryn Daniels Copyright © 2019 Jennifer Davis and Ryn Daniels. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use.
    [Show full text]
  • Red Hat Satellite 6.7 Provisioning Guide
    Red Hat Satellite 6.7 Provisioning Guide A guide to provisioning physical and virtual hosts on Red Hat Satellite Servers. Last Updated: 2021-05-14 Red Hat Satellite 6.7 Provisioning Guide A guide to provisioning physical and virtual hosts on Red Hat Satellite Servers. Red Hat Satellite Documentation Team [email protected] Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
    [Show full text]
  • Mobile Phones and Cloud Computing
    Mobile phones and cloud computing A quantitative research paper on mobile phone application offloading by cloud computing utilization Oskar Hamrén Department of informatics Human Computer Interaction Master’s programme Master thesis 2-year level, 30 credits SPM 2012.07 Abstract The development of the mobile phone has been rapid. From being a device mainly used for phone calls and writing text messages the mobile phone of today, or commonly referred to as the smartphone, has become a multi-purpose device. Because of its size and thermal constraints there are certain limitations in areas of battery life and computational capabilities. Some say that cloud computing is just another buzzword, a way to sell already existing technology. Others claim that it has the potential to transform the whole IT-industry. This thesis is covering the intersection of these two fields by investigating if it is possible to increase the speed of mobile phones by offloading computational heavy mobile phone application functions by using cloud computing. A mobile phone application was developed that conducts three computational heavy tests. The tests were run twice, by not using cloud computing offloading and by using it. The time taken to carry out the tests were saved and later compared to see if it is faster to use cloud computing in comparison to not use it. The results showed that it is not beneficial to use cloud computing to carry out these types of tasks; it is faster to use the mobile phone. 1 Table of Contents Abstract ..................................................................................................................................... 1 Table of Contents ..................................................................................................................... 2 1. Introduction .......................................................................................................................... 5 1.1 Previous research ........................................................................................................................
    [Show full text]
  • Modern Web Application Frameworks
    MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Û¡¢£¤¥¦§¨ª«¬­Æ°±²³´µ·¸¹º»¼½¾¿Ý Modern Web Application Frameworks MASTER’S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Bc. Jan Pater Advisor: doc. RNDr. Petr Sojka, Ph.D. i Abstract The aim of this paper was the analysis of major web application frameworks and the design and implementation of applications for website content ma- nagement of Laboratory of Multimedia Electronic Applications and Film festival organized by Faculty of Informatics. The paper introduces readers into web application development problematic and focuses on characte- ristics and specifics of ten selected modern web application frameworks, which were described and compared on the basis of relevant criteria. Practi- cal part of the paper includes the selection of a suitable framework for im- plementation of both applications and describes their design, development process and deployment within the laboratory. ii Keywords Web application, Framework, PHP,Java, Ruby, Python, Laravel, Nette, Phal- con, Rails, Padrino, Django, Flask, Grails, Vaadin, Play, LEMMA, Film fes- tival iii Acknowledgement I would like to show my gratitude to my supervisor doc. RNDr. Petr So- jka, Ph.D. for his advice and comments on this thesis as well as to RNDr. Lukáš Hejtmánek, Ph.D. for his assistance with application deployment and server setup. Many thanks also go to OndˇrejTom for his valuable help and advice during application development.
    [Show full text]
  • The Joomla Brochure
    Joomla! The Flexible Platform Empowering Website Creators What is Joomla? Joomla! is an award-winning content management system (CMS) used to build beautiful web sites and powerful online applications. A global volunteer community of developers has been building and improving Joomla! since the first version was released in 2005. This immense effort has made Joomla! easy to use, stable and very secure. Joomla! is search engine and mobile friendly, multilingual, flexible and extensible. Offering unlimited design possibilities alongside industry leading security, Joomla! also has thousands of third party extensions and templates allowing further customization to meet specific needs. Best of all, Joomla! is an open source solution that is freely available to everyone. You can download Joomla! at downloads.joomla.org. A flexible system, easy to extend and customize Joomla! has thousands of verified third party extensions and high quality templates available, many of which are free. The layout and overrides system and built in extendable functions make it easy to create customized solutions. A wealth of free documentation and video training make learning Joomla! a breeze. Free forever open source software Joomla! is created, maintained and supported by a unique Volunteer Community who believe that it should be freely available to everyone, always. Joomla! is also surrounded by an extensive ecosystem of extension developers, designers and integrators. Search Engine Optimized out of the box Define your own MetaData and enjoy built in MicroData Support. Use the menu based work- flow to build your perfect URL structure. Super light core page weights and fast load times work alongside advanced caching capabilities to keep the engines happy and visitors engaged.
    [Show full text]
  • TEC-57 – Full Stack Ruby-On-Rails Web Developer Certificate Program with Externship
    Continuing Education 1717 S. Chestnut Ave. Fresno, CA 93702-4709 (800) 372-5505 https://ce.fresno.edu TEC-57 – Full Stack Ruby-on-Rails Web Developer Certificate Program with Externship Professional Education Course Syllabus Program includes National Certification & an Externship Opportunity Course Contact Hours: 42 The Full Stack Web Developer Profession Full stack developers are software or website programmers who combine the roles of front-end and back-end developers. Stack developer job is relatively new (just four years old). This role blends both front-end and back-end development since there is no clear borderline between the two: front- end developers often lack extra back-end skills, and the other way around. Full stack duties, in their turn, unite the both. These specialists work professionally both on the user side and server side of the web development cycle. To this end, the role requires in-depth knowledge of every level of web creation process, which includes Linus server’s set-up and configuration, creating server-side APIs, making JavaScript-codes that power apps, and so on. A Ruby on Rails developer is responsible for writing server-side web application logic in Ruby, around the framework Rails. Ruby on Rails developers usually develop back-end components, connect the application with the other (often third-party) web services, and support the front-end developers by integrating their work with the application. Ruby on Rails, as a framework, has gained popularity tremendously over a very short period of time. The goal of the framework is to reduce the time and effort required to build a web application.
    [Show full text]
  • Github Essentials.Pdf
    [ 1 ] GitHub Essentials Unleash the power of collaborative workflow development using GitHub, one step at a time Achilleas Pipinellis BIRMINGHAM - MUMBAI GitHub Essentials Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: September 2015 Production reference: 1280915 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78355-371-6 www.packtpub.com Credits Author Copy Editor Achilleas Pipinellis Trishya Hajare Reviewer Project Coordinator Umesh Ram Sharma Shweta H Birwatkar Commissioning Editor Proofreader Dipika Gaonkar Safis Editng Acquisition Editor Indexer Nikhil Karkal Hemangini Bari Content Development Editor Production Coordinator Sumeet Sawant Nitesh Thakur Technical Editor Cover Work Saurabh Malhotra Nitesh Thakur About the Author Achilleas Pipinellis is an open source enthusiast and tries to get involved in as many projects as possible.
    [Show full text]
  • Types of LMS Deployment & Common Features
    Types of LMS Deployment & Common Features Daisyane Barreto, Amy Rottmann, & Salena Rabidoux In cooking, you have many different types of tools you can use to make a meal. For example, you have mixers, measuring cups, cutting boards, and so many other tools. Each tool is designed to meet the needs of the cooker and serve a specific purpose in the cooking process. An LMS is not different in that sense. There are several types of LMSs in the market being used for educational as well as training purposes, and one of the most difficult choices for organizations and institutions to make is deciding the type of LMS to select based on deployment or license (Pappas, 2014). Of course, many other factors (e.g., pricing, support, additional features, and others) must be considered and weighed in this decision. Still, the cost combined with financial and technical requirements are still the main focus when selecting an LMS (Croitoru & Dinu, 2016). Indeed, it is important to analyze and examine the type of LMS deployment because of its influence in the overall cost as well as other relevant requirements that can inform the decision about an LMS. There are two main types of LMS deployment you need to be familiar with: (1) proprietary, and (2) open-source. Within those two solutions, there are two other distinct categories to be considered: (a) Software as a Service (SaaS) or cloud-based system and (b) Installed LMS. In order to determine what type of LMS is beneficial to an organization or institution, a clear understanding of the advantages and disadvantages of each solution must be reviewed.
    [Show full text]
  • Desarrollo De Una Aplicación Web De Gestión Colaborativa Para Un Club De Triatlón
    Escola Tècnica Superior d’Enginyeria Informàtica Universitat Politècnica de València Desarrollo de una aplicación web de gestión colaborativa para un club de triatlón Trabajo Fin de Grado Grado en Ingeniería Informática Autor: Jose Enrique Pérez Rubio Tutor/a: Manuela Albert Albiol Victoria Torres Bosch 2016 - 2017 Desarrollo de una aplicación web de gestión colaborativa para un club de triatlón 2 Resumen Se ha desarrollado una intranet para sustituir el actual método de contacto y navegación de los usuarios el cual es un foro. La nueva aplicación cuenta con más funcionalidades que no estaban disponibles anteriormente. La página web está desarrollada en web2py, un framework de Python. Como patrón de diseño para la implementación se utilizará el conocido Modelo Vista Controlador (MVC), arquitectura estándar hoy en día el cual separa los datos y la lógica de las vistas del usuario. Este diseño facilita el desarrollo y mantenimiento de las aplicaciones. Palabras clave: triatlón, intranet, web2py, framework, Python. MCV Abstract This Intranet has been developed to replace the current users contact and navigation method, nowadays it is a forum. The new application has more functionality than previously available. This web page is developed in Python web2py’s framework. As design for the implementation we'll be using the Model View Controller (MVC), standard architecture because it separates the data and the logic from user's view. This design improves the development and maintenance of applications. Keywords: triathlon, intranet, web2py, framework, Python, MVC 3 Desarrollo de una aplicación web de gestión colaborativa para un club de triatlón Agradecimientos Antes de nada, me gustaría dar las gracias a: Mis padres, por alentarme a continuar mi educación y han trabajado siempre muy duro para poder brindarme la oportunidad que ellos nunca tuvieron para poder continuar mis estudios.
    [Show full text]
  • Avaliação De Performance De Interpretadores Ruby
    Universidade Federal de Santa Catarina Centro Tecnológico Curso de Sistemas de Informação Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Florianópolis 2010 Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Monograa apresentada ao Curso de Sistemas de Informação da UFSC, como requisito para a obten- ção parcial do grau de BACHAREL em Sistemas de Informação. Orientador: Lúcia Helena Martins Pacheco Doutora em Engenharia Florianópolis 2010 Almeida, Wilson Avaliação de Performance de Interpretadores Ruby / Wilson Al- meida - 2010 xx.p 1.Performance 2. Interpretadores.. I.Título. CDU 536.21 Wilson de Almeida Avaliação de Performance de Interpretadores Ruby Monograa apresentada ao Curso de Sistemas de Informação da UFSC, como requisito para a obten- ção parcial do grau de BACHAREL em Sistemas de Informação. Aprovado em 21 de junho de 2010 BANCA EXAMINADORA Lúcia Helena Martins Pacheco Doutora em Engenharia José Eduardo De Lucca Mestre em Ciências da Computação Eduardo Bellani Bacharel em Sistemas de Informação Aos meus pais e meu irmão. Aos familiares e amigos, em especial pra mi- nha eterna amiga Liliana, que está torcendo por mim de onde ela estiver. Agradecimentos Agradeço ao meu amigo, colega de curso, parceiro de trabalhos e orientador Eduardo Bellani, pelo encorajamento, apoio e seus ricos conselhos sobre o melhor direci- onamento deste trabalho. A professora Lúcia Helena Martins Pacheco pela orientação, amizade, e pela paciência, sem a qual este trabalho não se realizaria. Ao professor José Eduardo Delucca, por seus conselhos objetivos e pontuais. Todos os meus amigos que incentivaram e compreenderam a minha ausência nesse período de corrida atrás do objetivo de concluir o curso.
    [Show full text]
  • Distributed Programming with Ruby
    DISTRIBUTED PROGRAMMING WITH RUBY Mark Bates Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the pub- lisher was aware of a trademark claim, the designations have been printed with initial Editor-in-Chief capital letters or in all capitals. Mark Taub The author and publisher have taken care in the preparation of this book, but make no Acquisitions Editor expressed or implied warranty of any kind and assume no responsibility for errors or Debra Williams Cauley omissions. No liability is assumed for incidental or consequential damages in connection Development Editor with or arising out of the use of the information or programs contained herein. Songlin Qiu The publisher offers excellent discounts on this book when ordered in quantity for bulk Managing Editor purchases or special sales, which may include electronic versions and/or custom covers Kristy Hart and content particular to your business, training goals, marketing focus, and branding Senior Project Editor interests. For more information, please contact: Lori Lyons U.S. Corporate and Government Sales Copy Editor 800-382-3419 Gayle Johnson [email protected] Indexer For sales outside the United States, please contact: Brad Herriman Proofreader International Sales Apostrophe Editing [email protected] Services Visit us on the web: informit.com/ph Publishing Coordinator Kim Boedigheimer Library of Congress Cataloging-in-Publication Data: Cover Designer Bates, Mark, 1976- Chuti Prasertsith Distributed programming with Ruby / Mark Bates.
    [Show full text]