Ruby Recipes - Malay Mandal

Ruby Recipes (eBook)

A Problem-Solution Approach

(Autor)

eBook Download: PDF
2016 | 1st ed.
XXVIII, 226 Seiten
Apress (Verlag)
978-1-4842-2469-4 (ISBN)
Systemvoraussetzungen
26,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

Solve your Ruby programming problems that occur during your day-to-day scripting work. This book contains a varied selection of practical and interesting code recipes designed to make your coding life easier. Ruby Recipes includes solutions to problems in working with data, handling exceptions, writing blocks, and using regular expressions.

This book provides ready scripts for both simple complex scripting tasks, which you can use readily or with only minor modifications. These scripts cover areas such as collections, classes and structures, functional programming, and log handling. With these handy recipes at your fingertips, you will be able to solve those niggling problems and become even more efficient.



What You Will Learn 
  • Install and run Ruby
  • Read and write data
  • Write functions
  • Work with arrays, ranges, hashes, and iterators
  • Handle dates and time
  • Process XML as text
  • Master OOP concepts such as classes, objects, subclassing, and inheritance
  • Connect to databases


Who This Book Is For

Programmers new to Ruby, and web developers interested in knowing the foundations of the language.


A Master of Engineering (Mechanical Engineering) from IISc, Bangalore ('94), Malay is working in IT for the last 22 or so years. He worked across multiple geographical locations (India, Japan, Singapore, UK ..), across multiple technology stack and for quite a few well known organisations (Telstra, JP Morgan, Citigroup etc.). He quite often actively learns new things, and his creation (other than books) include Apps in Google Play, and some small wooden pieces of furniture at home.
Solve your Ruby programming problems that occur during your day-to-day scripting work. This book contains a varied selection of practical and interesting code recipes designed to make your coding life easier. Ruby Recipes includes solutions to problems in working with data, handling exceptions, writing blocks, and using regular expressions. This book provides ready scripts for both simple complex scripting tasks, which you can use readily or with only minor modifications. These scripts cover areas such as collections, classes and structures, functional programming, and log handling. With these handy recipes at your fingertips, you will be able to solve those niggling problems and become even more efficient.What You Will Learn Install and run RubyRead and write data Write functionsWork with arrays, ranges, hashes, and iteratorsHandle dates and timeProcess XML as textMaster OOP concepts such as classes, objects, subclassing, and inheritanceConnect to databasesWho This Book Is ForProgrammers new to Ruby, and web developers interested in knowing the foundations of the language.

A Master of Engineering (Mechanical Engineering) from IISc, Bangalore ('94), Malay is working in IT for the last 22 or so years. He worked across multiple geographical locations (India, Japan, Singapore, UK ..), across multiple technology stack and for quite a few well known organisations (Telstra, JP Morgan, Citigroup etc.). He quite often actively learns new things, and his creation (other than books) include Apps in Google Play, and some small wooden pieces of furniture at home.

Contents at a Glance 5
Contents 6
About the Author 19
Acknowledgments 20
Introduction 21
Chapter 1: A Taste of Ruby 25
Small Task, Big Impact 25
Development Environment Installation 26
Windows 26
Mac 26
1.1 The First Recipe: aka Hello World 27
Problem 28
Solution 28
How It Works 28
1.2 Does It Cost Anything to Say Hello? 29
Problem 29
Solution 29
How It Works 30
1.3 Sherlock Holmes and Learning 30
Problem 31
Solution 31
How It Works 31
1.4 1 2 3 4, 1 2 3 4 32
Problem 32
Solution 32
How It Works 33
Interactive Ruby Shell 34
Summary 35
Exercises 35
Exercise 1.1 35
Exercise 1.2 36
Exercise 1.3 36
Chapter 2: Working with Files and Strings 37
Manipulating Strings 37
length or size 37
empty? 37
strip 38
Outline Placeholder 38
Outline Placeholder 38
capitalize 38
downcase and upcase 38
chars 39
index 39
insert 39
delete 39
include? 40
slice 40
count 40
partition 40
tr 40
reverse 41
sub (and gsub) 41
scan 41
split 42
String Formatting 43
2.1 Accepting Input from the Console 43
Problem 43
Solution 43
How It Works 44
2.2 Accepting Numbers as Input 45
Problem 45
Solution 45
How It Works 45
2.3 Handling the Newline 46
Problem 46
Solution 46
More on Getting Rid of the Newline 47
2.4 Formatting Strings 49
Problem 49
Solution 50
How It Works 50
2.5 Processing Command-Line Arguments 51
Problem 51
Solution 51
How It Works 51
2.6 Reading from a File 52
Problem 52
Solution 52
How It Works 53
2.7 Writing to a File 53
Problem 53
Solution 53
How It Works 54
2.8 Getting Started with Exception Handling 54
Problem 54
Solution 55
Initial Execution Context 55
2.9 Importing Code 56
Problem 56
Solution 57
2.10 Creating and Deleting Directories 57
Problem 57
Solution 57
How It Works 58
2.11 Creating a Whole Directory Path 58
Problem 58
Solution 58
How It Works 58
2.12 Reading Multiple Lines from a File 59
Problem 59
Solution 60
How It Works 60
2.13 Reading a File in One Shot 62
Problem 62
Solution 63
How It Works 63
2.14 Working with Strings 63
Problem 63
Solution 63
How It Works 64
Concatenation 65
Expression Evaluation 65
2.15 Converting Numbers to a String 65
Problem 65
Solution 65
2.16 Extracting Information from Strings 66
Problem 66
Task: Change the Order of Names 66
Solution 67
How It Works 67
Task: Totaling the Shopping List 67
Solution 67
Exercises 68
Exercise 2.1 68
Exercise 2.2 68
Chapter 3: Language Elements 69
Commenting on Commenting 69
Variables, Operators … 69
Working with Numbers 70
Logical and Other Operators 72
Reference and Value Equality 72
Checking If an Object Is nil 72
General Comparison Operator 73
Assignment Operators 73
Mass Assignment 74
Bitwise, Logical, and Ternary Operators 74
The Range Operators 75
The dot (.) Operator 75
Some Other Operators 76
Pattern Matching Operators 76
Using Ranges 76
Interval 77
Sequences 77
Conditions 78
Conditional Constructs/Control Flow 79
if 79
nil check 81
unless 82
Ternary operator 82
case 82
while 84
break, redo, next 85
until 86
for 87
3.1 Handling Exceptions 87
Problem 87
Solution 87
Single Line Rescue 88
catch and throw 89
3.2 Working with Predefined Variables and Constants 89
Problem 89
Solution 90
Predefined Constants 92
3.3 Running OS Commands 92
Problem 92
Solution 92
3.4 Initializing and Finalizing Code 92
Problem 92
Solution 93
3.5 Defining Functions 93
Problem 93
Solution 93
Functions with Arguments 94
Function Arguments with Default Values 94
Functions with a Variable Number of Arguments 95
Return Value from Functions 95
Recurrence 96
Exercises 96
Exercise 3.1 96
Exercise 3.2 97
Exercise 3.3 97
Chapter 4: Collections 98
4.1 Creating and Initializing Arrays 99
Problem 99
Solution 99
4.2 Accessing Array Elements 101
Problem 101
Solution 101
4.3 Inserting an Element at a Certain Position 102
Problem 102
Solution 102
4.4 Working with Multidimensional Arrays 103
Problem 103
Solution 103
4.5 Working with Arrays 104
Problem 104
Solution 104
empty? 104
fill 104
Add, Subtract, Compare, and Contrast 105
Outline Placeholder 105
concat 105
Outline Placeholder 105
Outline Placeholder 105
Outline Placeholder 105
Outline Placeholder 106
Outline Placeholder 106
Set Operations 106
| (or union) 106
& (or intersection)
uniq 107
In Place Operations 107
sort (and sort!) 107
reverse (and reverse!) 108
Further Access and Manipulation 108
include? 108
index 108
rindex 108
values_at 109
fetch 109
insert 109
delete 110
delete_at 110
join 111
compact 111
clear 111
4.6 Creating Hashes 111
Problem 111
Solution 111
4.7 Adding New Elements to a Hash 112
Problem 112
Solution 112
4.8 Working with Hashes 113
Problem 113
Solution 114
clear 114
empty? 114
has_key? 114
has_value? 114
key 115
fetch 115
values_at 115
delete 116
invert 116
to_a 116
Outline Placeholder 116
merge (and merge!) 117
4.9 Creating a Collection of Unique Objects 117
Problem 117
Solution 117
4.10 Inspecting a Set 118
Problem 118
Solution 118
4.11 Working with Sets 119
Problem 119
Solution 119
Checking and Changing 119
length (or size) 119
empty? 119
include? 119
clear 120
< <
merge 120
delete 120
subtract 120
Outline Placeholder 121
Set Operations 121
+ (or | or union) 121
& (or intersection)
intersect? 122
disjoint? 122
- (or difference) 122
Outline Placeholder 122
Subset and superset 122
Flattening and Conversion 123
Exercises 124
Exercise 4.1 124
Exercise 4.2 124
Chapter 5: Blocks and Iterators 125
5.1 Associating Blocks with Functions 126
Problem 126
Solution 126
5.2 Adding Arguments to a Block 128
Problem 128
Solution 128
5.3 Initializing and Finalizing Code 130
Problem 130
Solution 130
5.4 Iterating over Data 131
Problem 131
Solution 131
each 131
step 134
select and reject 134
For Arrays 135
For Hashes 135
For Sets 136
map or collect 136
For Arrays 137
For Sets 137
For Hashes 137
delete_if and keep_if 138
For Arrays 138
For Sets 138
For Hashes 138
sort 139
Exercises 139
Exercise 5.1 139
Exercise 5.2 140
Exercise 5.3 140
Chapter 6: Input-Output 141
6.1 Querying a CSV File 141
Problem 141
Solution 142
Subtask 1: A Person’s Birthday 142
Writing the Code 142
Testing 144
Subtask 2: ( The Names of) the Youngest and the Oldest Persons 146
Date Handling by API 149
Subtask 3: Persons with a Birthday in a Given Month 150
6.2 Sorting Text 151
Problem 151
Solution 152
How It Works 153
6.3 Checking User Input 153
Problem 153
Solution 153
6.4 Storing Data in a Structured Manner 158
Problem 158
Solution 158
6.5 Working with Directories 160
Problem 160
Solution 160
mkdir 161
rmdir 161
pwd 161
chdir 162
home 162
exist? 162
entries 163
new 163
each 163
foreach 164
glob 164
6.6 Dividing Files into Subdirectories 166
Problem 166
Solution 166
6.7 Adding Text to Files Using a Batch Operation 168
Problem 168
Solution 168
Approach 1: Output From Command Execution 169
Approach 2: Use Dir.glob 170
Adding the Comments in Each File 170
Chapter 7: Regular Expressions 172
7.1 Searching Within a File 172
Problem 172
Solution 174
How It Works 174
7.2 Finding Only the Matched String 176
Problem 176
Solution 176
How It Works 176
7.3 Working with Character Classes 178
Problem 178
Solution 178
How It Works 178
Negation 179
Range 180
Union 180
Intersection 181
Intersection with Negation 181
Common Character Classes 182
Predefined Character Classes 182
Any Single Character: dot 183
Whitespace and Non-Whitespace 183
Special Characters 184
Escape Sequence 185
7.4 Finding Significant Positions in a String 185
Problem 185
Solution 185
End of a Source String 186
Word Boundary and Non-Word Boundary 187
Start and End of a String 188
Interaction of Subpatterns 189
Looking for Multiple Groups 191
7.5 Using Non-Capturing Groups 192
Problem 192
Solution 192
7.6 Understanding the Regex Engine and Backtracking 193
Problem 193
Solution 193
Plane Forward Search 194
Backtracking 194
More on Greedy (Meta-) Characters 195
7.7 Finding Repeated Patterns 196
Problem 196
Solution 196
How It Works 197
Octal Codes and Backreferences 198
Named Backreferences 199
7.8 Finding a Match and Excluding Some of It in the Result 199
Problem 199
Solution 200
Negative Lookahead Assertion 201
Lookbehind Assertion 201
Negative Lookbehind Assertion 202
7.9 Inserting Comments in a Regular Expression 202
Problem 202
Solution 202
7.10 Modifying Results 203
Problem 203
Solution 203
How It Works 204
7.11 Using Non-Backtracking Groups 205
Problem 205
Solution 205
How It Works 205
7.12 Replacing Substrings Using Regular Expressions 206
Problem 206
Solution 206
7.13 Using the scan Function with Regular Expressions 207
Exercises 208
Exercise 7.1 208
Exercise 7.2 209
Chapter 8: Putting It into Action 210
8.1 Removing Block CommentedCode 210
Problem 210
Solution 210
8.2 Searching and Replacing in Text Files 216
Problem 216
Solution 216
8.3 Removing Duplicates from a Text File 221
Problem 221
Solution 221
The Technical Problem Specification 223
Step 1: Remove the Comments 223
Step 2: Remove Optional Keywords 224
Step 3: Collect Tokens 227
Step 4: Get Distinct Values 231
8.4 Reading XML as Text 232
Problem 232
Solution 232
8.5 A Case for Hash Buckets 234
Problem 234
Solution 235
How It Works 236
Appendix A: Solutions to Exercises 237
Solutions for Chapter 1 237
(Solution) Excercise 1.1 237
(Solution) Excercise 1.2 237
(Solution) Excercise 1.3 237
Solutions for Chapter 2 238
(Solution) Excercise 2.1 238
(Solution) Excercise 2.2 238
Solutions for Chapter 3 238
(Solution) Excercise 3.1 238
(Solution) Excercise 3.2 239
(Solution) Excercise 3.3 239
Solutions for Chapter 4 239
(Solution) Excercise 4.1 239
(Solution) Excercise 4.2 240
Solutions for Chapter 5 241
(Solution) Excercise 5.1 241
(Solution) Excercise 5.2 241
(Solution) Excercise 5.3 241
Solutions for Chapter 7 242
(Solution) Excercise 7.1 242
(Solution) Excercise 7.2 242
Index 243

Erscheint lt. Verlag 8.12.2016
Zusatzinfo XXVIII, 226 p. 1 illus.
Verlagsort Berkeley
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte Arrays • Hashes • parsing • Ruby • Ruby Scripting • SQL • Strings
ISBN-10 1-4842-2469-8 / 1484224698
ISBN-13 978-1-4842-2469-4 / 9781484224694
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 1,7 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
31,43
Das Handbuch für Webentwickler

von Philip Ackermann

eBook Download (2023)
Rheinwerk Computing (Verlag)
34,93
Deterministische und randomisierte Algorithmen

von Volker Turau; Christoph Weyer

eBook Download (2024)
De Gruyter (Verlag)
64,95