ruby in a nutshell

Download Ruby In a Nutshell

If you can't read please download the document

Upload: vuongdieu

Post on 08-Dec-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Ruby In a Nutshell/1.1.files/arrow_right_red.gifRuby In a Nutshell/1.1.files/btn_next.gifRuby In a Nutshell/1.1.files/btn_prev.gifRuby In a Nutshell/1.1.files/docsafari.css.docBookTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPartTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPrefaceTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAppendixTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docChapterTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliographyTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docArticleTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docGlossaryTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSidebarTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif; TEXT-ALIGN: center}.docSection1Title {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliodivTitle {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBridgehead {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection2Title {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliosetTitle {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection3Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection4Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection5Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docFigureTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docExampleTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTocTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAbstractTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docQandasetTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docProcTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefsectTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docText {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docList {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docMonofont {FONT-FAMILY: Courier New,Courier,monospace}.docTableHeader {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableCell {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableFooter {FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefCell {FONT-SIZE: 17px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTextHighlight {FONT-WEIGHT: bold; COLOR: #cc0000}.docIndexterm {FONT-SIZE: 12px; COLOR: #a0a0a0}.docFootnote {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docItemizedlist {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNote {MARGIN-BOTTOM: 2em; MARGIN-LEFT: 2em; MARGIN-RIGHT: 2em; blockquote: 2em}.docNoteTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNormalTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTipTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docCautionsTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #cc0000; FONT-FAMILY: Arial,Helvetica,sans-serif}.docLink {COLOR: #003399; TEXT-DECORATION: none}.docLink:visited {COLOR: #3366cc; TEXT-DECORATION: none}.docLink:hover {COLOR: #000033; TEXT-DECORATION: underline}.docEmphasis {FONT-STYLE: italic}.docEmphBold {FONT-WEIGHT: bold}.docEmphStrong {FONT-WEIGHT: bold}.docEmphGray {COLOR: #c0c0c0}.docEmphMark {BACKGROUND-COLOR: #c0c0c0}.docEmphRev {COLOR: silver; BACKGROUND-COLOR: black}.docEmphStrike {TEXT-DECORATION: line-through}.docEmphUl {TEXT-DECORATION: underline}.docEmphCursor {TEXT-DECORATION: underline}.docEmphBoldItalic {FONT-WEIGHT: bold; FONT-STYLE: italic}.docEmphRoman {FONT-WEIGHT: normal; TEXT-TRANSFORM: none; FONT-STYLE: normal; FONT-VARIANT: normal; TEXT-DECORATION: none}.docEmphSmaller {FONT-SIZE: 75%; COLOR: #354278}.docEmphHyperlink {COLOR: black}.docCaps {TEXT-TRANSFORM: uppercase}.docStructname {FONT-VARIANT: small-caps}.docPubcolor {COLOR: #354278}H1 {COLOR: #354278}H2 {COLOR: #354278}H3 {COLOR: #354278}H4 {COLOR: #354278}H5 {COLOR: #354278}H6 {COLOR: #354278}PRE {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}TT {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}

Ruby In a Nutshell/1.1.files/down_arrow.gifRuby In a Nutshell/1.1.files/img_bookmarks.gifRuby In a Nutshell/1.1.files/img_email.gifRuby In a Nutshell/1.1.files/img_print.gifRuby In a Nutshell/1.1.files/jslredcurve.jpgRuby In a Nutshell/1.1.files/left_browse.gifRuby In a Nutshell/1.1.files/left_findbook.gifRuby In a Nutshell/1.1.files/left_note.gifRuby In a Nutshell/1.1.files/left_search.gifRuby In a Nutshell/1.1.files/left_tbl_conts.gifRuby In a Nutshell/1.1.files/pqlogo.gifRuby In a Nutshell/1.1.files/ruby_icon.gifRuby In a Nutshell/1.1.files/ruby_xs.gifRuby In a Nutshell/1.1.files/SafariLogo.gifRuby In a Nutshell/1.1.files/sign_minus.gifRuby In a Nutshell/1.1.files/sign_plus.gifRuby In a Nutshell/1.1.files/spacer.gifRuby In a Nutshell/1.1.files/style.css.a1 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline}.a1:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a2 {FONT-SIZE: 8pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a2:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a2:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a3 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a3:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a4 {FONT-SIZE: 10pt; COLOR: #222222; LINE-HEIGHT: 18px; FONT-FAMILY: Arial, Helvetica, sans-serif}.AdvancedSearchTextHighlight {BACKGROUND-COLOR: #f7e583}.bg {BACKGROUND-COLOR: #ffffff}BODY {COLOR: black; BACKGROUND-COLOR: white}.DefaultPageHeadline {FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 14pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.DefaultPageText {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.dlg {BACKGROUND-COLOR: #faf9e7}.entrybox1 {BORDER-RIGHT: #e7d68e 1px solid; BORDER-TOP: #e7d68e 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #e7d68e 1px solid; BORDER-BOTTOM: #e7d68e 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif}.FAQBoxHeadline {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #cc0033; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxQuestion {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxAnswer {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #4b4b4b; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.GroupNotesBorder {BACKGROUND-COLOR: #d0c7de}.GroupNotesEvenRows {BACKGROUND-COLOR: #f1eff5}.GroupNotesOddRows {}.GroupNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.hdr1 {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: center}.ListByCatBorder {BACKGROUND-COLOR: #d0c7dc}.ListByCatEvenRows {FONT-SIZE: 8pt}.ListByCatOddRows {}.ListByCatTableHeading {BACKGROUND-COLOR: #f5deb3}.logout {FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.logout:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.menuLeft {BACKGROUND-COLOR: #ffe583}.menuRight {BACKGROUND-COLOR: #ffcc00}.MyBookmarksBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookmarksEvenRows {BACKGROUND-COLOR: #f1eff5}.MyBookmarksOddRows {}.MyBookmarksTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyBookshelfBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookshelfSpacer {BACKGROUND-COLOR: #eddfdf}.MyBookshelfEvenRows {}.MyBookshelfOddRows {}.MyBookshelfTableHeading {}.MyNotesBorder {BACKGROUND-COLOR: #d0c7dc}.MyNotesEvenRows {}.MyNotesOddRows {}.MyNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentPagesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentPagesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentPagesOddRows {}.MyRecentPagesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentSearchesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentSearchesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentSearchesOddRows {}.MyRecentSearchesTableHeading {BACKGROUND-COLOR: #ddd9e7}.n1 {PADDING-RIGHT: 7px; PADDING-LEFT: 7px; FONT-SIZE: 8pt; PADDING-BOTTOM: 7px; COLOR: #303030; LINE-HEIGHT: 16px; PADDING-TOP: 7px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.navbtn {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.navbtn:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.navbtnSel {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9e2f37; TEXT-DECORATION: none}.NewThisWeekBorder {BACKGROUND-COLOR: #d0c7de}.NewThisWeekEvenRows {}.NewThisWeekOddRows {}.NewThisWeekTableHeading {BACKGROUND-COLOR: #ddd9e7}.PQBannerText {FONT-SIZE: 12pt; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.PreviewTableTitleBackground {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #f3e583; LINE-HEIGHT: 20px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #cc0000; TEXT-ALIGN: left; TEXT-DECORATION: none; font-weither: bold}.PreviewTableBodyBackground {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffd2d3; TEXT-DECORATION: none}.printhdr {FONT-SIZE: 12pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.PublicNotesBorder {BACKGROUND-COLOR: #d0c7de}.PublicNotesEvenRows {}.PublicNotesOddRows {}.PublicNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.RecommendedTitlesBorder {BACKGROUND-COLOR: #d0c7dc}.RecommendedTitlesEvenRows {}.RecommendedTitlesOddRows {}.RecommendedTitlesTableHeading {BACKGROUND-COLOR: #ddd9e7}.SearchResultBorder {BACKGROUND-COLOR: #d0c7de}.SearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.SectionSearchResultBorder {BACKGROUND-COLOR: #f5deb3}.SectionSearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SectionSearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SectionSearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.t1 {FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial, Helvetica, sans-serif}.t2 {FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t3 {FONT-WEIGHT: bold; FONT-SIZE: 8.5pt; COLOR: #ffff7b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9d3036; TEXT-DECORATION: none}.t4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t5 {FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #cc0000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f7e583; TEXT-DECORATION: none}.TextFrame {BACKGROUND-COLOR: #d1c8a1}.toc {BACKGROUND-COLOR: #ffffc1}.Top5Border {BACKGROUND-COLOR: #d0c7de}.Top5EvenRows {}.Top5OddRows {}.Top5TableHeading {BACKGROUND-COLOR: #ddd9e7}.toplogo {BACKGROUND-COLOR: #ffcc00}.topmenu {BACKGROUND-COLOR: #ffcc00}.v1 {FONT-SIZE: 8pt; COLOR: #003399; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v1:link {COLOR: #003399; TEXT-DECORATION: none}.v1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v2 {FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v2:link {COLOR: #303030; TEXT-DECORATION: none}.v3 {FONT-SIZE: 10px; COLOR: #4b4b4b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v3:link {COLOR: #303030; TEXT-DECORATION: none}.v3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v4:link {FONT-WEIGHT: bold; COLOR: #303030; TEXT-DECORATION: none}.v4:hover {FONT-WEIGHT: bold; COLOR: #9e0b0e; TEXT-DECORATION: underline}

Ruby In a Nutshell/1.1.htmProQuest Information and Learning Company

HomeDesktopBookshelfRecent SearchesRecent Pages Logout

Code Fragments OnlyAdvanced Search

Ruby in a Nutshell

CopyrightForewordPrefaceIntroductionRuby's EleganceRuby in ActionLanguage BasicsBuilt-in Library ReferenceStandard Library ReferenceRuby ToolsRuby UpdatesColophonIndex

View All TitlesApplied SciencesArtificial IntelligenceBusinessCertificationDatabasesDesktop ApplicationsDesktop PublishingE-CommerceEnterprise ComputingGraphicsHardwareHuman-Computer InteractionInternet/OnlineIT ManagementMarkup LanguagesMultimediaNetworkingOperating SystemsProgrammingSoftware Engineering

Author ISBN Title Publisher

Print E-Mail Add Bookmark

Ruby in a NutshellBy YukihiroMatsumoto

Chapter 1. Introduction

1.1 Ruby's Elegance

Ruby is a genuine object-oriented scripting language designed from the ground up to support the OOP model.

Most modern languages incorporate aspects of object-oriented programming. Because Ruby was designed from the beginning to support OOP, most programmers feel it is elegant, easy to use, and a pleasure to program. Everything in Ruby is an object; there's no exception.

While Ruby is object-oriented, you can also use Ruby to do procedural programming. But as you do, Ruby is secretly turning your nifty procedures into methods on a globally accessible object.

Throughout the development of the Ruby language, I've focused my energies on making programming faster and easier. To do so, I developed what I call the principle of least surprise. All features in Ruby, including object-oriented features, are designed to work as ordinary programmers (e.g., me) expect them to work. Here are some of those features:

Interpretive programming No compilation is needed; you can edit and feed your program to the interpreter. The faster development cycle helps you enjoy the programming process.

Dynamic programming Almost everything in Ruby is done at runtime. Types of variables and expressions are determined at runtime as are class and method definitions. You can even generate programs within programs and execute them.

Familiar syntax If you've been programming in Java, Perl, Python, C/C++, or even Smalltalk, Ruby's syntax is easy to learn. The following simple factorial function illustrates how easily you can decipher its meaning: def factorial(n) if n == 0 return 1 else return n * factorial(n-1) endend

Iterators The iterator feature for loop abstraction is built into the language, which means a block of code can be attached to a method call. The method can call back the block from within its execution. For example, Array has the each method to iterate over its contents. With this feature, you don't need to worry about the loop counter or boundary condition. ary = [1,2,3,4,5]ary.each do |i| puts 1*2end # prints 2,3,4,8,10 for each line

A block is used not only for loops. It can be used for various purposes including the select method of Array, which uses blocks to choose values that satisfy conditions from contents: ary = [1,2,3,4,5]ary = ary.select do |i| i %2 == 0end # returns array of even numbers.

Exceptions Just as you'd expect in a modern OOP language, Ruby provides language-level support for exception handling. For example, an attempt to open a file that doesn't exist raises an exception, so that your program doesn't run, assuming an unmet precondition. This feature obviously enhances the reliability of your programs. Exceptions can be caught explicitly using the rescue clause of the begin statement: begin f = open(path) rescue puts "#{path} does not exist." exit 1end

Class libraries Ruby comes with a strong set of bundled class libraries that cover a variety of domains, from basic datatypes (strings, arrays, and hashes) to networking and thread programming. The following program retrieves the current time string from the local host via a network socket connection: require "socket"print TCPSocket.open("localhost","daytime").gets

In addition to bundled libraries, if you go to http://www.ruby-lang.org/en/raa.html shows a list of the many unbundled useful libraries along with applications and documentation. Since Ruby is rather young, the number of libraries available is smaller than that of Perl, for example, but new libraries are becoming available each day.

Portable Ruby ports to many platforms, including Unix, DOS, Windows, OS/2, etc. Ruby programs run on many platforms without modification.

Garbage collection Object-oriented programming tends to allocate many objects during execution. Ruby's garbage collector recycles unused object automatically.

Built-in security check Ruby's taint model provides safety when handling untrusted data or programs.

Print E-Mail Add Bookmark

Top

[http://proquest.safaribooksonline.com/0596002149/ruby-CHP-1-SECT-1]

About Safari | Terms of Service | Privacy Policy | Contact Us | Help | Submit a ProblemCopyright 2002 Safari Tech Books Online. All rights reserved.75 Arlington Street, Floor 3Boston, MA 02116800-775-7330

Ruby In a Nutshell/1.2.files/arrow_right_red.gifRuby In a Nutshell/1.2.files/btn_next.gifRuby In a Nutshell/1.2.files/btn_prev.gifRuby In a Nutshell/1.2.files/docsafari.css.docBookTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPartTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPrefaceTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAppendixTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docChapterTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliographyTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docArticleTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docGlossaryTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSidebarTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif; TEXT-ALIGN: center}.docSection1Title {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliodivTitle {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBridgehead {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection2Title {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliosetTitle {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection3Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection4Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection5Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docFigureTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docExampleTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTocTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAbstractTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docQandasetTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docProcTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefsectTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docText {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docList {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docMonofont {FONT-FAMILY: Courier New,Courier,monospace}.docTableHeader {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableCell {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableFooter {FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefCell {FONT-SIZE: 17px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTextHighlight {FONT-WEIGHT: bold; COLOR: #cc0000}.docIndexterm {FONT-SIZE: 12px; COLOR: #a0a0a0}.docFootnote {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docItemizedlist {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNote {MARGIN-BOTTOM: 2em; MARGIN-LEFT: 2em; MARGIN-RIGHT: 2em; blockquote: 2em}.docNoteTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNormalTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTipTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docCautionsTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #cc0000; FONT-FAMILY: Arial,Helvetica,sans-serif}.docLink {COLOR: #003399; TEXT-DECORATION: none}.docLink:visited {COLOR: #3366cc; TEXT-DECORATION: none}.docLink:hover {COLOR: #000033; TEXT-DECORATION: underline}.docEmphasis {FONT-STYLE: italic}.docEmphBold {FONT-WEIGHT: bold}.docEmphStrong {FONT-WEIGHT: bold}.docEmphGray {COLOR: #c0c0c0}.docEmphMark {BACKGROUND-COLOR: #c0c0c0}.docEmphRev {COLOR: silver; BACKGROUND-COLOR: black}.docEmphStrike {TEXT-DECORATION: line-through}.docEmphUl {TEXT-DECORATION: underline}.docEmphCursor {TEXT-DECORATION: underline}.docEmphBoldItalic {FONT-WEIGHT: bold; FONT-STYLE: italic}.docEmphRoman {FONT-WEIGHT: normal; TEXT-TRANSFORM: none; FONT-STYLE: normal; FONT-VARIANT: normal; TEXT-DECORATION: none}.docEmphSmaller {FONT-SIZE: 75%; COLOR: #354278}.docEmphHyperlink {COLOR: black}.docCaps {TEXT-TRANSFORM: uppercase}.docStructname {FONT-VARIANT: small-caps}.docPubcolor {COLOR: #354278}H1 {COLOR: #354278}H2 {COLOR: #354278}H3 {COLOR: #354278}H4 {COLOR: #354278}H5 {COLOR: #354278}H6 {COLOR: #354278}PRE {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}TT {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}

Ruby In a Nutshell/1.2.files/down_arrow.gifRuby In a Nutshell/1.2.files/img_bookmarks.gifRuby In a Nutshell/1.2.files/img_email.gifRuby In a Nutshell/1.2.files/img_print.gifRuby In a Nutshell/1.2.files/jslredcurve.jpgRuby In a Nutshell/1.2.files/left_browse.gifRuby In a Nutshell/1.2.files/left_findbook.gifRuby In a Nutshell/1.2.files/left_note.gifRuby In a Nutshell/1.2.files/left_search.gifRuby In a Nutshell/1.2.files/left_tbl_conts.gifRuby In a Nutshell/1.2.files/pixel.htm

Looking for Something? We're sorry. The Web address you entered is not a functioning page on our site. Click here to visit the Safari home page

Ruby In a Nutshell/1.2.files/pqlogo.gifRuby In a Nutshell/1.2.files/ruby_icon.gifRuby In a Nutshell/1.2.files/ruby_xs.gifRuby In a Nutshell/1.2.files/SafariLogo.gifRuby In a Nutshell/1.2.files/sign_minus.gifRuby In a Nutshell/1.2.files/sign_plus.gifRuby In a Nutshell/1.2.files/spacer.gifRuby In a Nutshell/1.2.files/style.css.a1 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline}.a1:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a2 {FONT-SIZE: 8pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a2:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a2:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a3 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a3:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a4 {FONT-SIZE: 10pt; COLOR: #222222; LINE-HEIGHT: 18px; FONT-FAMILY: Arial, Helvetica, sans-serif}.AdvancedSearchTextHighlight {BACKGROUND-COLOR: #f7e583}.bg {BACKGROUND-COLOR: #ffffff}BODY {COLOR: black; BACKGROUND-COLOR: white}.DefaultPageHeadline {FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 14pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.DefaultPageText {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.dlg {BACKGROUND-COLOR: #faf9e7}.entrybox1 {BORDER-RIGHT: #e7d68e 1px solid; BORDER-TOP: #e7d68e 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #e7d68e 1px solid; BORDER-BOTTOM: #e7d68e 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif}.FAQBoxHeadline {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #cc0033; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxQuestion {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxAnswer {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #4b4b4b; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.GroupNotesBorder {BACKGROUND-COLOR: #d0c7de}.GroupNotesEvenRows {BACKGROUND-COLOR: #f1eff5}.GroupNotesOddRows {}.GroupNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.hdr1 {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: center}.ListByCatBorder {BACKGROUND-COLOR: #d0c7dc}.ListByCatEvenRows {FONT-SIZE: 8pt}.ListByCatOddRows {}.ListByCatTableHeading {BACKGROUND-COLOR: #f5deb3}.logout {FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.logout:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.menuLeft {BACKGROUND-COLOR: #ffe583}.menuRight {BACKGROUND-COLOR: #ffcc00}.MyBookmarksBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookmarksEvenRows {BACKGROUND-COLOR: #f1eff5}.MyBookmarksOddRows {}.MyBookmarksTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyBookshelfBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookshelfSpacer {BACKGROUND-COLOR: #eddfdf}.MyBookshelfEvenRows {}.MyBookshelfOddRows {}.MyBookshelfTableHeading {}.MyNotesBorder {BACKGROUND-COLOR: #d0c7dc}.MyNotesEvenRows {}.MyNotesOddRows {}.MyNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentPagesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentPagesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentPagesOddRows {}.MyRecentPagesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentSearchesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentSearchesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentSearchesOddRows {}.MyRecentSearchesTableHeading {BACKGROUND-COLOR: #ddd9e7}.n1 {PADDING-RIGHT: 7px; PADDING-LEFT: 7px; FONT-SIZE: 8pt; PADDING-BOTTOM: 7px; COLOR: #303030; LINE-HEIGHT: 16px; PADDING-TOP: 7px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.navbtn {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.navbtn:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.navbtnSel {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9e2f37; TEXT-DECORATION: none}.NewThisWeekBorder {BACKGROUND-COLOR: #d0c7de}.NewThisWeekEvenRows {}.NewThisWeekOddRows {}.NewThisWeekTableHeading {BACKGROUND-COLOR: #ddd9e7}.PQBannerText {FONT-SIZE: 12pt; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.PreviewTableTitleBackground {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #f3e583; LINE-HEIGHT: 20px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #cc0000; TEXT-ALIGN: left; TEXT-DECORATION: none; font-weither: bold}.PreviewTableBodyBackground {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffd2d3; TEXT-DECORATION: none}.printhdr {FONT-SIZE: 12pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.PublicNotesBorder {BACKGROUND-COLOR: #d0c7de}.PublicNotesEvenRows {}.PublicNotesOddRows {}.PublicNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.RecommendedTitlesBorder {BACKGROUND-COLOR: #d0c7dc}.RecommendedTitlesEvenRows {}.RecommendedTitlesOddRows {}.RecommendedTitlesTableHeading {BACKGROUND-COLOR: #ddd9e7}.SearchResultBorder {BACKGROUND-COLOR: #d0c7de}.SearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.SectionSearchResultBorder {BACKGROUND-COLOR: #f5deb3}.SectionSearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SectionSearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SectionSearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.t1 {FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial, Helvetica, sans-serif}.t2 {FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t3 {FONT-WEIGHT: bold; FONT-SIZE: 8.5pt; COLOR: #ffff7b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9d3036; TEXT-DECORATION: none}.t4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t5 {FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #cc0000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f7e583; TEXT-DECORATION: none}.TextFrame {BACKGROUND-COLOR: #d1c8a1}.toc {BACKGROUND-COLOR: #ffffc1}.Top5Border {BACKGROUND-COLOR: #d0c7de}.Top5EvenRows {}.Top5OddRows {}.Top5TableHeading {BACKGROUND-COLOR: #ddd9e7}.toplogo {BACKGROUND-COLOR: #ffcc00}.topmenu {BACKGROUND-COLOR: #ffcc00}.v1 {FONT-SIZE: 8pt; COLOR: #003399; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v1:link {COLOR: #003399; TEXT-DECORATION: none}.v1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v2 {FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v2:link {COLOR: #303030; TEXT-DECORATION: none}.v3 {FONT-SIZE: 10px; COLOR: #4b4b4b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v3:link {COLOR: #303030; TEXT-DECORATION: none}.v3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v4:link {FONT-WEIGHT: bold; COLOR: #303030; TEXT-DECORATION: none}.v4:hover {FONT-WEIGHT: bold; COLOR: #9e0b0e; TEXT-DECORATION: underline}

Ruby In a Nutshell/1.2.htmProQuest Information and Learning Company

HomeDesktopBookshelfRecent SearchesRecent Pages Logout

Code Fragments OnlyAdvanced Search

Ruby in a Nutshell

CopyrightForewordPrefaceIntroductionRuby's EleganceRuby in ActionLanguage BasicsBuilt-in Library ReferenceStandard Library ReferenceRuby ToolsRuby UpdatesColophonIndex

View All TitlesApplied SciencesArtificial IntelligenceBusinessCertificationDatabasesDesktop ApplicationsDesktop PublishingE-CommerceEnterprise ComputingGraphicsHardwareHuman-Computer InteractionInternet/OnlineIT ManagementMarkup LanguagesMultimediaNetworkingOperating SystemsProgrammingSoftware Engineering

Author ISBN Title Publisher

Print E-Mail Add Bookmark

Ruby in a NutshellBy YukihiroMatsumoto

Chapter 1. Introduction

1.2 Ruby in Action

Like Python or Perl, Ruby is a scripting language. Scripting languages offer some great advantages over other languages, such as C++ and Java. They allow programmers to show off a lot of programming concepts and principles in a relatively small amount of space. Ruby does this, while maintaining code readability. # the "Hello World."print "Hello World.\n"

# output file contents in reverse orderprint File::readlines(path).reverse

# print lines that contains the word "Ruby".while line = gets( ) if /Ruby/ =~ line print line endend

# class and methodsclass Animal def legs puts 4 endend

class Dog'hello', 'command'=>'exit').packTk.mainloop

Ruby In a Nutshell/1.2.htm.bakProQuest Information and Learning Company

HomeDesktopBookshelfRecent SearchesRecent Pages Logout

Code Fragments OnlyAdvanced Search

Ruby in a Nutshell

CopyrightForewordPrefaceIntroductionRuby's EleganceRuby in ActionLanguage BasicsBuilt-in Library ReferenceStandard Library ReferenceRuby ToolsRuby UpdatesColophonIndex

View All TitlesApplied SciencesArtificial IntelligenceBusinessCertificationDatabasesDesktop ApplicationsDesktop PublishingE-CommerceEnterprise ComputingGraphicsHardwareHuman-Computer InteractionInternet/OnlineIT ManagementMarkup LanguagesMultimediaNetworkingOperating SystemsProgrammingSoftware Engineering

Author ISBN Title Publisher

Print E-Mail Add Bookmark

Ruby in a NutshellBy YukihiroMatsumoto

Chapter 1. Introduction

1.2 Ruby in Action

Like Python or Perl, Ruby is a scripting language. Scripting languages offer some great advantages over other languages, such as C++ and Java. They allow programmers to show off a lot of programming concepts and principles in a relatively small amount of space. Ruby does this, while maintaining code readability. # the "Hello World."print "Hello World.\n"

# output file contents in reverse orderprint File::readlines(path).reverse

# print lines that contains the word "Ruby".while line = gets( ) if /Ruby/ =~ line print line endend

# class and methodsclass Animal def legs puts 4 endend

class Dog'hello', 'command'=>'exit').packTk.mainloop

Print E-Mail Add Bookmark

Top

[http://proquest.safaribooksonline.com/0596002149/ruby-CHP-1-SECT-2]

About Safari | Terms of Service | Privacy Policy | Contact Us | Help | Submit a ProblemCopyright 2002 Safari Tech Books Online. All rights reserved.75 Arlington Street, Floor 3Boston, MA 02116800-775-7330

Ruby In a Nutshell/1.files/btn_next.gifRuby In a Nutshell/1.files/btn_prev.gifRuby In a Nutshell/1.files/docsafari.css.docBookTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPartTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPrefaceTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAppendixTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docChapterTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliographyTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docArticleTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docGlossaryTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSidebarTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif; TEXT-ALIGN: center}.docSection1Title {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliodivTitle {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBridgehead {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection2Title {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliosetTitle {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection3Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection4Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection5Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docFigureTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docExampleTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTocTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAbstractTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docQandasetTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docProcTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefsectTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docText {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docList {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docMonofont {FONT-FAMILY: Courier New,Courier,monospace}.docTableHeader {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableCell {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableFooter {FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefCell {FONT-SIZE: 17px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTextHighlight {FONT-WEIGHT: bold; COLOR: #cc0000}.docIndexterm {FONT-SIZE: 12px; COLOR: #a0a0a0}.docFootnote {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docItemizedlist {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNote {MARGIN-BOTTOM: 2em; MARGIN-LEFT: 2em; MARGIN-RIGHT: 2em; blockquote: 2em}.docNoteTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNormalTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTipTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docCautionsTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #cc0000; FONT-FAMILY: Arial,Helvetica,sans-serif}.docLink {COLOR: #003399; TEXT-DECORATION: none}.docLink:visited {COLOR: #3366cc; TEXT-DECORATION: none}.docLink:hover {COLOR: #000033; TEXT-DECORATION: underline}.docEmphasis {FONT-STYLE: italic}.docEmphBold {FONT-WEIGHT: bold}.docEmphStrong {FONT-WEIGHT: bold}.docEmphGray {COLOR: #c0c0c0}.docEmphMark {BACKGROUND-COLOR: #c0c0c0}.docEmphRev {COLOR: silver; BACKGROUND-COLOR: black}.docEmphStrike {TEXT-DECORATION: line-through}.docEmphUl {TEXT-DECORATION: underline}.docEmphCursor {TEXT-DECORATION: underline}.docEmphBoldItalic {FONT-WEIGHT: bold; FONT-STYLE: italic}.docEmphRoman {FONT-WEIGHT: normal; TEXT-TRANSFORM: none; FONT-STYLE: normal; FONT-VARIANT: normal; TEXT-DECORATION: none}.docEmphSmaller {FONT-SIZE: 75%; COLOR: #354278}.docEmphHyperlink {COLOR: black}.docCaps {TEXT-TRANSFORM: uppercase}.docStructname {FONT-VARIANT: small-caps}.docPubcolor {COLOR: #354278}H1 {COLOR: #354278}H2 {COLOR: #354278}H3 {COLOR: #354278}H4 {COLOR: #354278}H5 {COLOR: #354278}H6 {COLOR: #354278}PRE {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}TT {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}

Ruby In a Nutshell/1.files/down_arrow.gifRuby In a Nutshell/1.files/img_bookmarks.gifRuby In a Nutshell/1.files/img_email.gifRuby In a Nutshell/1.files/img_print.gifRuby In a Nutshell/1.files/jslredcurve.jpgRuby In a Nutshell/1.files/left_browse.gifRuby In a Nutshell/1.files/left_findbook.gifRuby In a Nutshell/1.files/left_note.gifRuby In a Nutshell/1.files/left_search.gifRuby In a Nutshell/1.files/left_tbl_conts.gifRuby In a Nutshell/1.files/pqlogo.gifRuby In a Nutshell/1.files/ruby_icon.gifRuby In a Nutshell/1.files/ruby_xs.gifRuby In a Nutshell/1.files/SafariLogo.gifRuby In a Nutshell/1.files/sign_plus.gifRuby In a Nutshell/1.files/spacer.gifRuby In a Nutshell/1.files/style.css.a1 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline}.a1:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a2 {FONT-SIZE: 8pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a2:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a2:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a3 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a3:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a4 {FONT-SIZE: 10pt; COLOR: #222222; LINE-HEIGHT: 18px; FONT-FAMILY: Arial, Helvetica, sans-serif}.AdvancedSearchTextHighlight {BACKGROUND-COLOR: #f7e583}.bg {BACKGROUND-COLOR: #ffffff}BODY {COLOR: black; BACKGROUND-COLOR: white}.DefaultPageHeadline {FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 14pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.DefaultPageText {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.dlg {BACKGROUND-COLOR: #faf9e7}.entrybox1 {BORDER-RIGHT: #e7d68e 1px solid; BORDER-TOP: #e7d68e 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #e7d68e 1px solid; BORDER-BOTTOM: #e7d68e 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif}.FAQBoxHeadline {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #cc0033; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxQuestion {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxAnswer {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #4b4b4b; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.GroupNotesBorder {BACKGROUND-COLOR: #d0c7de}.GroupNotesEvenRows {BACKGROUND-COLOR: #f1eff5}.GroupNotesOddRows {}.GroupNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.hdr1 {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: center}.ListByCatBorder {BACKGROUND-COLOR: #d0c7dc}.ListByCatEvenRows {FONT-SIZE: 8pt}.ListByCatOddRows {}.ListByCatTableHeading {BACKGROUND-COLOR: #f5deb3}.logout {FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.logout:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.menuLeft {BACKGROUND-COLOR: #ffe583}.menuRight {BACKGROUND-COLOR: #ffcc00}.MyBookmarksBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookmarksEvenRows {BACKGROUND-COLOR: #f1eff5}.MyBookmarksOddRows {}.MyBookmarksTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyBookshelfBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookshelfSpacer {BACKGROUND-COLOR: #eddfdf}.MyBookshelfEvenRows {}.MyBookshelfOddRows {}.MyBookshelfTableHeading {}.MyNotesBorder {BACKGROUND-COLOR: #d0c7dc}.MyNotesEvenRows {}.MyNotesOddRows {}.MyNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentPagesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentPagesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentPagesOddRows {}.MyRecentPagesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentSearchesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentSearchesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentSearchesOddRows {}.MyRecentSearchesTableHeading {BACKGROUND-COLOR: #ddd9e7}.n1 {PADDING-RIGHT: 7px; PADDING-LEFT: 7px; FONT-SIZE: 8pt; PADDING-BOTTOM: 7px; COLOR: #303030; LINE-HEIGHT: 16px; PADDING-TOP: 7px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.navbtn {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.navbtn:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.navbtnSel {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9e2f37; TEXT-DECORATION: none}.NewThisWeekBorder {BACKGROUND-COLOR: #d0c7de}.NewThisWeekEvenRows {}.NewThisWeekOddRows {}.NewThisWeekTableHeading {BACKGROUND-COLOR: #ddd9e7}.PQBannerText {FONT-SIZE: 12pt; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.PreviewTableTitleBackground {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #f3e583; LINE-HEIGHT: 20px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #cc0000; TEXT-ALIGN: left; TEXT-DECORATION: none; font-weither: bold}.PreviewTableBodyBackground {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffd2d3; TEXT-DECORATION: none}.printhdr {FONT-SIZE: 12pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.PublicNotesBorder {BACKGROUND-COLOR: #d0c7de}.PublicNotesEvenRows {}.PublicNotesOddRows {}.PublicNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.RecommendedTitlesBorder {BACKGROUND-COLOR: #d0c7dc}.RecommendedTitlesEvenRows {}.RecommendedTitlesOddRows {}.RecommendedTitlesTableHeading {BACKGROUND-COLOR: #ddd9e7}.SearchResultBorder {BACKGROUND-COLOR: #d0c7de}.SearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.SectionSearchResultBorder {BACKGROUND-COLOR: #f5deb3}.SectionSearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SectionSearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SectionSearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.t1 {FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial, Helvetica, sans-serif}.t2 {FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t3 {FONT-WEIGHT: bold; FONT-SIZE: 8.5pt; COLOR: #ffff7b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9d3036; TEXT-DECORATION: none}.t4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t5 {FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #cc0000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f7e583; TEXT-DECORATION: none}.TextFrame {BACKGROUND-COLOR: #d1c8a1}.toc {BACKGROUND-COLOR: #ffffc1}.Top5Border {BACKGROUND-COLOR: #d0c7de}.Top5EvenRows {}.Top5OddRows {}.Top5TableHeading {BACKGROUND-COLOR: #ddd9e7}.toplogo {BACKGROUND-COLOR: #ffcc00}.topmenu {BACKGROUND-COLOR: #ffcc00}.v1 {FONT-SIZE: 8pt; COLOR: #003399; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v1:link {COLOR: #003399; TEXT-DECORATION: none}.v1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v2 {FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v2:link {COLOR: #303030; TEXT-DECORATION: none}.v3 {FONT-SIZE: 10px; COLOR: #4b4b4b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v3:link {COLOR: #303030; TEXT-DECORATION: none}.v3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v4:link {FONT-WEIGHT: bold; COLOR: #303030; TEXT-DECORATION: none}.v4:hover {FONT-WEIGHT: bold; COLOR: #9e0b0e; TEXT-DECORATION: underline}

Ruby In a Nutshell/1.htmProQuest Information and Learning Company

HomeDesktopBookshelfRecent SearchesRecent Pages Logout

Code Fragments OnlyAdvanced Search

Ruby in a Nutshell

CopyrightForewordPrefaceIntroductionLanguage BasicsBuilt-in Library ReferenceStandard Library ReferenceRuby ToolsRuby UpdatesColophonIndex

View All TitlesApplied SciencesArtificial IntelligenceBusinessCertificationDatabasesDesktop ApplicationsDesktop PublishingE-CommerceEnterprise ComputingGraphicsHardwareHuman-Computer InteractionInternet/OnlineIT ManagementMarkup LanguagesMultimediaNetworkingOperating SystemsProgrammingSoftware Engineering

Author ISBN Title Publisher

Print E-Mail Add Bookmark

Ruby in a NutshellBy YukihiroMatsumoto

Chapter 1. Introduction

Ruby has been readily adopted by programmers in Japan and has had much documentation written for it in Japanese. As programmers outside of Japan learn about the benefits of Ruby, there is a growing need for documentation in English. The first book I wrote for O'Reilly, Ruby Pocket Reference, was in Japanese. Since then Ruby has changed significantly. To meet the needs of non-Japanese programmers, we translated, updated, and expanded Ruby Pocket Reference into Ruby in a Nutshell.

Ruby is an object-oriented programming language that makes programming both enjoyable and fast. With the easy-to-use interpreter, familiar syntax, complete object-oriented functionality, and powerful class libraries, Ruby has become a language that can be applied to a broad range of fields from text processing and CGI scripts to professional, large-scale programs.

While Ruby is easy to learn, there are many details that you can't be expected to remember. This book presents those details in a clean and concise format. It is a reference to keep next to your desktop or laptop, designed to make Ruby even easier to use.

For those of you who are new to Ruby, there are several online tutorials available to get you started: Ruby's home page (http://www.ruby-lang.org/) is a good starting pointing as it offers Ruby tutorials and the Ruby Language FAQ.

Print E-Mail Add Bookmark

Top

[http://proquest.safaribooksonline.com/0596002149/ruby-CHP-1]

About Safari | Terms of Service | Privacy Policy | Contact Us | Help | Submit a ProblemCopyright 2002 Safari Tech Books Online. All rights reserved.75 Arlington Street, Floor 3Boston, MA 02116800-775-7330

Ruby In a Nutshell/2.1.files/arrow_right_red.gifRuby In a Nutshell/2.1.files/btn_next.gifRuby In a Nutshell/2.1.files/btn_prev.gifRuby In a Nutshell/2.1.files/docsafari.css.docBookTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPartTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPrefaceTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAppendixTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docChapterTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliographyTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docArticleTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docGlossaryTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSidebarTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif; TEXT-ALIGN: center}.docSection1Title {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliodivTitle {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBridgehead {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection2Title {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliosetTitle {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection3Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection4Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection5Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docFigureTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docExampleTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTocTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAbstractTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docQandasetTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docProcTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefsectTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docText {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docList {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docMonofont {FONT-FAMILY: Courier New,Courier,monospace}.docTableHeader {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableCell {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableFooter {FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefCell {FONT-SIZE: 17px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTextHighlight {FONT-WEIGHT: bold; COLOR: #cc0000}.docIndexterm {FONT-SIZE: 12px; COLOR: #a0a0a0}.docFootnote {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docItemizedlist {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNote {MARGIN-BOTTOM: 2em; MARGIN-LEFT: 2em; MARGIN-RIGHT: 2em; blockquote: 2em}.docNoteTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNormalTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTipTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docCautionsTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #cc0000; FONT-FAMILY: Arial,Helvetica,sans-serif}.docLink {COLOR: #003399; TEXT-DECORATION: none}.docLink:visited {COLOR: #3366cc; TEXT-DECORATION: none}.docLink:hover {COLOR: #000033; TEXT-DECORATION: underline}.docEmphasis {FONT-STYLE: italic}.docEmphBold {FONT-WEIGHT: bold}.docEmphStrong {FONT-WEIGHT: bold}.docEmphGray {COLOR: #c0c0c0}.docEmphMark {BACKGROUND-COLOR: #c0c0c0}.docEmphRev {COLOR: silver; BACKGROUND-COLOR: black}.docEmphStrike {TEXT-DECORATION: line-through}.docEmphUl {TEXT-DECORATION: underline}.docEmphCursor {TEXT-DECORATION: underline}.docEmphBoldItalic {FONT-WEIGHT: bold; FONT-STYLE: italic}.docEmphRoman {FONT-WEIGHT: normal; TEXT-TRANSFORM: none; FONT-STYLE: normal; FONT-VARIANT: normal; TEXT-DECORATION: none}.docEmphSmaller {FONT-SIZE: 75%; COLOR: #354278}.docEmphHyperlink {COLOR: black}.docCaps {TEXT-TRANSFORM: uppercase}.docStructname {FONT-VARIANT: small-caps}.docPubcolor {COLOR: #354278}H1 {COLOR: #354278}H2 {COLOR: #354278}H3 {COLOR: #354278}H4 {COLOR: #354278}H5 {COLOR: #354278}H6 {COLOR: #354278}PRE {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}TT {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}

Ruby In a Nutshell/2.1.files/down_arrow.gifRuby In a Nutshell/2.1.files/img_bookmarks.gifRuby In a Nutshell/2.1.files/img_email.gifRuby In a Nutshell/2.1.files/img_print.gifRuby In a Nutshell/2.1.files/jslredcurve.jpgRuby In a Nutshell/2.1.files/left_browse.gifRuby In a Nutshell/2.1.files/left_findbook.gifRuby In a Nutshell/2.1.files/left_note.gifRuby In a Nutshell/2.1.files/left_search.gifRuby In a Nutshell/2.1.files/left_tbl_conts.gifRuby In a Nutshell/2.1.files/pixel.htm

Looking for Something? We're sorry. The Web address you entered is not a functioning page on our site. Click here to visit the Safari home page

Ruby In a Nutshell/2.1.files/pqlogo.gifRuby In a Nutshell/2.1.files/ruby_icon.gifRuby In a Nutshell/2.1.files/ruby_xs.gifRuby In a Nutshell/2.1.files/SafariLogo.gifRuby In a Nutshell/2.1.files/sign_minus.gifRuby In a Nutshell/2.1.files/sign_plus.gifRuby In a Nutshell/2.1.files/spacer.gifRuby In a Nutshell/2.1.files/style.css.a1 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline}.a1:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a2 {FONT-SIZE: 8pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a2:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a2:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a3 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a3:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a4 {FONT-SIZE: 10pt; COLOR: #222222; LINE-HEIGHT: 18px; FONT-FAMILY: Arial, Helvetica, sans-serif}.AdvancedSearchTextHighlight {BACKGROUND-COLOR: #f7e583}.bg {BACKGROUND-COLOR: #ffffff}BODY {COLOR: black; BACKGROUND-COLOR: white}.DefaultPageHeadline {FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 14pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.DefaultPageText {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.dlg {BACKGROUND-COLOR: #faf9e7}.entrybox1 {BORDER-RIGHT: #e7d68e 1px solid; BORDER-TOP: #e7d68e 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #e7d68e 1px solid; BORDER-BOTTOM: #e7d68e 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif}.FAQBoxHeadline {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #cc0033; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxQuestion {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxAnswer {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #4b4b4b; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.GroupNotesBorder {BACKGROUND-COLOR: #d0c7de}.GroupNotesEvenRows {BACKGROUND-COLOR: #f1eff5}.GroupNotesOddRows {}.GroupNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.hdr1 {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: center}.ListByCatBorder {BACKGROUND-COLOR: #d0c7dc}.ListByCatEvenRows {FONT-SIZE: 8pt}.ListByCatOddRows {}.ListByCatTableHeading {BACKGROUND-COLOR: #f5deb3}.logout {FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.logout:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.menuLeft {BACKGROUND-COLOR: #ffe583}.menuRight {BACKGROUND-COLOR: #ffcc00}.MyBookmarksBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookmarksEvenRows {BACKGROUND-COLOR: #f1eff5}.MyBookmarksOddRows {}.MyBookmarksTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyBookshelfBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookshelfSpacer {BACKGROUND-COLOR: #eddfdf}.MyBookshelfEvenRows {}.MyBookshelfOddRows {}.MyBookshelfTableHeading {}.MyNotesBorder {BACKGROUND-COLOR: #d0c7dc}.MyNotesEvenRows {}.MyNotesOddRows {}.MyNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentPagesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentPagesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentPagesOddRows {}.MyRecentPagesTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyRecentSearchesBorder {BACKGROUND-COLOR: #d0c7de}.MyRecentSearchesEvenRows {BACKGROUND-COLOR: #f1eff5}.MyRecentSearchesOddRows {}.MyRecentSearchesTableHeading {BACKGROUND-COLOR: #ddd9e7}.n1 {PADDING-RIGHT: 7px; PADDING-LEFT: 7px; FONT-SIZE: 8pt; PADDING-BOTTOM: 7px; COLOR: #303030; LINE-HEIGHT: 16px; PADDING-TOP: 7px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.navbtn {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.navbtn:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.navbtnSel {FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9e2f37; TEXT-DECORATION: none}.NewThisWeekBorder {BACKGROUND-COLOR: #d0c7de}.NewThisWeekEvenRows {}.NewThisWeekOddRows {}.NewThisWeekTableHeading {BACKGROUND-COLOR: #ddd9e7}.PQBannerText {FONT-SIZE: 12pt; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.PreviewTableTitleBackground {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #f3e583; LINE-HEIGHT: 20px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #cc0000; TEXT-ALIGN: left; TEXT-DECORATION: none; font-weither: bold}.PreviewTableBodyBackground {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffd2d3; TEXT-DECORATION: none}.printhdr {FONT-SIZE: 12pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.PublicNotesBorder {BACKGROUND-COLOR: #d0c7de}.PublicNotesEvenRows {}.PublicNotesOddRows {}.PublicNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.RecommendedTitlesBorder {BACKGROUND-COLOR: #d0c7dc}.RecommendedTitlesEvenRows {}.RecommendedTitlesOddRows {}.RecommendedTitlesTableHeading {BACKGROUND-COLOR: #ddd9e7}.SearchResultBorder {BACKGROUND-COLOR: #d0c7de}.SearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.SectionSearchResultBorder {BACKGROUND-COLOR: #f5deb3}.SectionSearchResultEvenRows {BACKGROUND-COLOR: #ffffff}.SectionSearchResultOddRows {BACKGROUND-COLOR: #faf9e7}.SectionSearchResultTableHeading {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f5deb3; TEXT-ALIGN: center}.t1 {FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial, Helvetica, sans-serif}.t2 {FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t3 {FONT-WEIGHT: bold; FONT-SIZE: 8.5pt; COLOR: #ffff7b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #9d3036; TEXT-DECORATION: none}.t4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.t5 {FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #cc0000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #f7e583; TEXT-DECORATION: none}.TextFrame {BACKGROUND-COLOR: #d1c8a1}.toc {BACKGROUND-COLOR: #ffffc1}.Top5Border {BACKGROUND-COLOR: #d0c7de}.Top5EvenRows {}.Top5OddRows {}.Top5TableHeading {BACKGROUND-COLOR: #ddd9e7}.toplogo {BACKGROUND-COLOR: #ffcc00}.topmenu {BACKGROUND-COLOR: #ffcc00}.v1 {FONT-SIZE: 8pt; COLOR: #003399; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v1:link {COLOR: #003399; TEXT-DECORATION: none}.v1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v2 {FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v2:link {COLOR: #303030; TEXT-DECORATION: none}.v3 {FONT-SIZE: 10px; COLOR: #4b4b4b; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v3:link {COLOR: #303030; TEXT-DECORATION: none}.v3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.v4 {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 16px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.v4:link {FONT-WEIGHT: bold; COLOR: #303030; TEXT-DECORATION: none}.v4:hover {FONT-WEIGHT: bold; COLOR: #9e0b0e; TEXT-DECORATION: underline}

Ruby In a Nutshell/2.1.files/tip_yellow.gifRuby In a Nutshell/2.1.htmProQuest Information and Learning Company

HomeDesktopBookshelfRecent SearchesRecent Pages Logout

Code Fragments OnlyAdvanced Search

Ruby in a Nutshell

CopyrightForewordPrefaceIntroductionLanguage BasicsCommand-Line OptionsEnvironment VariablesLexical ConventionsLiteralsVariablesOperatorsMethodsControl StructuresObject-Oriented ProgrammingSecurityBuilt-in Library ReferenceStandard Library ReferenceRuby ToolsRuby UpdatesColophonIndex

View All TitlesApplied SciencesArtificial IntelligenceBusinessCertificationDatabasesDesktop ApplicationsDesktop PublishingE-CommerceEnterprise ComputingGraphicsHardwareHuman-Computer InteractionInternet/OnlineIT ManagementMarkup LanguagesMultimediaNetworkingOperating SystemsProgrammingSoftware Engineering

Author ISBN Title Publisher

Print E-Mail Add Bookmark

Ruby in a NutshellBy YukihiroMatsumoto

Chapter 2. Language Basics

2.1 Command-Line Options

Like most scripting language interpreters, Ruby is generally run from the command line. The interpreter can be invoked with the following options, which control the environment and behavior of the interpreter itself: ruby [ options ] [] [ programfile ] [ argument... ]

-a Used with -n or -p to split each line. Split output is stored in $F.

-c Checks syntax only, without executing program.

-C dir Changes directory before executing (equivalent to -X).

-d Enables debug mode (equivalent to -debug). Sets $DEBUG to true.

-e prog Specifies prog as the program from the command line. Specify multiple -e options for multiline programs.

-F pat Specifies pat as the default separator pattern ($;) used by split.

-h Displays an overview of command-line options (equivalent to -help).

-i [ ext] Overwrites the file contents with program output. The original file is saved with the extension ext. If ext isn't specified, the original file is deleted.

-I dir Adds dir as the directory for loading libraries.

-K [ kcode] Specifies the multibyte character set code (e or E for EUC (extended Unix code); s or S for SJIS (Shift-JIS); u or U for UTF-8; and a, A, n, or N for ASCII).

-l Enables automatic line-end processing. Chops a newline from input lines and appends a newline to output lines.

-n Places code within an input loop (as in while gets; ... end).

-0[ octal] Sets default record separator ($/) as an octal. Defaults to \0 if octal not specified.

-p Places code within an input loop. Writes $_ for each iteration.

-r lib Uses require to load lib as a library before executing.

-s Interprets any arguments between the program name and filename arguments fitting the pattern -xxx as a switch and defines the corresponding variable.

$xxx.-S Searches for a program using the environment variable PATH.

-T [level] Sets the level for tainting checks (1 if level not specified). Sets the $SAFE variable.

-v Displays version and enables verbose mode (equivalent to --verbose).

-w Enables verbose mode. If programfile not specified, reads from STDIN.

-x [ dir] Strips text before #!ruby line. Changes directory to dir before executing if dir is specified.

-X dir Changes directory before executing (equivalent to -c).

-y Enables parser debug mode (equivalent to --yydebug).

--copyright Displays copyright notice.

--debug Enables debug mode (equivalent to -d).

--help Displays an overview of command-line options (equivalent to -h).

--version Displays version.

--verbose Enables verbose mode (equivalent to -v). Sets $VERBOSE to true.

--yydebug Enables parser debug mode (equivalent to -y).

Single character command-line options can be combined. The following two lines express the same meaning: ruby -ne 'print if /Ruby/' /usr/share/dict/wordsruby -n -e 'print if /Ruby/' /usr/share/dict/words

Print E-Mail Add Bookmark

Top

[http://proquest.safaribooksonline.com/0596002149/ruby-CHP-2-SECT-1]

About Safari | Terms of Service | Privacy Policy | Contact Us | Help | Submit a ProblemCopyright 2002 Safari Tech Books Online. All rights reserved.75 Arlington Street, Floor 3Boston, MA 02116800-775-7330

Ruby In a Nutshell/2.10.files/arrow_right_red.gifRuby In a Nutshell/2.10.files/btn_next.gifRuby In a Nutshell/2.10.files/btn_prev.gifRuby In a Nutshell/2.10.files/docsafari.css.docBookTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPartTitle {FONT-WEIGHT: bold; FONT-SIZE: 24px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docPrefaceTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAppendixTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docChapterTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliographyTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docArticleTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docGlossaryTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSidebarTitle {FONT-SIZE: 22px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif; TEXT-ALIGN: center}.docSection1Title {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliodivTitle {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBridgehead {FONT-SIZE: 20px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection2Title {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docBibliosetTitle {FONT-SIZE: 17px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection3Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection4Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docSection5Title {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docFigureTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docExampleTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTocTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docAbstractTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docQandasetTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docProcTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefsectTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docText {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docList {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docMonofont {FONT-FAMILY: Courier New,Courier,monospace}.docTableHeader {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableCell {FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTableFooter {FONT-SIZE: 10px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docRefCell {FONT-SIZE: 17px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTextHighlight {FONT-WEIGHT: bold; COLOR: #cc0000}.docIndexterm {FONT-SIZE: 12px; COLOR: #a0a0a0}.docFootnote {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docItemizedlist {FONT-SIZE: 10px; COLOR: #606060; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNote {MARGIN-BOTTOM: 2em; MARGIN-LEFT: 2em; MARGIN-RIGHT: 2em; blockquote: 2em}.docNoteTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: black; FONT-FAMILY: Arial,Helvetica,sans-serif}.docNormalTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docTipTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #354278; FONT-FAMILY: Arial,Helvetica,sans-serif}.docCautionsTitle {FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #cc0000; FONT-FAMILY: Arial,Helvetica,sans-serif}.docLink {COLOR: #003399; TEXT-DECORATION: none}.docLink:visited {COLOR: #3366cc; TEXT-DECORATION: none}.docLink:hover {COLOR: #000033; TEXT-DECORATION: underline}.docEmphasis {FONT-STYLE: italic}.docEmphBold {FONT-WEIGHT: bold}.docEmphStrong {FONT-WEIGHT: bold}.docEmphGray {COLOR: #c0c0c0}.docEmphMark {BACKGROUND-COLOR: #c0c0c0}.docEmphRev {COLOR: silver; BACKGROUND-COLOR: black}.docEmphStrike {TEXT-DECORATION: line-through}.docEmphUl {TEXT-DECORATION: underline}.docEmphCursor {TEXT-DECORATION: underline}.docEmphBoldItalic {FONT-WEIGHT: bold; FONT-STYLE: italic}.docEmphRoman {FONT-WEIGHT: normal; TEXT-TRANSFORM: none; FONT-STYLE: normal; FONT-VARIANT: normal; TEXT-DECORATION: none}.docEmphSmaller {FONT-SIZE: 75%; COLOR: #354278}.docEmphHyperlink {COLOR: black}.docCaps {TEXT-TRANSFORM: uppercase}.docStructname {FONT-VARIANT: small-caps}.docPubcolor {COLOR: #354278}H1 {COLOR: #354278}H2 {COLOR: #354278}H3 {COLOR: #354278}H4 {COLOR: #354278}H5 {COLOR: #354278}H6 {COLOR: #354278}PRE {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}TT {FONT-SIZE: 15px; COLOR: #8f8878; FONT-FAMILY: Courier New,Courier,monospace}

Ruby In a Nutshell/2.10.files/down_arrow.gifRuby In a Nutshell/2.10.files/img_bookmarks.gifRuby In a Nutshell/2.10.files/img_email.gifRuby In a Nutshell/2.10.files/img_print.gifRuby In a Nutshell/2.10.files/jslredcurve.jpgRuby In a Nutshell/2.10.files/left_browse.gifRuby In a Nutshell/2.10.files/left_findbook.gifRuby In a Nutshell/2.10.files/left_note.gifRuby In a Nutshell/2.10.files/left_search.gifRuby In a Nutshell/2.10.files/left_tbl_conts.gifRuby In a Nutshell/2.10.files/pqlogo.gifRuby In a Nutshell/2.10.files/ruby_icon.gifRuby In a Nutshell/2.10.files/ruby_xs.gifRuby In a Nutshell/2.10.files/SafariLogo.gifRuby In a Nutshell/2.10.files/sign_minus.gifRuby In a Nutshell/2.10.files/sign_plus.gifRuby In a Nutshell/2.10.files/spacer.gifRuby In a Nutshell/2.10.files/style.css.a1 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: underline}.a1:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a1:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a2 {FONT-SIZE: 8pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a2:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a2:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a3 {FONT-SIZE: 7.5pt; COLOR: #4b4b4b; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.a3:link {COLOR: #4b4b4b; TEXT-DECORATION: underline}.a3:hover {COLOR: #9e0b0e; TEXT-DECORATION: underline}.a4 {FONT-SIZE: 10pt; COLOR: #222222; LINE-HEIGHT: 18px; FONT-FAMILY: Arial, Helvetica, sans-serif}.AdvancedSearchTextHighlight {BACKGROUND-COLOR: #f7e583}.bg {BACKGROUND-COLOR: #ffffff}BODY {COLOR: black; BACKGROUND-COLOR: white}.DefaultPageHeadline {FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 14pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.DefaultPageText {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}.dlg {BACKGROUND-COLOR: #faf9e7}.entrybox1 {BORDER-RIGHT: #e7d68e 1px solid; BORDER-TOP: #e7d68e 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #e7d68e 1px solid; BORDER-BOTTOM: #e7d68e 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif}.FAQBoxHeadline {FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #cc0033; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxQuestion {FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: #303030; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.FAQBoxAnswer {FONT-WEIGHT: normal; FONT-SIZE: 8pt; COLOR: #4b4b4b; LINE-HEIGHT: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; TEXT-DECORATION: none}.GroupNotesBorder {BACKGROUND-COLOR: #d0c7de}.GroupNotesEvenRows {BACKGROUND-COLOR: #f1eff5}.GroupNotesOddRows {}.GroupNotesTableHeading {BACKGROUND-COLOR: #ddd9e7}.hdr1 {BORDER-RIGHT: 0px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; VERTICAL-ALIGN: middle; BORDER-LEFT: #ffffff 1px solid; COLOR: #0a0a0a; LINE-HEIGHT: 12px; BORDER-BOTTOM: 0px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: center}.ListByCatBorder {BACKGROUND-COLOR: #d0c7dc}.ListByCatEvenRows {FONT-SIZE: 8pt}.ListByCatOddRows {}.ListByCatTableHeading {BACKGROUND-COLOR: #f5deb3}.logout {FONT-SIZE: 10px; COLOR: #333333; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffcc00; TEXT-DECORATION: none}.logout:hover {COLOR: #9e0b0e; TEXT-DECORATION: none}.menuLeft {BACKGROUND-COLOR: #ffe583}.menuRight {BACKGROUND-COLOR: #ffcc00}.MyBookmarksBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookmarksEvenRows {BACKGROUND-COLOR: #f1eff5}.MyBookmarksOddRows {}.MyBookmarksTableHeading {BACKGROUND-COLOR: #ddd9e7}.MyBookshelfBorder {BACKGROUND-COLOR: #d0c7dc}.MyBookshelfSpacer {BACKGROUND-COLOR: #eddfdf}.MyBookshelfEvenRows {}.MyBookshelfOddRows {}.MyBookshelfTableHeading {}.MyNotesBorde