arrays
(Ruby pickaxe (ch27 - stdlib))
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
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
explicit blocks
callback problems
banking blocks
saving blocks for lazy initialization
instant block objects
avoiding trouble; in the wild; wrapup
blocks = closure in ruby
which is faster? (while vs each)
lambdas and procs
local variables inside a lambda
procs
lambda and "stabby lambda"
methods as objects
instance_eval, class_eval
threads
system commands, backticks, exec
intro
interpreting object capability queries
introspection
tracing execution
callbacks & method inspection
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))
compressing specs
methods for humans
ruby methods
one way out?
avoiding trouble; in the wild; wrapup
a document of paragraphs
subclassing challenges
class methods that build instance methods
define_method
advanced modification ideas
avoiding trouble - in the wild - wrapup
open classes
logic in classes
class methods that change their class
avoiding trouble; in the wild; wrapup
book notes - literal shortcuts
- arrays & hashes from method calls
- running through your collection
- beware the bang!
- hash ordering
- avoiding trouble - in the wild - wrapup
arrays vs hashes
arrays & collection handling
hashes
ranges
sets
conditionals (if, not, unless)
case
loops, iterators, code blocks
errors & exceptions
if, unless, while, until
modifiers
each, not for
case
avoiding trouble; in the wild; wrapup
shorter programs - not the way you expect
decoupling
ceremony vs clarity
avoiding trouble; in the wild; wrapup
the trouble with Ripper
internal is not the only DSL
regexes & parsing
treetopavoiding trouble; in the wild; wrapup
little languages for big problems
dealing with XML
stepping over the line
pulling out the stops
in the wild - avoiding trouble - wrapup
each
boolean queries
searches & indexes
element-wise ops
each_*
map
aka collect
strings
sorting
enumerators
semantics & uses
fibers
(Ruby pickaxe (ch27 - stdlib))
file i/o
(well grounded ruby - jupyter (github))
UNFINISHED
- basics
- file ops
- queries
- directories
- file utils
files
(Ruby pickaxe (ch27 - stdlib))
fixnums
(Ruby pickaxe (ch27 - stdlib))
pure functions
immutability
higher-order functions
recursion (unfinished, btw.)
hashes
(Ruby pickaxe (ch27 - stdlib))
io
(Ruby pickaxe (ch27 - stdlib))
kernels
(Ruby pickaxe (ch27 - stdlib))
alternative ways to define methods
self and scope
closures (eval, instance_eval, binding)define_method
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
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
meeting those methods
handling document errors
coping with constants
in the wild; wrapup
form letters - one word at a time
method_missingits the users that count
in the wild; wrapup
intro
challenges
method_missing
more discriminating delegation
in the wild; wrapup
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))
better books with modules
mixin modules
module extensions
avoiding trouble; in the wild; wrapup
a place for your stuff
a home for utility methods
construction
modules are objects
avoiding trouble; in the wild; wrapup
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))
singletons
modifying ruby core classes & modules
BasicObject
objects
(Ruby pickaxe (ch27 - stdlib))
review - classes, instances, methods
objects all the way down
importance of being an object
public, private, protected objects
in the wild; wrapup
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
talking to objects
construction
behaviors
arguments
local variables
defining operators
examples
operating across classes
avoiding trouble; in the wild; wrapup
procs
(Ruby pickaxe (ch27 - stdlib))
ranges
(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 (ch27 - stdlib))
single-character matches
sets, ranges, alternatives
the asterik, aka star
Ruby regexes
beginnings & endings
avoiding trouble; in the wild; wrapup
quick list of variants
MRI
YARV (next-gen MRI)
JRuby
Rubinius
avoiding trouble; in the wild; wrapup
using gems
gem versions
nuts & bolts
construction
uploading to a repository
automation
avoiding trouble; in the wild; wrapup
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)
book notesformat
comments
camel case & snake case
parentheses
semicolons & line folds
avoiding trouble; wrapup
signals
(Ruby pickaxe (ch27 - stdlib))
a puzzle
a hidden, but real, class
class methods
avoiding trouble; in the wild; wrapup
test::unit
assertions
don't test it - spec it
readability
stubs & mocks
avoiding trouble; in the wild; wrapup
see lib/
in Ruby source code, or
lib/ruby/version/
of an installation.
strings
(Ruby pickaxe (ch27 - stdlib))
syntax
string methods
lines, characters & bytes
avoiding trouble; in the wild; wrapup
structs
(Ruby pickaxe (ch27 - stdlib))
symbols
(Ruby pickaxe (ch27 - stdlib))
two faces of strings
not quite a string
symbols "stand for something"
avoiding trouble; in the wild; wrapup
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)
threads
(Ruby pickaxe (ch27 - stdlib))
time
(Ruby pickaxe (ch27 - stdlib))
unbound
(Ruby pickaxe (ch27 - stdlib))