Ruby language booknotes

- Eloquent Ruby
- Programming Ruby
- Ruby under the Microscope
- Ruby core classes & standard library (v3.1.2).

arrays   (Ruby pickaxe (ch27 - stdlib))
awesome ruby   (github)
basic objects   (Ruby pickaxe (ch27 - stdlib))
bignums (stdlib)   (Ruby pickaxe (ch27 - stdlib))
bindings   (Ruby pickaxe (ch27 - stdlib))
blocks & iteration   (eloquent ruby (pdf))
quick review
one word after another
as many iterators as you want
iterating over the ethereal
Enumerable - your iterator on steroids
avoiding trouble; in the wild; wrapup
blocks & wrappers   (eloquent ruby (pdf))
logging
when something absolutely MUST happen
initialization blocks
dragging your scope along with the block
carrying the answers back
avoiding trouble; in the wild; wrapup
blocks - deferred execution   (eloquent ruby (pdf))
explicit blocks
callback problems
banking blocks
saving blocks for lazy initialization
instant block objects
avoiding trouble; in the wild; wrapup
blocks, lambdas and procs   (ruby under the microscope)
blocks = closure in ruby
which is faster? (while vs each)
lambdas and procs
local variables inside a lambda
callables & runnables   (well grounded ruby - jupyter (github))
procs
lambda and "stabby lambda"
methods as objects
instance_eval, class_eval
threads
system commands, backticks, exec
callbacks, hooks & introspection   (well grounded ruby - jupyter (github))
intro
interpreting object capability queries
introspection
tracing execution
callbacks & method inspection
character encoding   (Ruby pickaxe)
class instance variables   (eloquent ruby (pdf))
quick review
wandering variables
controlling data in your class
class instance variables & subclasses
convenience helpers
avoiding trouble; in the wild; wrapup
classes   (well grounded ruby - jupyter (github))
classes & instances
instance variables & object state
setters
attributes
inheritance
classes as objects & message receivers
constants
classes   (Ruby pickaxe (ch27 - stdlib))
classes & methods   (eloquent ruby (pdf))
compressing specs
methods for humans
ruby methods
one way out?
avoiding trouble; in the wild; wrapup
classes (modifying subclasses)   (eloquent ruby (pdf))
a document of paragraphs
subclassing challenges
class methods that build instance methods
define_method
advanced modification ideas
avoiding trouble - in the wild - wrapup
classes (self-modifying)   (eloquent ruby (pdf))
open classes
logic in classes
class methods that change their class
avoiding trouble; in the wild; wrapup
code execution   (ruby under the microscope)
collections   (eloquent ruby (pdf))
book notes
- literal shortcuts
- arrays & hashes from method calls
- running through your collection
- beware the bang!
- hash ordering
- avoiding trouble - in the wild - wrapup
collections & containers   (well grounded ruby - jupyter (github))
arrays vs hashes
arrays & collection handling
hashes
ranges
sets
command line, rake   (Ruby pickaxe)
comparables   (Ruby pickaxe (ch27 - stdlib))
compiling   (ruby under the microscope)
complex numbers   (Ruby pickaxe (ch27 - stdlib))
control & dispatching   (ruby under the microscope)
control structures   (well grounded ruby - jupyter (github))
conditionals (if, not, unless)
case
loops, iterators, code blocks
errors & exceptions
control structures   (eloquent ruby (pdf))
if, unless, while, until
modifiers
each, not for
case
avoiding trouble; in the wild; wrapup
datatypes   (Ruby pickaxe)
datatypes   (Ruby pickaxe)
datatypes (dynamic)   (eloquent ruby (pdf))
shorter programs - not the way you expect
decoupling
ceremony vs clarity
avoiding trouble; in the wild; wrapup
debugging, benchmarking   (Ruby pickaxe)
directories   (Ruby pickaxe (ch27 - stdlib))
documenting   (Ruby pickaxe)
dsl design (external)   (eloquent ruby (pdf))
the trouble with Ripper
internal is not the only DSL
regexes & parsing
treetop
avoiding trouble; in the wild; wrapup
dsl design (internal)   (eloquent ruby (pdf))
little languages for big problems
dealing with XML
stepping over the line
pulling out the stops
in the wild - avoiding trouble - wrapup
duck typing   (Ruby pickaxe)
encodings   (Ruby pickaxe (ch27 - stdlib))
enumerables   (well grounded ruby - jupyter (github))
each
boolean queries
searches & indexes
element-wise ops
each_*
map aka collect
strings
sorting
enumerators
semantics & uses
enumerables   (Ruby pickaxe (ch27 - stdlib))
enumerators   (Ruby pickaxe (ch27 - stdlib))
error numbers   (Ruby pickaxe (ch27 - stdlib))
exceptions   (Ruby pickaxe (ch27 - stdlib))
exceptions, catch, throw   (Ruby pickaxe)
expressions   (Ruby pickaxe)
extensions   (Ruby pickaxe (ch27 - stdlib))
false class   (Ruby pickaxe (ch27 - stdlib))
fibers   (Ruby pickaxe (ch27 - stdlib))
fibers, threads, procs   (Ruby pickaxe)
file i/o   (well grounded ruby - jupyter (github))
UNFINISHED
- basics
- file ops
- queries
- directories
- file utils
files   (Ruby pickaxe (ch27 - stdlib))
filestats   (Ruby pickaxe (ch27 - stdlib))
filetests   (Ruby pickaxe (ch27 - stdlib))
fixnums   (Ruby pickaxe (ch27 - stdlib))
floatnums   (Ruby pickaxe (ch27 - stdlib))
functional programming   (well grounded ruby - jupyter (github))
pure functions
immutability
higher-order functions
recursion (unfinished, btw.)
garbage collection   (ruby under the microscope)
garbage control   (Ruby pickaxe (ch27 - stdlib))
hash tables   (ruby under the microscope)
hashes   (Ruby pickaxe (ch27 - stdlib))
inheritance, modules, mixins   (Ruby pickaxe)
integers   (Ruby pickaxe (ch27 - stdlib))
io   (Ruby pickaxe (ch27 - stdlib))
io (basic)   (Ruby pickaxe)
irb (interactive ruby)   (Ruby pickaxe)
jruby & JVM   (ruby under the microscope)
kernels   (Ruby pickaxe (ch27 - stdlib))
marshaling   (Ruby pickaxe (ch27 - stdlib))
metaprogramming   (Ruby pickaxe)
metaprogramming   (ruby under the microscope)
alternative ways to define methods
self and scope
closures (eval, instance_eval, binding)define_method
metaprogramming   (akshaykhot)
the object model
open classes & monkeypatching
instance variables vs instance methods
classes are objects
method calls
kernel module
self keyword
dynamic definitions
dynamic method calls
method_missing
instance_eval
class_eval
singleton methods & classes
metaprogramming - hooks   (eloquent ruby (pdf))
waking up to a new subclass
modules want to be heard too
knowing when time is up
...and a cast of thousands
avoiding trouble; in the wild; wrapup
method_missing   (eloquent ruby (pdf))
meeting those methods
handling document errors
coping with constants
in the wild; wrapup
method_missing - APIs   (eloquent ruby (pdf))
form letters - one word at a time
method_missingits the users that count
in the wild; wrapup
method_missing - delegation   (eloquent ruby (pdf))
intro
challenges
method_missing
more discriminating delegation
in the wild; wrapup
methods   (Ruby pickaxe)
methods   (Ruby pickaxe (ch27 - stdlib))
modules   (well grounded ruby - jupyter (github))
basics (bundles of methods & constants)
method lookup
method_missing
naming conventions
modules   (Ruby pickaxe (ch27 - stdlib))
modules & mixins   (eloquent ruby (pdf))
better books with modules
mixin modules
module extensions
avoiding trouble; in the wild; wrapup
modules & namespaces   (eloquent ruby (pdf))
a place for your stuff
a home for utility methods
construction
modules are objects
avoiding trouble; in the wild; wrapup
monkey patching   (eloquent ruby (pdf))
classes are wide-open
fixing a broken class
improving classes
alias_method
do anyting, anytime, to any class
avoiding trouble; in the wild; wrapup
mutexes   (Ruby pickaxe (ch27 - stdlib))
namespaces, gems   (Ruby pickaxe)
nil class   (Ruby pickaxe (ch27 - stdlib))
numbers, strings, ranges   (Ruby pickaxe)
numerics   (Ruby pickaxe (ch27 - stdlib))
object individualization   (well grounded ruby - jupyter (github))
singletons
modifying ruby core classes & modules
BasicObject
object lookups   (ruby under the microscope)
object spaces   (Ruby pickaxe (ch27 - stdlib))
objects   (Ruby pickaxe (ch27 - stdlib))
objects   (eloquent ruby (pdf))
review - classes, instances, methods
objects all the way down
importance of being an object
public, private, protected objects
in the wild; wrapup
objects & classes   (ruby under the microscope)
objects & equality   (eloquent ruby (pdf))
document identifiers
multiple equality methods
==
more == uses
well-behaved equality
=== for case statements
eql? and hashes
well-behaved hash keys
avoiding trouble; in the wild; wrapup
objects & methods   (well grounded ruby - jupyter (github))
talking to objects
construction
behaviors
arguments
local variables
objects, classes, variables   (Ruby pickaxe)
operators   (eloquent ruby (pdf))
defining operators
examples
operating across classes
avoiding trouble; in the wild; wrapup
process GIDs   (Ruby pickaxe (ch27 - stdlib))
process UIDs   (Ruby pickaxe (ch27 - stdlib))
process status   (Ruby pickaxe (ch27 - stdlib))
process sys   (Ruby pickaxe (ch27 - stdlib))
processes   (Ruby pickaxe (ch27 - stdlib))
procs   (Ruby pickaxe (ch27 - stdlib))
ranges   (Ruby pickaxe (ch27 - stdlib))
rationals   (Ruby pickaxe (ch27 - stdlib))
reflection, object spaces   (Ruby pickaxe)
regex match data   (Ruby pickaxe (ch27 - stdlib))
regexes   (well grounded ruby - jupyter (github))
writing them
building a pattern
matching, substrings & MatchData
quantifiers, anchors, modifiers
strings <-> regexes
common uses
regexes   (Ruby pickaxe)
regexes   (Ruby pickaxe (ch27 - stdlib))
regexes   (eloquent ruby (pdf))
single-character matches
sets, ranges, alternatives
the asterik, aka star
Ruby regexes
beginnings & endings
avoiding trouble; in the wild; wrapup
rubinius   (ruby under the microscope)
ruby implementations (variants)   (eloquent ruby (pdf))
quick list of variants
MRI
YARV (next-gen MRI)
JRuby
Rubinius
avoiding trouble; in the wild; wrapup
rubygem package building   (eloquent ruby (pdf))
using gems
gem versions
nuts & bolts
construction
uploading to a repository
automation
avoiding trouble; in the wild; wrapup
safety   (Ruby pickaxe)
self   (well grounded ruby - jupyter (github))
introduction
scope | global variables
public | private | protected methods
top-level methods (definitions)
setup   (well grounded ruby - jupyter (github))
installation
identifiers
methods, messages, objects
writing & saving programs
feeding a program to ruby
keyboard & file I/O
key directories
require, require_relative
tools (ruby, irb, rdoc, ri, rake, gem, erb)
setup   (Ruby pickaxe)
setup/intro   (eloquent ruby (pdf))
book notes
format
comments
camel case & snake case
parentheses
semicolons & line folds
avoiding trouble; wrapup
signals   (Ruby pickaxe (ch27 - stdlib))
singletons   (eloquent ruby (pdf))
a puzzle
a hidden, but real, class
class methods
avoiding trouble; in the wild; wrapup
sockets   (Ruby pickaxe)
specs & testing   (eloquent ruby (pdf))
test::unit
assertions
don't test it - spec it
readability
stubs & mocks
avoiding trouble; in the wild; wrapup
std library v3.1.2   (ruby-doc)
see lib/ in Ruby source code, or
lib/ruby/version/ of an installation.
stdlib19   (Ruby pickaxe (ch27 - stdlib))
strings   (Ruby pickaxe (ch27 - stdlib))
strings   (eloquent ruby (pdf))
syntax
string methods
lines, characters & bytes
avoiding trouble; in the wild; wrapup
structs   (Ruby pickaxe (ch27 - stdlib))
symbols   (Ruby pickaxe (ch27 - stdlib))
symbols   (eloquent ruby (pdf))
two faces of strings
not quite a string
symbols "stand for something"
avoiding trouble; in the wild; wrapup
symbols, strings, other scalars   (well grounded ruby - jupyter (github))
strings
symbols
numbers
times & dates
syntax   (well grounded ruby - jupyter (github))
built-in modules & classes
string|symbol|array|hash|range|regexp|proc syntax
syntactical sugar
bang methods
to_* methods
booleans
comparison ops
object methods (a long list)
thread groups   (Ruby pickaxe (ch27 - stdlib))
threads   (Ruby pickaxe (ch27 - stdlib))
time   (Ruby pickaxe (ch27 - stdlib))
tokenization & parsing   (ruby under the microscope)
trig & transcendental math   (Ruby pickaxe (ch27 - stdlib))
true class   (Ruby pickaxe (ch27 - stdlib))
unbound   (Ruby pickaxe (ch27 - stdlib))
unit testing   (Ruby pickaxe)
web basics   (Ruby pickaxe)
windows OS   (Ruby pickaxe)