Ruby in Practice


Book Description

Ruby in Practice increases your productivity by showing you specific Ruby techniques you can use in your projects. The book offers detailed strategies for using Ruby in a large-scale environment. You'll see concrete examples of integration, messaging, web development, and databases, all presented in a clear Problem/Solution format. This book won't help you push your deadline back, but it will help you get the job done in less time. Above all, Ruby in Practice is a practical book for developers who want an in depth understanding of the Ruby language and its toolset. The book is divided into three major parts. The first part concentrates on issues that developers face both from within their organizations and from their peers. The authors weigh the costs and benefits of using Ruby in enterprise development projects, the over-riding theme being that every developer should always aim to use the right tool for any particular job. The authors then examine the pros and cons of developing with Ruby, and where appropriate, compare Ruby to other languages, both conceptually and in code. The second part discusses techniques for communication and integration of systems. The authors describe how libraries and techniques are used to facilitate messaging, web development and communication automation. They also focus on how the strategies in the first section can be used with these libraries to make development more flexible and efficient. The last part shows how to manage data and integrate with existing data using Ruby. The authors describe techniques for using existing Ruby libraries that either replace popular Java libraries or can interface with existing data in a different way. They go on to show you how strategies covered in the first section can be used to enable Ruby to interact with existing assets or to build new data systems. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.




Ruby Best Practices


Book Description

How do you write truly elegant code with Ruby? Ruby Best Practices is for programmers who want to use Ruby as experienced Rubyists do. Written by the developer of the Ruby project Prawn, this concise book explains how to design beautiful APIs and domain-specific languages with Ruby, as well as how to work with functional programming ideas and techniques that can simplify your code and make you more productive. You'll learn how to write code that's readable, expressive, and much more. Ruby Best Practices will help you: Understand the secret powers unlocked by Ruby's code blocks Learn how to bend Ruby code without breaking it, such as mixing in modules on the fly Discover the ins and outs of testing and debugging, and how to design for testability Learn to write faster code by keeping things simple Develop strategies for text processing and file management, including regular expressions Understand how and why things can go wrong Reduce cultural barriers by leveraging Ruby's multilingual capabilities This book also offers you comprehensive chapters on driving code through tests, designing APIs, and project maintenance. Learn how to make the most of this rich, beautiful language with Ruby Best Practices.




Eloquent Ruby


Book Description

