Author(s): Ivo Balbaert, Simon St. Laurent
Edition: 1
Publisher: The Pragmatic Programmers, LLC
Year: 2019
Language: English
Pages: 0
City: 1
Preface
Getting Started
Diving into Crystal
A Programming Language for Humans and Computers
Slick As Ruby, But Way Faster
Almost As Fast As C
Speeding Up the Web
Talking to Databases
More Safety Through Types
No to the Billion-Dollar Mistake
Batteries Included
Putting Crystal to Good Use
A Company’s Story Crystallized: Red Panthers
Wrapping Up
Crystal Foundations excerpt
Using Basic Variables and Types
Variable Operations
Structuring Data with Container Types
Controlling the Flow
Using Methods
Organizing Code in Classes and Modules
Executing Code Concurrently Through Fibers
A Company’s Story Crystallized: Dev Demand
Wrapping Up
Building Blocks
Typing Variables and Controlling the Flow
Converting Data Between Types
Getting Input
Putting It Together—Converting Currencies 1
Exception Handling for Faulty Input
Chaining Methods
Getting Input from Command-Line Arguments
Using String Methods
Using Symbols as Identifiers
Using Enums
Using Regular Expressions
Putting It Together—Converting Currencies 2
Beyond Hashes and Arrays: More Composite Types
Nilable Types
Controlling the Flow and Types
A Company’s Story Crystallized: Linkfeed
Wrapping Up
Organizing Code in Methods and Procs
Passing Arguments
Returning Values
Working with Yield, Procs, and Blocks
Overloading and Multiple Dispatch
Using a Shorter Syntax for Exception Handling
Using Recursive Methods
A Company’s Story Crystallized: Duo Design
Wrapping Up
Using Classes and Structs excerpt
Converting a Ruby Class to Crystal
Structuring a Class
Applying Inheritance
Controlling Visibility
Working with Structs
Viewing the Type Hierarchy
Some Nice Tricks
A Company’s Story Crystallized: LI-COR Biosciences
Wrapping Up
Working with Modules
Combining Files with Require
Using Modules as Namespaces
Letting Modules Extend Themselves
Mixing in Modules
How the Compiler Finds Methods
Applying Built-In Modules
A Company’s Story Crystallized: Diploid
Wrapping Up
Managing Projects
Creating a Shard
Formatting Code
Documenting a Project
Writing Tests with Spec
Using External Libraries
Benchmarking Your Code
Deploying a Crystal App
A Company’s Story Crystallized: Diploid—Part 2
Wrapping Up
Advanced Crystal
Advanced Features
DRY Your Code with Macros
Low-Level Programming and C Bindings
Creating Concurrent Code
Accessing Databases
A Company’s Story Crystallized: NeuraLegion
Wrapping Up
Using Web Frameworks and Shards
Build Web Applications with the Kemal and Amber Frameworks
A Brief Tour of the Shard Ecosystem
A Company’s Story Crystallized: Kemal in Production
Wrapping Up and Afterword
Appendices
Setting Up a Crystal Environment
Working with Crystal Online
Installing Crystal on Your Machine
Compiling Code
Using Editors and IDEs
Working with Crystal Playground
Using Crystal Documentation
Wrapping Up
Porting Ruby Code to Crystal
Ruby Extensions in Crystal
Your Turn Answers
Chapter 2: Crystal Foundations
Chapter 3: Typing Variables and Controlling the Flow
Chapter 4: Organizing Code in Methods and Procs
Chapter 5: Using Classes and Structs
Chapter 6: Working with Modules
Chapter 7: Managing Projects
Chapter 8: Advanced Features
Chapter 9: Web Frameworks and the Shard Ecosystem
Appendix 1: Setting Up a Crystal Environment