ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب The Ruby Way. Solutions and Techniques in Ruby Programming

دانلود کتاب راه یاقوت. راه حل ها و تکنیک ها در برنامه نویسی یاقوت

The Ruby Way. Solutions and Techniques in Ruby Programming

مشخصات کتاب

The Ruby Way. Solutions and Techniques in Ruby Programming

ویرایش: 2nd 
نویسندگان:   
سری:  
ISBN (شابک) : 9780672328848 
ناشر: Addison-Wesley 
سال نشر: 2006 
تعداد صفحات: 592 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 2 مگابایت 

قیمت کتاب (تومان) : 47,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 12


در صورت تبدیل فایل کتاب The Ruby Way. Solutions and Techniques in Ruby Programming به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب راه یاقوت. راه حل ها و تکنیک ها در برنامه نویسی یاقوت نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب راه یاقوت. راه حل ها و تکنیک ها در برنامه نویسی یاقوت

نسخه جدید که در زمانی عرضه می‌شود که برنامه‌ها و چارچوب‌های جدید Ruby مانند Rails موفقیت سریعی کسب می‌کنند.


توضیحاتی درمورد کتاب به خارجی

New edition that comes at a time when Ruby's new applications and frameworks such as Rails gain rapid success.



فهرست مطالب

