Ruby Cookbook (Paperback)
暫譯: Ruby 食譜 (平裝本)
Lucas Carlson, Leonard Richardson
- 出版商: O'Reilly
- 出版日期: 2006-07-29
- 定價: $1,650
- 售價: 5.0 折 $825
- 語言: 英文
- 頁數: 910
- 裝訂: Paperback
- ISBN: 0596523696
- ISBN-13: 9780596523695
-
相關分類:
Ruby
-
相關翻譯:
Ruby Cookbook 錦囊妙技 (Ruby Cookbook) (繁中版)
立即出貨 (庫存=1)
買這商品的人也買了...
-
$2,370$2,252 -
$700$686 -
$680$646 -
$880$695 -
$880$695 -
$650$514 -
$780$741 -
$580$458 -
$2,831Thinking in Java, 4/e (Paperback)
-
$780$663 -
$650$507 -
$680$578 -
$550$468 -
$980$774 -
$880$695 -
$520$442 -
$750$593 -
$880$695 -
$490$382 -
$680$537 -
$780$616 -
$720$569 -
$800$632 -
$650$553 -
$1,200$948
相關主題
商品描述
Description
Do you want to push Ruby to its limits? The Ruby Cookbook is the most comprehensive problem-solving guide to today's hottest programming language. It gives you hundreds of solutions to real-world problems, with clear explanations and thousands of lines of code you can use in your own projects.
From data structures and algorithms, to integration with cutting-edge technologies, the Ruby Cookbook has something for every programmer. Beginners and advanced Rubyists alike will learn how to program with:
- Strings and numbers
- Arrays and hashes
- Classes, modules, and namespaces
- Reflection and metaprogramming
- XML and HTML processing
- Ruby on Rails (including Ajax integration)
- Databases
- Graphics
- Internet services like email, SSH, and BitTorrent
- Web services
- Multitasking
- Graphical and terminal interfaces
If you need to write a web application, this book shows you how to get started with Rails. If you're a system administrator who needs to rename thousands of files, you'll see how to use Ruby for this and other everyday tasks. You'll learn how to read and write Excel spreadsheets, classify text with Bayesian filters, and create PDF files. We've even included a few silly tricks that were too cool to leave out, like how to blink the lights on your keyboard.
The Ruby Cookbook is the most useful book yet written about Ruby. When you need to solve a problem, don't reinvent the wheel: look it up in the Cookbook.
Table of Contents
Preface
1. Strings
1.1 Building a String from Parts
1.2 Substituting Variables into Strings
1.3 Substituting Variables into an Existing String
1.4 Reversing a String by Words or Characters
1.5 Representing Unprintable Characters
1.6 Converting Between Characters and Values
1.7 Converting Between Strings and Symbols
1.8 Processing a String One Character at a Time
1.9 Processing a String One Word at a Time
1.10 Changing the Case of a String
1.11 Managing Whitespace
1.12 Testing Whether an Object Is String-Like
1.13 Getting the Parts of a String You Want
1.14 Handling International Encodings
1.15 Word-Wrapping Lines of Text
1.16 Generating a Succession of Strings
1.17 Matching Strings with Regular Expressions
1.18 Replacing Multiple Patterns in a Single Pass
1.19 Validating an Email Address
1.20 Classifying Text with a Bayesian Analyzer
2. Numbers
2.1 Parsing a Number from a String
2.2 Comparing Floating-Point Numbers
2.3 Representing Numbers to Arbitrary Precision
2.4 Representing Rational Numbers
2.5 Generating Random Numbers
2.6 Converting Between Numeric Bases
2.7 Taking Logarithms
2.8 Finding Mean, Median, and Mode
2.9 Converting Between Degrees and Radians
2.10 Multiplying Matrices
2.11 Solving a System of Linear Equations
2.12 Using Complex Numbers
2.13 Simulating a Subclass of Fixnum
2.14 Doing Math with Roman Numbers
2.15 Generating a Sequence of Numbers
2.16 Generating Prime Numbers
2.17 Checking a Credit Card Checksum
3. Date and Time
3.1 Finding Today's Date
3.2 Parsing Dates, Precisely or Fuzzily
3.3 Printing a Date
3.4 Iterating Over Dates
3.5 Doing Date Arithmetic
3.6 Counting the Days Since an Arbitrary Date
3.7 Converting Between Time Zones
3.8 Checking Whether Daylight Saving Time Is in Effect
3.9 Converting Between Time and DateTime Objects
3.10 Finding the Day of the Week
3.11 Handling Commercial Dates
3.12 Running a Code Block Periodically
3.13 Waiting a Certain Amount of Time
3.14 Adding a Timeout to a Long-Running Operation
4. Arrays
4.1 Iterating Over an Array
4.2 Rearranging Values Without Using Temporary Variables
4.3 Stripping Duplicate Elements from an Array
4.4 Reversing an Array
4.5 Sorting an Array
4.6 Ignoring Case When Sorting Strings
4.7 Making Sure a Sorted Array Stays Sorted
4.8 Summing the Items of an Array
4.9 Sorting an Array by Frequency of Appearance
4.10 Shuffling an Array
4.11 Getting the N Smallest Items of an Array
4.12 Building Up a Hash Using Injection
4.13 Extracting Portions of Arrays
4.14 Computing Set Operations on Arrays
4.15 Partitioning or Classifying a Set
5. Hashes
5.1 Using Symbols as Hash Keys
5.2 Creating a Hash with a Default Value
5.3 Adding Elements to a Hash
5.4 Removing Elements from a Hash
5.5 Using an Array or Other Modifiable Object as a Hash Key
5.6 Keeping Multiple Values for the Same Hash Key
5.7 Iterating Over a Hash
5.8 Iterating Over a Hash in Insertion Order
5.9 Printing a Hash
5.10 Inverting a Hash
5.11 Choosing Randomly from a Weighted List
5.12 Building a Histogram
5.13 Remapping the Keys and Values of a Hash
5.14 Extracting Portions of Hashes
5.15 Searching a Hash with Regular Expressions
6. Files and Directories
6.1 Checking to See If a File Exists
6.2 Checking Your Access to a File
6.3 Changing the Permissions on a File
6.4 Seeing When a File Was Last Used
6.5 Listing a Directory
6.6 Reading the Contents of a File
6.7 Writing to a File
6.8 Writing to a Temporary File
6.9 Picking a Random Line from a File
6.10 Comparing Two Files
6.11 Performing Random Access on "Read-Once" Input Streams
6.12 Walking a Directory Tree
6.13 Locking a File
6.14 Backing Up to Versioned Filenames
6.15 Pretending a String Is a File
6.16 Redirecting Standard Input or Output
6.17 Processing a Binary File
6.18 Deleting a File
6.19 Truncating a File
6.20 Finding the Files You Want
6.21 Finding and Changing the Current Working Directory
7. Code Blocks and Iteration
7.1 Creating and Invoking a Block
7.2 Writing a Method That Accepts a Block
7.3 Binding a Block Argument to a Variable
7.4 Blocks as Closures: Using Outside Variables Within a Code Block
7.5 Writing an Iterator Over a Data Structure
7.6 Changing the Way an Object Iterates
7.7 Writing Block Methods That Classify or Collect
7.8 Stopping an Iteration
7.9 Looping Through Multiple Iterables in Parallel
7.10 Hiding Setup and Cleanup in a Block Method
7.11 Coupling Systems Loosely with Callbacks
8. Objects and Classes
8.1 Managing Instance Data
8.2 Managing Class Data
8.3 Checking Class or Module Membership
8.4 Writing an Inherited Class
8.5 Overloading Methods
8.6 Validating and Modifying Attribute Values
8.7 Defining a Virtual Attribute
8.8 Delegating Method Calls to Another Object
8.9 Converting and Coercing Objects to Different Types
8.10 Getting a Human-Readable Printout of Any Object
8.11 Accepting or Passing a Variable Number of Arguments
8.12 Simulating Keyword Arguments
8.13 Calling a Superclass's Method
8.14 Creating an Abstract Method
8.15 Freezing an Object to Prevent Changes
8.16 Making a Copy of an Object
8.17 Declaring Constants
8.18 Implementing Class and Singleton Methods
8.19 Controlling Access by Making Methods Private
9. Modules and Namespaces
9.1 Simulating Multiple Inheritance with Mixins
9.2 Extending Specific Objects with Modules
9.3 Mixing in Class Methods
9.4 Implementing Enumerable: Write One Method, Get 22 Free
9.5 Avoiding Naming Collisions with Namespaces
9.6 Automatically Loading Libraries as Needed
9.7 Including Namespaces
9.8 Initializing Instance Variables Defined by a Module
9.9 Automatically Initializing Mixed-In Modules
10. Reflection and Metaprogramming
10.1 Finding an Object's Class and Superclass
10.2 Listing an Object's Methods
10.3 Listing Methods Unique to an Object
10.4 Getting a Reference to a Method
10.5 Fixing Bugs in Someone Else's Class
10.6 Listening for Changes to a Class
10.7 Checking Whether an Object Has Necessary Attributes
10.8 Responding to Calls to Undefined Methods
10.9 Automatically Initializing Instance Variables
10.10 Avoiding Boilerplate Code with Metaprogramming
10.11 Metaprogramming with String Evaluations
10.12 Evaluating Code in an Earlier Context
10.13 Undefining a Method
10.14 Aliasing Methods
10.15 Doing Aspect-Oriented Programming
10.16 Enforcing Software Contracts
11. XML and HTML
11.1 Checking XML Well-Formedness
11.2 Extracting Data from a Document's Tree Structure
11.3 Extracting Data While Parsing a Document
11.4 Navigating a Document with XPath
11.5 Parsing Invalid Markup
11.6 Converting an XML Document into a Hash
11.7 Validating an XML Document
11.8 Substituting XML Entities
11.9 Creating and Modifying XML Documents
11.10 Compressing Whitespace in an XML Document
11.11 Guessing a Document's Encoding
11.12 Converting from One Encoding to Another
11.13 Extracting All the URLs from an HTML Document
11.14 Transforming Plain Text to HTML
11.15 Converting HTML Documents from the Web into Text
11.16 A Simple Feed Aggregator
12. Graphics and Other File Formats
12.1 Thumbnailing Images
12.2 Adding Text to an Image
12.3 Converting One Image Format to Another
12.4 Graphing Data
12.5 Adding Graphical Context with Sparklines
12.6 Strongly Encrypting Data
12.7 Parsing Comma-Separated Data
12.8 Parsing Not-Quite-Comma-Separated Data
12.9 Generating and Parsing Excel Spreadsheets
12.10 Compressing and Archiving Files with Gzip and Tar
12.11 Reading and Writing ZIP Files
12.12 Reading and Writing Configuration Files
12.13 Generating PDF Files
12.14 Representing Data as MIDI Music
13. Databases and Persistence
13.1 Serializing Data with YAML
13.2 Serializing Data with Marshal
13.3 Persisting Objects with Madeleine
13.4 Indexing Unstructured Text with SimpleSearch
13.5 Indexing Structured Text with Ferret
13.6 Using Berkeley DB Databases
13.7 Controlling MySQL on Unix
13.8 Finding the Number of Rows Returned by a Query
13.9 Talking Directly to a MySQL Database
13.10 Talking Directly to a PostgreSQL Database
13.11 Using Object Relational Mapping with ActiveRecord
13.12 Using Object Relational Mapping with Og
13.13 Building Queries Programmatically
13.14 Validating Data with ActiveRecord
13.15 Preventing SQL Injection Attacks
13.16 Using Transactions in ActiveRecord
13.17 Adding Hooks to Table Events
13.18 Adding Taggability with a Database Mixin
14. Internet Services
14.1 Grabbing the Contents of a Web Page
14.2 Making an HTTPS Web Request
14.3 Customizing HTTP Request Headers
14.4 Performing DNS Queries
14.5 Sending Mail
14.6 Reading Mail with IMAP
14.7 Reading Mail with POP3
14.8 Being an FTP Client
14.9 Being a Telnet Client
14.10 Being an SSH Client
14.11 Copying a File to Another Machine
14.12 Being a BitTorrent Client
14.13 Pinging a Machine
14.14 Writing an Internet Server
14.15 Parsing URLs
14.16 Writing a CGI Script
14.17 Setting Cookies and Other HTTP Response Headers
14.18 Handling File Uploads via CGI
14.19 Running Servlets with WEBrick
14.20 A Real-World HTTP Client
15. Web Development: Ruby on Rails
15.1 Writing a Simple Rails Application to Show System Status
15.2 Passing Data from the Controller to the View
15.3 Creating a Layout for Your Header and Footer
15.4 Redirecting to a Different Location
15.5 Displaying Templates with Render
15.6 Integrating a Database with Your Rails Application
15.7 Understanding Pluralization Rules
15.8 Creating a Login System
15.9 Storing Hashed User Passwords in the Database
15.10 Escaping HTML and JavaScript for Display
15.11 Setting and Retrieving Session Information
15.12 Setting and Retrieving Cookies
15.13 Extracting Code into Helper Functions
15.14 Refactoring the View into Partial Snippets of Views
15.15 Adding DHTML Effects with script.aculo.us
15.16 Generating Forms for Manipulating Model Objects
15.17 Creating an Ajax Form
15.18 Exposing Web Services on Your Web Site
15.19 Sending Mail with Rails
15.20 Automatically Sending Error Messages to Your Email
15.21 Documenting Your Web Site
15.22 Unit Testing Your Web Site
15.23 Using breakpoint in Your Web Application
16. Web Services and Distributed Programming
16.1 Searching for Books on Amazon
16.2 Finding Photos on Flickr
16.3 Writing an XML-RPC Client
16.4 Writing a SOAP Client
16.5 Writing a SOAP Server
16.6 Searching the Web with Google's SOAP Service
16.7 Using a WSDL File to Make SOAP Calls Easier
16.8 Charging a Credit Card
16.9 Finding the Cost to Ship Packages via UPS or FedEx
16.10 Sharing a Hash Between Any Number of Computers
16.11 Implementing a Distributed Queue
16.12 Creating a Shared "Whiteboard"
16.13 Securing DRb Services with Access Control Lists
16.14 Automatically Discovering DRb Services with Rinda
16.15 Proxying Objects That Can't Be Distributed
16.16 Storing Data on Distributed RAM with MemCached
16.17 Caching Expensive Results with MemCached
16.18 A Remote-Controlled Jukebox
17. Testing, Debugging, Optimizing, and Documenting
17.1 Running Code Only in Debug Mode
17.2 Raising an Exception
17.3 Handling an Exception
17.4 Rerunning After an Exception
17.5 Adding Logging to Your Application
17.6 Creating and Understanding Tracebacks
17.7 Writing Unit Tests
17.8 Running Unit Tests
17.9 Testing Code That Uses External Resources
17.10 Using breakpoint to Inspect and Change the State of Your Application
17.11 Documenting Your Application
17.12 Profiling Your Application
17.13 Benchmarking Competing Solutions
17.14 Running Multiple Analysis Tools at Once
17.15 Who's Calling That Method? A Call Graph Analyzer
18. Packaging and Distributing Software
18.1 Finding Libraries by Querying Gem Respositories
18.2 Installing and Using a Gem
18.3 Requiring a Specific Version of a Gem
18.4 Uninstalling a Gem
18.5 Reading Documentation for Installed Gems
18.6 Packaging Your Code as a Gem
18.7 Distributing Your Gems
18.8 Installing and Creating Standalone Packages with setup.rb
19. Automating Tasks with Rake
19.1 Automatically Running Unit Tests
19.2 Automatically Generating Documentation
19.3 Cleaning Up Generated Files
19.4 Automatically Building a Gem
19.5 Gathering Statistics About Your Code
19.6 Publishing Your Documentation
19.7 Running Multiple Tasks in Parallel
19.8 A Generic Project Rakefile
20. Multitasking and Multithreading
20.1 Running a Daemon Process on Unix
20.2 Creating a Windows Service
20.3 Doing Two Things at Once with Threads
20.4 Synchronizing Access to an Object
20.5 Terminating a Thread
20.6 Running a Code Block on Many Objects Simultaneously
20.7 Limiting Multithreading with a Thread Pool
20.8 Driving an External Process with popen
20.9 Capturing the Output and Error Streams from a Unix Shell Command
20.10 Controlling a Process on Another Machine
20.11 Avoiding Deadlock
21. User Interface
21.1 Getting Input One Line at a Time
21.2 Getting Input One Character at a Time
21.3 Parsing Command-Line Arguments
21.4 Testing Whether a Program Is Running Interactively
21.5 Setting Up and Tearing Down a Curses Program
21.6 Clearing the Screen
21.7 Determining Terminal Size
21.8 Changing Text Color
21.9 Reading a Password
21.10 Allowing Input Editing with Readline
21.11 Making Your Keyboard Lights Blink
21.12 Creating a GUI Application with Tk
21.13 Creating a GUI Application with wxRuby
21.14 Creating a GUI Application with Ruby/GTK
21.15 Creating a Mac OS X Application with RubyCocoa
21.16 Using AppleScript to Get User Input
22. Extending Ruby with Other Languages
22.1 Writing a C Extension for Ruby
22.2 Using a C Library from Ruby
22.3 Calling a C Library Through SWIG
22.4 Writing Inline C in Your Ruby Code
22.5 Using Java Libraries with JRuby
23. System Administration
23.1 Scripting an External Program
23.2 Managing Windows Services
23.3 Running Code as Another User
23.4 Running Periodic Tasks Without cron or at
23.5 Deleting Files That Match a Regular Expression
23.6 Renaming Files in Bulk
23.7 Finding Duplicate Files
23.8 Automating Backups
23.9 Normalizing Ownership and Permissions in User Directories
23.10 Killing All Processes for a Given User
Index
商品描述(中文翻譯)
描述
您想要將 Ruby 推向極限嗎?《Ruby 食譜》是當今最熱門的程式語言的最全面問題解決指南。它提供了數百個現實世界問題的解決方案,並附有清晰的解釋和數千行您可以在自己專案中使用的程式碼。
從資料結構和演算法,到與尖端技術的整合,《Ruby 食譜》為每位程式設計師提供了豐富的內容。無論是初學者還是進階的 Ruby 使用者,都能學會如何使用:
- 字串和數字
- 陣列和雜湊
- 類別、模組和命名空間
- 反射和元程式設計
- XML 和 HTML 處理
- Ruby on Rails(包括 Ajax 整合)
- 資料庫
- 圖形
- 互聯網服務,如電子郵件、SSH 和 BitTorrent
- 網路服務
- 多任務處理
- 圖形和終端介面
如果您需要撰寫網路應用程式,本書將教您如何開始使用 Rails。如果您是需要重新命名數千個檔案的系統管理員,您將看到如何使用 Ruby 來完成這些日常任務。您將學會如何讀取和寫入 Excel 試算表,使用貝葉斯過濾器對文本進行分類,以及創建 PDF 檔案。我們甚至還包括了一些太酷而無法省略的有趣技巧,例如如何讓鍵盤上的燈閃爍。
《Ruby 食譜》是迄今為止最有用的 Ruby 書籍。當您需要解決問題時,不要重新發明輪子:在食譜中查找答案。
目錄
前言
1. 字串
1.1 從部分建立字串
1.2 將變數替換到字串中
1.3 將變數替換到現有字串中
1.4 按單詞或字符反轉字串
1.5 表示不可列印字符
1.6 在字符和數值之間轉換
1.7 在字串和符號之間轉換
1.8 一次處理一個字符的字串
1.9 一次處理一個單詞的字串
1.10 改變字串的大小寫
1.11 管理空白字符
1.12 測試對象是否類似字串
1.13 獲取您想要的字串部分
1.14 處理國際編碼
1.15 文字的自動換行
1.16 生成一系列字串
1.17 使用正則表達式匹配字串
1.18 在單次操作中替換多個模式
1.19 驗證電子郵件地址
1.20 使用貝葉斯分析器對文本進行分類
2. 數字
2.1 從字串解析數字
2.2 比較浮點數
2.3 以任意精度表示數字
2.4 表示有理數
2.5 生成隨機數
2.6 在數字基數之間轉換
2.7 計算對數
2.8 計算平均數、中位數和眾數
2.9 在度數和弧度之間轉換
2.10 矩陣相乘
2.11 解線性方程組
2.12 使用複數
2.13 模擬 Fixnum 的子類別
2.14 使用羅馬數字進行數學運算
2.15 生成數字序列
2.16 生成質數
2.17 檢查信用卡的檢查碼
3. 日期和時間
3.1 查找今天的日期
3.2 精確或模糊地解析日期
3.3 打印日期
3.4 遍歷日期
3.5 進行日期算術運算
3.6 計算自任意日期以來的天數
3.7 在時區之間轉換
3.8 檢查夏令時間是否生效
3.9 在時間和 DateTime 對象之間轉換
3.10 查找星期幾
3.11 處理商業日期