It’s easy to write correct Ruby code, but to gain the fluency needed to write great Ruby code, you must go beyond syntax and absorb the “Ruby way” of thinking and problem solving. In Eloquent Ruby, Russ Olsen helps you write Ruby like true Rubyists do–so you can leverage its immense, surprising power. Olsen draws on years of experience internalizing the Ruby culture and teaching Ruby to other programmers. He guides you to the “Ah Ha!” moments when it suddenly becomes clear why Ruby works the way it does, and how you can take advantage of this language’s elegance and expressiveness. Eloquent Ruby starts small, answering tactical questions focused on a single statement, method, test, or bug. You’ll learn how to write code that actually looks like Ruby (not Java or C#); why Ruby has so many control structures; how to use strings, expressions, and symbols; and what dynamic typing is really good for. Next, the book addresses bigger questions related to building methods and classes. You’ll discover why Ruby classes contain so many tiny methods, when to use operator overloading, and when to avoid it. Olsen explains how to write Ruby code that writes its own code–and why you’ll want to. He concludes with powerful project-level features and techniques ranging from gems to Domain Specific Languages. A part of the renowned Addison-Wesley Professional Ruby Series, Eloquent Ruby will help you “put on your Ruby-colored glasses” and get results that make you a true believer.




Rails AntiPatterns


Book Description

The Complete Guide to Avoiding and Fixing Common Rails 3 Code and Design Problems As developers worldwide have adopted the powerful Ruby on Rails web framework, many have fallen victim to common mistakes that reduce code quality, performance, reliability, stability, scalability, and maintainability. RailsTM AntiPatterns identifies these widespread Rails code and design problems, explains why they’re bad and why they happen—and shows exactly what to do instead. The book is organized into concise, modular chapters—each outlines a single common AntiPattern and offers detailed, cookbook-style code solutions that were previously difficult or impossible to find. Leading Rails developers Chad Pytel and Tammer Saleh also offer specific guidance for refactoring existing bad code or design to reflect sound object-oriented principles and established Rails best practices. With their help, developers, architects, and testers can dramatically improve new and existing applications, avoid future problems, and establish superior Rails coding standards throughout their organizations. This book will help you understand, avoid, and solve problems with Model layer code, from general object-oriented programming violations to complex SQL and excessive redundancy Domain modeling, including schema and database issues such as normalization and serialization View layer tools and conventions Controller-layer code, including RESTful code Service-related APIs, including timeouts, exceptions, backgrounding, and response codes Third-party code, including plug-ins and gems Testing, from test suites to test-driven development processes Scaling and deployment Database issues, including migrations and validations System design for “graceful degradation” in the real world




Design Patterns in Ruby (Adobe Reader)


Book Description

Praise for Design Patterns in Ruby "Design Patterns in Ruby documents smart ways to resolve many problems that Ruby developers commonly encounter. Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby. He clearly explains each idea, making a wealth of experience available to Ruby developers for their own daily work." —Steve Metsker, Managing Consultant with Dominion Digital, Inc. "This book provides a great demonstration of the key 'Gang of Four' design patterns without resorting to overly technical explanations. Written in a precise, yet almost informal style, this book covers enough ground that even those without prior exposure to design patterns will soon feel confident applying them using Ruby. Olsen has done a great job to make a book about a classically 'dry' subject into such an engaging and even occasionally humorous read." —Peter Cooper "This book renewed my interest in understanding patterns after a decade of good intentions. Russ picked the most useful patterns for Ruby and introduced them in a straightforward and logical manner, going beyond the GoF's patterns. This book has improved my use of Ruby, and encouraged me to blow off the dust covering the GoF book." —Mike Stok "Design Patterns in Ruby is a great way for programmers from statically typed objectoriented languages to learn how design patterns appear in a more dynamic, flexible language like Ruby." —Rob Sanheim, Ruby Ninja, Relevance Most design pattern books are based on C++ and Java. But Ruby is different—and the language's unique qualities make design patterns easier to implement and use. In this book, Russ Olsen demonstrates how to combine Ruby's power and elegance with patterns, and write more sophisticated, effective software with far fewer lines of code. After reviewing the history, concepts, and goals of design patterns, Olsen offers a quick tour of the Ruby language—enough to allow any experienced software developer to immediately utilize patterns with Ruby. The book especially calls attention to Ruby features that simplify the use of patterns, including dynamic typing, code closures, and "mixins" for easier code reuse. Fourteen of the classic "Gang of Four" patterns are considered from the Ruby point of view, explaining what problems each pattern solves, discussing whether traditional implementations make sense in the Ruby environment, and introducing Ruby-specific improvements. You'll discover opportunities to implement patterns in just one or two lines of code, instead of the endlessly repeated boilerplate that conventional languages often require. Design Patterns in Ruby also identifies innovative new patterns that have emerged from the Ruby community. These include ways to create custom objects with metaprogramming, as well as the ambitious Rails-based "Convention Over Configuration" pattern, designed to help integrate entire applications and frameworks. Engaging, practical, and accessible, Design Patterns in Ruby will help you build better software while making your Ruby programming experience more rewarding.




Learn Game Programming with Ruby


Book Description

Level up your programming skills while making fast-paced, arcade-style video games. Make enemy spaceships explode in balls of fire, and escape from a pit while dodging falling boulders. You'll use the fun and approachable Ruby programming language and the Gosu 2D game library, which makes making games a breeze. Gain the skills and techniques you need to bring your own video game ideas to life with moving images and thumping sounds. If you have a little experience programming in Ruby or another language, then you're ready to start making your own video games. In this book you'll learn concepts such as animation, keyboard and mouse movement, sounds and music, and physics as you build four exciting games. Your first game will test your reflexes as you try to click on a ruby that pops in and out of your screen. Learn how to draw images and text, and how to make objects move around the screen. You'll make a space-shooter where you defend your home base from a seemingly endless stream of enemies, as you discover how to use keyboard input, add music and sounds, an opening title screen, and scrolling end-credits. Next up: make a sliding number puzzle game where you'll learn to incorporate more complicated logic and user interaction into your game. Learn all about game physics as you build a game where a bold adventurer must climb out of a pit while dodging bouncing, spinning rocks. Finally, package up your games as Windows and Mac apps so you can share them with your friends. When you're done with this book, you'll have improved your programming skills, and you'll have all the tools you need to make your own arcade-style games. What You Need: You'll need a computer running Windows 7 or later, or Mac OS X 10.7 or later. All the other software you need is free, and the first chapter will get you up and running.




Learn Enough Ruby to Be Dangerous


Book Description

All You Need to Know, and Nothing You Don't, to Create Ruby Programs, Gems, and Web Apps Programmers love Ruby for its elegance, power, and flexibility: that's why it was chosen for the Ruby on Rails framework that launched websites from Shopify to Coinbase. You'll love Ruby too, but you don't need to learn "everything" about it, just how to use it efficiently to solve real problems. In Learn Enough Ruby to Be Dangerous, renowned instructor Michael Hartl teaches the concepts, skills, and approaches you need to be professionally productive in both general-purpose programming and beginning web app development. Even if you're new to programming, Hartl helps you quickly build technical sophistication and master the lore you need to succeed. You'll gain a solid understanding of object-oriented and functional programming, develop and publish a self-contained Ruby package (a gem), and use your gem to build and deploy a dynamic web app with the Sinatra framework. Focused exercises help you internalize what matters, without wasting time on details pros don't care about. Soon, it'll be like you were born knowing this stuff--and you'll be suddenly, seriously dangerous. Learn enough about . . . Writing real code quickly using interactive Ruby (irb) Working with native Ruby objects and creating your own Using functional techniques to write more concise and modular code Creating tests and improving code with test-driven development (TDD) Developing and publishing self-contained Ruby packages (gems) Writing nontrivial shell scripts to leverage Ruby's power at the command line Developing and deploying a web app with routes, layouts, embedded Ruby, and forms Mastering modern development skills you can use with any language Michael Hartl's Learn Enough Series includes books and video courses that focus on the most important parts of each subject, so you don't have to learn everything to get started--you just have to learn enough to be dangerous and solve technical problems yourself. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.




Practical Object-oriented Design in Ruby


Book Description

The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications Ruby's widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples. This book focuses squarely on object-oriented Ruby application design. Practical Object-Oriented Design in Ruby will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues. This guide will help you Understand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade Decide what belongs in a single Ruby class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Design cost-effective tests Solve common problems associated with poorly designed Ruby code




Professional Ruby on Rails


Book Description

Nothing less than a revolution in the way web applications are constructed,Ruby on Rails (RoR) boasts a straightforward and intuitive nature that avoids programming repetition and makes it infinitely easier to build for the web. This book captures the current best practices to show you the most efficient way to build a spectacular web application with RoR. You?ll learn everything you need to know in order to extend Rails so that you can take advantage of the many exciting and wonderful things that are being done by the diligent RoR programming community.




The Well-grounded Rubyist


Book Description

Addresses both newcomers to Ruby as well as Ruby programmers who want to deepen their understanding of the language. This beautifully written and totally revised second edition includes coverage of features that are new in Ruby 2.1, as well as expanded and updated coverage of aspects of the language that have changed.