According to Wikipedia, Ruby is an interpreted, fully object-oriented programming language with strong dynamic typing. The language is distinguished by the high efficiency of program development and has absorbed the best features of Perl, Java, Python, Smalltalk, Eiffel, Ada and Lisp. Odesa IT Family together with the company DataArt prepared a list of literature.
Ruby. Part 1
- Clever Algorithms: Nature-Inspired Programming Recipes (Jason Brownlee)
- Cucumber and Cheese (Jeff Morgan)
- Metaprogramming Ruby: Program Like the Ruby Pros (Paolo Perrotta)
- Ruby Under a Microscope: An Illustrated Guide to Ruby Internals An Illustrated Guide to Ruby Internals. (Pat Shaughnessy)
Clever Algorithms: Nature-Inspired Programming Recipes (Jason Brownlee)
Clever Algorithms: Nature-Inspired Programming Recipes is an open source book that describes a large number of algorithmic techniques from the the fields of Biologically Inspired Computation, Computational Intelligence and Metaheuristics in a complete, consistent, and centralized manner such that they are accessible, usable, and understandable. This is a repository for the book project.
Cucumber and Cheese (Jeff Morgan)
A few years ago I set out to master Acceptance Test Driven Development (ATDD, also variously known as Behavior Driven Development or Storytesting). After trying several of the available tools I settled on Cucumber. For Web applications, I also used the most popular Ruby tool for page traversal and verification, WATIR.As I started working with teams to implement this practice, I discovered that the ATDD community was writing more and more new Ruby gems to empower and simplify this kind of testing. I also found that some of the things I personally wanted to simplify were not supported by any existing Ruby gem, so like the crazed developer I am, I set out to build my own. To my surprise, others started using some of the gems I created and began asking a lot of questions about their usage.This book is my attempt to share as much of my experience using Cucumber and Ruby as possible. I will cover many patterns, practices, tools, and (Yes) Ruby gems that make testing applications (particularly but not limited to Web applications) easier including a few of my own. I will also cover the proper way to structure and write your test automation code so that it is less brittle, simpler, better organized, more expressive, and therefore easier to change over the lifecycle of your application. My goal is to help you see and understand the benefits of ATDD and learn how to use Cucumber and Ruby to adopt (and help us refine!) this amazing practice.
Metaprogramming Ruby: Program Like the Ruby Pros (Paolo Perrotta)
Everyone in the Ruby world seems to be talking about metaprogramming–how you can use it to remove duplication in your code and write elegant, beautiful programs. Now you can get in on the action as well.
This book describes metaprogramming as an essential component of Ruby. Once you understand the principles of Ruby, including the object model, scopes, and eigenclasses, you’re on your way to applying metaprogramming both in your daily work and in your fun, after-hours projects.
Learning metaprogramming doesn’t have to be difficult or boring. By taking you on a Monday-through-Friday workweek adventure with a pair of programmers, Paolo Perrotta helps make mastering the art of metaprogramming both straightforward and entertaining.
Ruby Under a Microscope: An Illustrated Guide to Ruby Internals An Illustrated
Ruby is a powerful programming language with a focus on simplicity, but beneath its elegant syntax it performs countless unseen tasks.
Ruby Under a Microscope gives you a hands-on look at Ruby’s core, using extensive diagrams and thorough explanations to show you how Ruby is implemented (no C skills required). Author Pat Shaughnessy takes a scientific approach, laying out a series of experiments with Ruby code to take you behind the scenes of how programming languages work. You’ll even find information on JRuby and Rubinius (two alternative implementations of Ruby), as well as in-depth explorations of Ruby’s garbage collection algorithm.