Cover......Page 1
Contents......Page 10
Foreword......Page 28
Acknowledgments......Page 32
About the Author......Page 36
1 Ruby in Review......Page 50
1.1.1 What Is an Object?......Page 51
1.1.2 Inheritance......Page 53
1.1.3 Polymorphism......Page 55
1.1.4 A Few More Terms......Page 56
1.2 Basic Ruby Syntax and Semantics......Page 57
1.2.1 Keywords and Identifiers......Page 58
1.2.3 Constants, Variables, and Types......Page 59
1.2.4 Operators and Precedence......Page 62
1.2.5 A Sample Program......Page 63
1.2.6 Looping and Branching......Page 66
1.2.7 Exceptions......Page 71
1.3.1 Objects......Page 74
1.3.2 Built-in Classes......Page 75
1.3.3 Modules and Mixins......Page 77
1.3.4 Creating Classes......Page 78
1.3.5 Methods and Attributes......Page 82
1.4 Dynamic Aspects of Ruby......Page 84
1.4.1 Coding at Runtime......Page 85
1.4.2 Reflection......Page 86
1.4.3 Missing Methods......Page 88
1.5 Training Your Intuition: Things to Remember......Page 89
1.5.1 Syntax Issues......Page 90
1.5.2 Perspectives in Programming......Page 92
1.5.3 Ruby’s case Statement......Page 96
1.5.4 Rubyisms and Idioms......Page 99
1.5.5 Expression Orientation and Other Miscellaneous Issues......Page 106
1.6 Ruby Jargon and Slang......Page 108
1.7 Conclusion......Page 111
2 Working with Strings......Page 112
2.1 Representing Ordinary Strings......Page 113
2.3 Using Here-Documents......Page 114
2.4 Finding the Length of a String......Page 116
2.6 Processing a Byte at a Time......Page 117
2.7 Performing Specialized String Comparisons......Page 118
2.8 Tokenizing a String......Page 119
2.9 Formatting a String......Page 121
2.11 Controlling Uppercase and Lowercase......Page 122
2.12 Accessing and Assigning Substrings......Page 124
2.13 Substituting in Strings......Page 126
2.14 Searching a String......Page 127
2.15 Converting Between Characters and ASCII Codes......Page 128
2.16 Implicit and Explicit Conversion......Page 129
2.17 Appending an Item Onto a String......Page 131
2.18 Removing Trailing Newlines and Other Characters......Page 132
2.19 Trimming Whitespace from a String......Page 133
2.21 Embedding Expressions Within Strings......Page 134
2.23 Parsing Comma-Separated Data......Page 135
2.24 Converting Strings to Numbers (Decimal and Otherwise)......Page 136
2.26 Encrypting Strings......Page 139
2.27 Compressing Strings......Page 140
2.28 Counting Characters in Strings......Page 141
2.30 Removing Duplicate Characters......Page 142
2.33 Generating Successive Strings......Page 143
2.34 Calculating a 32-Bit CRC......Page 144
2.35 Calculating the MD5 Hash of a String......Page 145
2.36 Calculating the Levenshtein Distance Between Two Strings......Page 146
2.38 Encoding and Decoding Strings (uuencode/uudecode)......Page 148
2.39 Expanding and Compressing Tab Characters......Page 149
2.40 Wrapping Lines of Text......Page 150
2.41 Conclusion......Page 151
3 Working with Regular Expressions......Page 152
3.1 Regular Expression Syntax......Page 153
3.2 Compiling Regular Expressions......Page 155
3.4 Using Anchors......Page 156
3.5 Using Quantifiers......Page 157
3.6 Positive and Negative Lookahead......Page 160
3.7 Accessing Backreferences......Page 161
3.8 Using Character Classes......Page 164
3.9 Extended Regular Expressions......Page 166
3.10 Matching a Newline with a Dot......Page 167
3.12 Using Embedded Subexpressions......Page 168
3.13.1 Testing the Presence of Oniguruma......Page 169
3.13.2 Building Oniguruma......Page 170
3.13.3 A Few New Features of Oniguruma......Page 171
3.13.4 Positive and Negative Lookbehind......Page 172
3.13.5 More on Quantifiers......Page 173
3.13.6 Named Matches......Page 174
3.13.7 Recursion in Regular Expressions......Page 176
3.14.1 Matching an IP Address......Page 177
3.14.2 Matching a Keyword-Value Pair......Page 178
3.14.3 Matching Roman Numerals......Page 179
3.14.5 Matching a Date/Time String......Page 180
3.14.6 Detecting Doubled Words in Text......Page 181
3.14.9 A Few Other Patterns......Page 182
3.15 Conclusion......Page 183
4 Internationalization in Ruby......Page 184
4.1 Background and Terminology......Page 186
4.2.1 The jcode Library and $KCODE......Page 190
4.2.2 Revisiting Common String and Regex Operations......Page 191
4.2.3 Detecting Character Encodings......Page 196
4.2.4 Normalizing Unicode Strings......Page 197
4.2.5 Issues in String Collation......Page 199
4.2.6 Converting Between Encodings......Page 202
4.3.1 Background and Terminology......Page 205
4.3.3 Localizing a Simple Application......Page 206
4.3.4 Other Notes......Page 211
4.4 Conclusion......Page 212
5 Performing Numerical Calculations......Page 214
5.1 Representing Numbers in Ruby......Page 215
5.2 Basic Operations on Numbers......Page 216
5.3 Rounding Floating Point Values......Page 217
5.4 Comparing Floating Point Numbers......Page 219
5.5 Formatting Numbers for Output......Page 221
5.7 Working with Very Large Integers......Page 222
5.8 Using BigDecimal......Page 223
5.9 Working with Rational Values......Page 225
5.10 Matrix Manipulation......Page 226
5.11 Working with Complex Numbers......Page 231
5.12 Using mathn......Page 232
5.13 Finding Prime Factorization, GCD, and LCM......Page 233
5.14 Working with Prime Numbers......Page 234
5.15 Implicit and Explicit Numeric Conversion......Page 235
5.16 Coercing Numeric Values......Page 236
5.17 Performing Bit-level Operations on Numbers......Page 238
5.18 Performing Base Conversions......Page 239
5.19 Finding Cube Roots, Fourth Roots, and so on......Page 240
5.20 Determining the Architecture's Byte Order......Page 241
5.21 Numerical Computation of a Definite Integral......Page 242
5.22 Trigonometry in Degrees, Radians, and Grads......Page 243
5.24 Finding Logarithms with Arbitrary Bases......Page 244
5.25 Finding the Mean, Median, and Mode of a Data Set......Page 245
5.27 Finding a Correlation Coefficient......Page 247
5.28 Generating Random Numbers......Page 249
5.29 Caching Functions with memoize......Page 250
5.30 Conclusion......Page 251
6 Symbols and Ranges......Page 252
6.1 Symbols......Page 253
6.1.2 Symbols As Metavalues......Page 255
6.1.3 Symbols, Variables, and Methods......Page 256
6.1.4 Converting to/from Symbols......Page 257
6.2 Ranges......Page 258
6.2.3 Iterating Over Ranges......Page 259
6.2.5 Converting to Arrays......Page 261
6.2.7 The Flip-Flop Operator......Page 262
6.2.8 Custom Ranges......Page 266
6.3 Conclusion......Page 268
7 Working with Times and Dates......Page 270
7.1 Determining the Current Time......Page 271
7.2 Working with Specific Times (Post-epoch)......Page 272
7.3 Determining the Day of the Week......Page 273
7.5 Finding the Nth Weekday in a Month......Page 274
7.6 Converting Between Seconds and Larger Units......Page 276
7.8 Working with Leap Seconds: Don't!......Page 277
7.10 Validating a Date/Time......Page 278
7.11 Finding the Week of the Year......Page 279
7.12 Detecting Leap Years......Page 280
7.14 Working with Hours and Minutes Only......Page 281
7.15 Comparing Date/Time Values......Page 282
7.17 Computing the Difference in Two Date/Time Values......Page 283
7.19 Interconverting Between Time, Date, and DateTime......Page 284
7.20 Retrieving a Date/Time Value from a String......Page 285
7.21 Formatting and Printing Date/Time Values......Page 287
7.23 Determining the Number of Days in a Month......Page 288
7.24 Dividing a Month into Weeks......Page 289
7.25 Conclusion......Page 290
8 Arrays, Hashes, and Other Enumerables......Page 292
8.1.1 Creating and Initializing an Array......Page 293
8.1.2 Accessing and Assigning Array Elements......Page 294
8.1.4 Comparing Arrays......Page 296
8.1.5 Sorting an Array......Page 299
8.1.6 Selecting from an Array by Criteria......Page 301
8.1.7 Using Specialized Indexing Functions......Page 303
8.1.8 Implementing a Sparse Matrix......Page 305
8.1.9 Using Arrays as Mathematical Sets......Page 306
8.1.10 Randomizing an Array......Page 310
8.1.11 Using Multidimensional Arrays......Page 311
8.1.12 Finding Elements in One Array But Not Another......Page 312
8.1.15 Removing Specific Array Elements......Page 313
8.1.16 Concatenating and Appending onto Arrays......Page 315
8.1.17 Using an Array as a Stack or Queue......Page 316
8.1.18 Iterating Over an Array......Page 317
8.1.20 Reversing an Array......Page 318
8.1.23 Counting Frequency of Values in an Array......Page 319
8.1.25 Synchronized Sorting of Multiple Arrays......Page 320
8.1.26 Establishing a Default Value for New Array Elements......Page 321
8.2 Working with Hashes......Page 322
8.2.1 Creating a New Hash......Page 323
8.2.3 Accessing and Adding Key-Value Pairs......Page 324
8.2.4 Deleting Key-Value Pairs......Page 326
8.2.6 Inverting a Hash......Page 327
8.2.8 Extracting Hashes into Arrays......Page 328
8.2.9 Selecting Key-Value Pairs by Criteria......Page 329
8.2.11 Merging Two Hashes......Page 330
8.2.14 Using a Hash as a Sparse Matrix......Page 331
8.2.15 Implementing a Hash with Duplicate Keys......Page 332
8.3 Enumerables in General......Page 335
8.3.1 The inject Method......Page 336
8.3.2 Using Quantifiers......Page 337
8.3.3 The partition Method......Page 338
8.3.4 Iterating by Groups......Page 339
8.3.5 Converting to Arrays or Sets......Page 340
8.3.6 Using Enumerator Objects......Page 341
8.3.7 Using Generator Objects......Page 342
8.4 Conclusion......Page 344
9 More Advanced Data Structures......Page 346
9.1.1 Simple Set Operations......Page 347
9.1.2 More Advanced Set Operations......Page 349
9.2 Working with Stacks and Queues......Page 350
9.2.1 Implementing a Stricter Stack......Page 352
9.2.2 Detecting Unbalanced Punctuation in Expressions......Page 353
9.2.3 Understanding Stacks and Recursion......Page 354
9.2.4 Implementing a Stricter Queue......Page 356
9.3.1 Implementing a Binary Tree......Page 357
9.3.2 Sorting Using a Binary Tree......Page 359
9.3.3 Using a Binary Tree as a Lookup Table......Page 361
9.3.4 Converting a Tree to a String or Array......Page 362
9.4 Working with Graphs......Page 363
9.4.1 Implementing a Graph as an Adjacency Matrix......Page 364
9.4.2 Determining Whether a Graph Is Fully Connected......Page 366
9.4.3 Determining Whether a Graph Has an Euler Circuit......Page 368
9.4.4 Determining Whether a Graph Has an Euler Path......Page 369
9.5 Conclusion......Page 370
10 I/O and Data Storage......Page 372
10.1.1 Opening and Closing Files......Page 374
10.1.2 Updating a File......Page 375
10.1.4 Random Access to Files......Page 376
10.1.5 Working with Binary Files......Page 377
10.1.6 Locking Files......Page 379
10.1.7 Performing Simple I/O......Page 380
10.1.8 Performing Buffered and Unbuffered I/O......Page 381
10.1.9 Manipulating File Ownership and Permissions......Page 382
10.1.10 Retrieving and Setting Time Stamp Information......Page 384
10.1.11 Checking File Existence and Size......Page 386
10.1.12 Checking Special File Characteristics......Page 387
10.1.13 Working with Pipes......Page 389
10.1.14 Performing Special I/O Operations......Page 391
10.1.15 Using Nonblocking I/O......Page 392
10.1.17 Manipulating Pathnames......Page 393
10.1.18 Using the Pathname Class......Page 394
10.1.19 Command-Level File Manipulation......Page 395
10.1.20 Grabbing Characters from the Keyboard......Page 397
10.1.21 Reading an Entire File into Memory......Page 398
10.1.24 Treating a String as a File......Page 399
10.1.25 Reading Data Embedded in a Program......Page 400
10.1.27 Working with Temporary Files......Page 401
10.1.28 Changing and Setting the Current Directory......Page 402
10.1.30 Iterating Over Directory Entries......Page 403
10.1.33 Deleting a Directory Recursively......Page 404
10.2 Performing Higher-Level Data Access......Page 405
10.2.1 Simple Marshaling......Page 406
10.2.2 More Complex Marshaling......Page 407
10.2.4 Better Object Persistence with PStore......Page 409
10.2.5 Working with CSV Data......Page 411
10.2.6 Marshaling with YAML......Page 413
10.2.7 Object Prevalence with Madeleine......Page 414
10.2.8 Using the DBM Library......Page 415
10.3 Using KirbyBase......Page 416
10.4.1 Interfacing to SQLite......Page 420
10.4.2 Interfacing to MySQL......Page 422
10.4.3 Interfacing to PostgreSQL......Page 425
10.4.4 Interfacing to LDAP......Page 428
10.4.5 Interfacing to Oracle......Page 430
10.4.6 Using the DBI Wrapper......Page 431
10.4.7 Object-Relational Mappers (ORMs)......Page 432
10.5 Conclusion......Page 435
11 OOP and Dynamic Features in Ruby......Page 436
11.1 Everyday OOP Tasks......Page 437
11.1.1 Using Multiple Constructors......Page 438
11.1.2 Creating Instance Attributes......Page 439
11.1.3 Using More Elaborate Constructors......Page 440
11.1.4 Creating Class-level Attributes and Methods......Page 442
11.1.5 Inheriting from a Superclass......Page 445
11.1.6 Testing Classes of Objects......Page 448
11.1.7 Testing Equality of Objects......Page 450
11.1.8 Controlling Access to Methods......Page 452
11.1.9 Copying an Object......Page 454
11.1.10 Using initialize_copy......Page 456
11.1.12 Working with Modules......Page 457
11.1.13 Transforming or Converting Objects......Page 461
11.1.14 Creating Data-only Classes (Structs)......Page 465
11.1.15 Freezing Objects......Page 466
11.2 More Advanced Techniques......Page 467
11.2.1 Sending an Explicit Message to an Object......Page 468
11.2.2 Specializing an Individual Object......Page 470
11.2.3 Nesting Classes and Modules......Page 473
11.2.4 Creating Parametric Classes......Page 474
11.2.5 Using Continuations to Implement a Generator......Page 477
11.2.6 Storing Code as Objects......Page 480
11.2.7 How Module Inclusion Works......Page 481
11.2.9 Delegating or Forwarding......Page 484
11.2.10 Automatically Defining Class-level Readers and Writers......Page 487
11.2.11 Working in Advanced Programming Disciplines......Page 488
11.3 Working with Dynamic Features......Page 490
11.3.1 Evaluating Code Dynamically......Page 491
11.3.3 Dynamically Instantiating a Class by Name......Page 493
11.3.4 Getting and Setting Instance Variables......Page 494
11.3.5 Using define_method......Page 495
11.3.6 Using const_missing......Page 499
11.3.7 Removing Definitions......Page 500
11.3.8 Obtaining Lists of Defined Entities......Page 503
11.3.9 Examining the Call Stack......Page 505
11.3.10 Monitoring Execution of a Program......Page 506
11.3.12 Handling Calls to Nonexistent Methods......Page 508
11.3.13 Tracking Changes to a Class or Object Definition......Page 509
11.3.14 Defining Finalizers for Objects......Page 513
11.4 Conclusion......Page 515
12 Graphical Interfaces for Ruby......Page 516
12.1.1 Overview......Page 517
12.1.2 A Simple Windowed Application......Page 519
12.1.3 Working with Buttons......Page 521
12.1.4 Working with Text Fields......Page 524
12.1.5 Working with Other Widgets......Page 528
12.1.6 Other Notes......Page 531
12.2.1 Overview......Page 532
12.2.2 A Simple Windowed Application......Page 533
12.2.3 Working with Buttons......Page 534
12.2.4 Working with Text Fields......Page 536
12.2.5 Working with Other Widgets......Page 539
12.2.6 Other Notes......Page 544
12.3.1 Overview......Page 546
12.3.2 A Simple Windowed Application......Page 547
12.3.3 Working with Buttons......Page 549
12.3.4 Working with Text Fields......Page 551
12.3.5 Working with Other Widgets......Page 552
12.4 QtRuby......Page 562
12.4.2 A Simple Windowed Application......Page 563
12.4.3 Working with Buttons......Page 564
12.4.4 Working with Text Fields......Page 566
12.4.5 Working with Other Widgets......Page 568
12.4.6 Other Notes......Page 573
12.5.2 Ruby and wxWidgets......Page 574
12.6 Conclusion......Page 575
13 Threads in Ruby......Page 578
13.1.1 Creating Threads......Page 579
13.1.2 Accessing Thread-local Variables......Page 581
13.1.3 Querying and Changing Thread Status......Page 582
13.1.4 Achieving a Rendezvous (and Capturing a Return Value)......Page 587
13.1.5 Dealing with Exceptions......Page 588
13.1.6 Using a Thread Group......Page 590
13.2 Synchronizing Threads......Page 591
13.2.1 Performing Simple Synchronization with Critical Sections......Page 592
13.2.2 Synchronizing Access to Resources (mutex.rb)......Page 593
13.2.3 Using the Predefined Synchronized Queue Classes......Page 597
13.2.4 Using Condition Variables......Page 599
13.2.5 Using Other Synchronization Techniques......Page 601
13.2.6 Allowing Timeout of an Operation......Page 604
13.2.7 Waiting for an Event......Page 605
13.2.8 Continuing Processing During I/O......Page 606
13.2.9 Implementing Parallel Iterators......Page 607
13.2.10 Recursive Deletion in Parallel......Page 609
13.3 Conclusion......Page 610
14 Scripting and System Administration......Page 612
14.1.1 Using system and exec......Page 613
14.1.2 Command Output Substitution......Page 614
14.1.3 Manipulating Processes......Page 616
14.1.4 Manipulating Standard Input/Output......Page 618
14.2.1 Parsing Command-Line Options......Page 619
14.2.2 Working with ARGF......Page 621
14.2.3 Working with ARGV......Page 622
14.3.1 Using Shell for I/O Redirection......Page 623
14.3.2 Other Notes on shell.rb......Page 625
14.4 Accessing Environment Variables......Page 626
14.4.1 Getting and Setting Environment Variables......Page 627
14.4.3 Importing Environment Variables as Globals......Page 628
14.5 Scripting in Microsoft Windows......Page 629
14.5.1 Using Win32API......Page 630
14.5.2 Using Win32OLE......Page 631
14.5.3 Using ActiveScriptRuby......Page 635
14.6 The Windows One-Click Installer......Page 636
14.7 Libraries You Need to Know About......Page 637
14.8 Working with Files, Directories, and Trees......Page 638
14.8.2 Copying a Directory Tree (with symlinks)......Page 639
14.8.3 Deleting Files by Age or Other Criteria......Page 641
14.8.4 Determining Free Space on a Disk......Page 642
14.9.1 Single-File Ruby Solutions......Page 643
14.9.2 Piping into the Ruby Interpreter......Page 644
14.9.3 Getting and Setting Exit Codes......Page 645
14.9.5 Determining the Current Platform or Operating System......Page 646
14.9.6 Using the Etc Module......Page 647
14.10 Conclusion......Page 648
15 Ruby and Data Formats......Page 650
15.1 Parsing XML with REXML......Page 651
15.1.1 Tree Parsing......Page 652
15.1.2 Stream Parsing......Page 653
15.1.3 XPath and More......Page 655
15.2.1 The rss Standard Library......Page 656
15.2.2 The feedtools Library......Page 659
15.3.1 Common Graphics Tasks......Page 661
15.3.2 Special Effects and Transformations......Page 665
15.3.3 The Drawing API......Page 668
15.4 Creating PDF Documents with PDF::Writer......Page 671
15.4.1 Basic Concepts and Techniques......Page 672
15.4.2 An Example Document......Page 674
15.5 Conclusion......Page 682
16 Testing and Debugging......Page 684
16.1 Testing with Test::Unit......Page 685
16.2 The ZenTest Tools......Page 689
16.3 Using the Ruby Debugger......Page 693
16.4 Using irb as a Debugger......Page 696
16.5 Measuring Code Coverage......Page 698
16.6 Measuring Performance......Page 699
16.7 Prettyprinting Objects......Page 704
16.8 Conclusion......Page 706
17 Packaging and Distributing Code......Page 708
17.1 Using RDoc......Page 709
17.1.1 Simple Markup......Page 711
17.1.2 More Advanced Formatting......Page 713
17.2.1 setup.rb......Page 714
17.2.2 RubyGems......Page 717
17.3 RubyForge and the RAA......Page 718
17.4 Conclusion......Page 720
18 Network Programming......Page 722
18.1.1 A Simple Server: Time of Day......Page 724
18.1.2 Implementing a Threaded Server......Page 726
18.1.3 Case Study: A Peer-to-Peer Chess Server......Page 727
18.2.1 Retrieving Truly Random Numbers from the Web......Page 735
18.2.2 Contacting an Official Timeserver......Page 738
18.2.3 Interacting with a POP Server......Page 739
18.2.4 Sending Mail with SMTP......Page 741
18.2.5 Interacting with an IMAP Server......Page 745
18.2.6 Encoding/Decoding Attachments......Page 747
18.2.7 Case Study: A Mail-News Gateway......Page 749
18.2.9 Using the Open-URI Library......Page 755
18.3 Conclusion......Page 756
19.1 CGI Programming with Ruby......Page 758
19.1.1 Introduction to the cgi.rb Library......Page 760
19.1.2 Displaying and Processing Forms......Page 761
19.1.3 Working with Cookies......Page 762
19.1.4 Working with User Sessions......Page 763
19.2 Using FastCGI......Page 765
19.3.1 Principles and Techniques......Page 767
19.3.2 Testing and Debugging Rails Apps......Page 769
19.3.3 Core Extensions......Page 770
19.4 Web Development with Nitro......Page 771
19.4.1 Creating a Basic Nitro Application......Page 772
19.4.2 Nitro and the MVC Pattern......Page 774
19.4.3 Nitro and Og......Page 779
19.4.4 Common Web Development Tasks in Nitro......Page 780
19.4.5 Other Important Details......Page 784
19.5 An Introduction to Wee......Page 786
19.5.1 A Simple Example......Page 787
19.5.2 Associating State with URLs......Page 788
19.6 Web Development with IOWA......Page 789
19.6.1 Basic IOWA Concepts......Page 790
19.6.2 Templating in IOWA......Page 792
19.6.3 Component Control Transfer......Page 794
19.7.1 Using mod_ruby......Page 796
19.7.2 Using erb......Page 797
19.7.3 Using WEBrick......Page 800
19.7.4 Using Mongrel......Page 803
19.8 Conclusion......Page 805
20 Distributed Ruby......Page 808
20.1 An Overview: Using drb......Page 809
20.2 Case Study: A Stock Ticker Simulation......Page 812
20.3 Rinda: A Ruby Tuplespace......Page 815
20.4 Service Discovery with Distributed Ruby......Page 820
20.5 Conclusion......Page 821
21 Ruby Development Tools......Page 822
21.1 Using RubyGems......Page 823
21.2 Using Rake......Page 825
21.3 Using irb......Page 829
21.5 Editor Support......Page 835
21.6 Integrated Development Environments......Page 837
21.7 Conclusion......Page 839
22.1 Web Resources......Page 840
22.3 Blogs and Online Magazines......Page 841
22.4 Ruby Change Requests......Page 842
22.6 Ruby Conferences......Page 843
22.8 Conclusion......Page 844
Symbols......Page 846
A......Page 847
B......Page 848
C......Page 849
D......Page 853
E......Page 855
F......Page 857
G......Page 859
H......Page 860
I......Page 861
L......Page 864
M......Page 865
N......Page 871
O......Page 872
P......Page 874
Q-R......Page 875
S......Page 878
T......Page 882
U......Page 884
W......Page 886
X-Y-Z......Page 888




نظرات کاربران