small strawberry

Read Ruby

Very early draft of a book about the Ruby programming language, released under a Creative Commons license. Photo credit: Matthias Richwin

Contents

Language

  1. Programs
    1. Lexical Structure
    2. Syntactical Structure
    3. Interpretation
    4. Tracing
  2. Variables
    1. Constants
    2. Local Variables
    3. Instance Variables
    4. Class Variables
    5. Global Variables
    6. defined?
    7. Assignment
  3. Messages
    1. Message Expression Syntax
    2. Operators
    3. Conventions
  4. Objects
    1. Instantiation
    2. Identity
    3. Class
    4. Methods
    5. Relations
    6. State
    7. References & Garbage Collection
    8. Listing and Counting
    9. BasicObject
    10. Duplication
    11. Cloning
    12. Marshaling
    13. Taint
    14. Safe Levels
    15. Context
    16. Conversion
  5. Classes
    1. Names
    2. Inheritance
    3. Creation
    4. Context
    5. Singleton Classes
    6. State
    7. Instances
    8. Methods
    9. Missing Classes
    10. Enumeration
    11. Type
  6. Modules
    1. Creation
    2. Mixins
    3. Namespacing
    4. Module Functions
    5. Context
  7. Methods
    1. Instance Methods
    2. Global Methods
    3. Singleton Methods
    4. Return Values
    5. super
    6. Names
    7. Defining
    8. Arguments
    9. Undefining
    10. Removing
    11. Visibility
    12. Aliases
    13. Lookup Algorithm
    14. Missing Methods
    15. Method Objects
    16. UnboundMethod Objects
  8. Closures
    1. Proc Literals
    2. Semantics
    3. Creation
    4. Calling
    5. Parameters
    6. Binding
    7. Methods
  9. Flow
    1. Conditionals
    2. Boolean Logic
    3. Branching
    4. Looping
    5. Iterators
    6. Begin / Exit Handlers
  10. Exceptions
    1. Exception Objects
    2. raise
    3. Propagation
    4. Handling
    5. Class Hierarchy
  11. Concurrency
    1. Threads
    2. Fibers

API

  1. Numerics
    1. Integers
    2. Floats
    3. Rationals
    4. Complex
    5. Basic Arithmetic
    6. Conversion & Coercion
    7. Comparison & Equality
    8. Rounding
    9. Predicates
    10. Moduluar Arithmetic
    11. Exponentiation
    12. Finiteness
    13. Pseudo-Random Numbers
    14. Trigonometry
    15. Logarithms
  2. Strings
    1. Literals
    2. String Escapes
    3. Characters
    4. Bytes
    5. Codepoints
    6. Iteration
    7. Size
    8. Equivalence
    9. Comparison
    10. Concatenation
    11. Repetition
    12. Substrings
    13. Searching & Replacing
    14. Splitting, Partitioning, & Scanning
    15. Letter Case
    16. Whitespace
    17. Converting to Numeric
    18. Checksums
    19. Sets of Characters & Transliteration
    20. Debugging
    21. Encoding
    22. Format Strings
    23. Unpacking
    24. Symbols
  3. Encoding
    1. Encoding Class
    2. Source Encoding
    3. IO Streams
    4. ASCII-8BIT
    5. Compatibility
    6. Transcoding
  4. Regexps
    1. Literals
    2. Options
    3. Matching
    4. Metacharacters
    5. Escapes
    6. Grouping
    7. Capturing
    8. Quantifiers
    9. Character Classes
    10. Alternation
    11. MatchData
    12. Anchoring
    13. Zero-Width Assertions
    14. Readability
    15. Encoding
    16. Character Properties
  5. Enumerables
    1. Querying
    2. Filtering
    3. Transforming
    4. Iteration
    5. Sorting
    6. Minimums & Maximums
    7. Enumerator
    8. Classes with Multiple Iteration Strategies
  6. Arrays
    1. Literals
    2. Array.new
    3. Lookup
    4. Insertion
    5. Replacement
    6. Concatenation
    7. Deletion
    8. Arrays of Arrays
    9. Permutations & Combinations
    10. Iteration
    11. Set Operations
    12. Ordering
  7. Hashes
    1. Literals
    2. Look-up
    3. Default Value
    4. Insertion
    5. Deletion
    6. Iteration
    7. Keys
    8. Values
    9. Transformations
    10. Merging
    11. Size
    12. Sorting
    13. Equality
    14. Coercion
    15. Identity
  8. Ranges
    1. Instantiation
    2. Start-points & End-points
    3. Membership Testing
    4. Iteration
    5. Equality
  9. Files & Directories
    1. Files
    2. Directories
  10. Input & Output
    1. Standard Input, Output, & Error
    2. Writing
    3. Reading
    4. Access Mode
    5. Binary & Text Mode
    6. Opening
    7. Encoding String
    8. Initializing
    9. Open Flags
    10. Buffering
    11. Closing
    12. Positions & Seeking
    13. Pipes
    14. Asynchronous & Multiplexed
    15. Manipulating File Descriptors
    16. ARGV
    17. ARGF
  11. Processes
    1. Executing & Forking
    2. Terminating
    3. Environment
    4. Status
    5. Daemons
    6. Scheduling Priorities
    7. Resource Limits
    8. IDs
    9. Signalling
    10. Times
  12. Times
    1. Instantiation
    2. Attributes
    3. Predicates
    4. Arithmetic
    5. Formatting
    6. Coercion
    7. Zone Conversions

Reference

  1. Array
  2. BasicObject
  3. Bignum
  4. Binding
  5. Class
  6. Comparable
  7. Complex
  8. Dir
  9. Encoding
  10. Encoding::Converter
  11. Enumerable
  12. Enumerator
  13. Exception
  14. FalseClass
  15. Fiber
  16. File
  17. File::Stat
  18. FileTest
  19. Fixnum
  20. Float
  21. GC
  22. Hash
  23. Integer
  24. IO
  25. Kernel
  26. Marshal
  27. MatchData
  28. Math
  29. Method
  30. Module
  31. Mutex
  32. NilClass
  33. Numeric
  34. Object
  35. ObjectSpace
  36. Proc
  37. Process
  38. Process::GID
  39. Process::Status
  40. Process::Sys
  41. Process::UID
  42. Range
  43. Rational
  44. Regexp
  45. Signal
  46. String
  47. Struct
  48. Struct::Tms
  49. Symbol

(complete table of contents)