The Ruby Developer s Guide 1st Edition Syngress pdf download
The Ruby Developer s Guide 1st Edition Syngress pdf download
download
https://ebookultra.com/download/the-ruby-developer-s-guide-1st-
edition-syngress/
https://ebookultra.com/download/usb-complete-the-developer-s-
guide-4th-edition-jan-axelson/
https://ebookultra.com/download/the-net-developer-s-guide-to-windows-
security-1st-edition-keith-brown/
https://ebookultra.com/download/mac-os-x-developer-s-guide-1st-
edition-jesse-feiler/
https://ebookultra.com/download/c-net-web-developer-s-guide-1st-
edition-saurabh-nandu/
Oracle SOA Suite Developer s Guide 1st Edition Matt Wright
https://ebookultra.com/download/oracle-soa-suite-developer-s-
guide-1st-edition-matt-wright/
https://ebookultra.com/download/biztalk-server-2000-developer-s-
guide-1st-edition-scott-roberts/
https://ebookultra.com/download/web-matrix-developer-s-guide-1st-
edition-john-paul-mueller-auth/
https://ebookultra.com/download/developer-s-guide-to-web-application-
security-1st-edition-michael-cross/
https://ebookultra.com/download/developer-s-guide-to-microsoft-
enterprise-library-c-edition-alex-homer/
The Ruby Developer s Guide 1st Edition Syngress Digital
Instant Download
Author(s): Syngress
ISBN(s): 9781928994640, 1928994644
Edition: 1
File Details: PDF, 4.10 MB
Year: 2002
Language: english
1 YEAR UPGRADE
BUYER PROTECTION PLAN
RUBY D e v e l o p e r ’s
Guide
Robert Feldt
Lyle Johnson
Michael Neumann Technical Editor
183_Ruby_FM.qxd 1/7/02 4:04 PM Page i
solutions@syngress.com
With more than 1,500,000 copies of our MCSE, MCSD, CompTIA, and Cisco
study guides in print, we continue to look for ways we can better serve the
information needs of our readers. One way we do that is by listening.
Readers like yourself have been telling us they want an Internet-based ser-
vice that would extend and enhance the value of our books. Based on
reader feedback and our own strategic plan, we have created a Web site
that we hope will exceed your expectations.
Best of all, the book you’re now holding is your key to this amazing site.
Just go to www.syngress.com/solutions, and keep this book handy when
you register to verify your purchase.
Thank you for giving us the opportunity to serve your needs. And be sure
to let us know if there’s anything else we can do to help you get the
maximum value from your investment. We’re listening.
www.syngress.com/solutions
183_Ruby_FM.qxd 1/7/02 4:04 PM Page ii
183_Ruby_FM.qxd 1/7/02 4:04 PM Page iii
1 YEAR UPGRADE
BUYER PROTECTION PLAN
Ruby
D e v e l o p e r ’s G u i d e
Robert Feldt
Lyle Johnson
Michael Neumann Technical Editor
183_Ruby_FM.qxd 1/7/02 4:04 PM Page iv
Syngress Publishing, Inc., the author(s), and any person or firm involved in the writing, editing, or
production (collectively “Makers”) of this book (“the Work”) do not guarantee or warrant the results to be
obtained from the Work.
There is no guarantee of any kind, expressed or implied, regarding the Work or its contents.The Work is
sold AS IS and WITHOUT WARRANTY. You may have other legal rights, which vary from state to state.
In no event will Makers be liable to you for damages, including any loss of profits, lost savings, or other
incidental or consequential damages arising out from the Work or its contents. Because some states do not
allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation
may not apply to you.
You should always use reasonable care, including backup and other appropriate precautions, when working
with computers, networks, data, and files.
Syngress Media®, Syngress®,“Career Advancement Through Skill Enhancement®,” and “Ask the Author
UPDATE®,” are registered trademarks of Syngress Publishing, Inc. “Mission Critical™,”“Hack Proofing™,”
and “The Only Way to Stop a Hacker is to Think Like One™” are trademarks of Syngress Publishing, Inc.
Brands and product names mentioned in this book are trademarks or service marks of their respective
companies.
KEY SERIAL NUMBER
001 UJG4TFR2T5
002 AKJ7T4MAS4
003 VMERF3854N
004 SGD34BK9HN
005 85DFMU6N7H
006 NFG438GEM4
007 BAQ2HTR46T
008 CV5TR56KMR
009 83N5M4BT6Y
010 GT67FRWFEC
PUBLISHED BY
Syngress Publishing, Inc.
800 Hingham Street
Rockland, MA 02370
The Ruby Developer’s Guide
Copyright © 2002 by Syngress Publishing, Inc. All rights reserved. Printed in the United States of America.
Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or
distributed in any form or by any means, or stored in a database or retrieval system, without the prior
written permission of the publisher, with the exception that the program listings may be entered, stored,
and executed in a computer system, but they may not be reproduced for publication.
Printed in the United States of America
1 2 3 4 5 6 7 8 9 0
ISBN: 1-928994-64-4
Technical Editor: Michael Neumann Cover Designer: Michael Kavish
Acquisitions Editor: Catherine B. Nolan Page Layout and Art by: Reuben Kantor and Shannon Tozier
Developmental Editor: Kate Glennon Copy Editor: Jesse Corbeil
Indexer: Robert Saigh
Distributed by Publishers Group West in the United States and Jaguar Book Group in Canada.
183_Ruby_FM.qxd 1/7/02 4:04 PM Page v
Acknowledgments
We would like to acknowledge the following people for their kindness and support
in making this book possible.
Richard Kristof and Duncan Anderson of Global Knowledge, for their generous
access to the IT industry’s best courses, instructors, and training facilities.
Ralph Troupe, Rhonda St. John, and the team at Callisma for their invaluable insight
into the challenges of designing, deploying and supporting world-class enterprise
networks.
Karen Cross, Lance Tilford, Meaghan Cunningham, Kim Wylie, Harry Kirchner,
Kevin Votel, Kent Anderson, and Frida Yara of Publishers Group West for sharing
their incredible marketing experience and expertise.
Mary Ging, Caroline Hird, Simon Beale, Caroline Wheeler,Victoria Fuller, Jonathan
Bunkell, and Klaus Beran of Harcourt International for making certain that our
vision remains worldwide in scope.
Annabel Dent of Harcourt Australia for all her help.
David Buckland,Wendi Wong, Marie Chieng, Lucy Chong, Leslie Lim, Audrey Gan,
and Joseph Chan of Transquest Publishers for the enthusiasm with which they receive
our books.
Kwon Sung June at Acorn Publishing for his support.
Ethan Atkin at Cranbury International for his help in expanding the Syngress
program.
Jackie Gross, Gayle Vocey, Alexia Penny, Anik Robitaille, Craig Siddall, Darlene
Morrow, Iolanda Miller, Jane Mackay, and Marie Skelly at Jackie Gross & Associates
for all their help and enthusiasm representing our product in Canada.
Lois Fraser, Connie McMenemy, and the rest of the great folks at Jaguar Book Group
for their help with distribution of Syngress books in Canada.
v
183_Ruby_FM.qxd 1/7/02 4:04 PM Page vi
Technical Editor’s
Acknowledgements
I’d like to thank the Syngress staff for their support, and John Small, who
encouraged me in overseeing the writing of this book. I’d like to thank
Matz for creating such a wonderful language; Dave and Andy for two
really great books about programming in general, and Ruby; Kentaro
Goto for his tutorial that directed me three years ago to Ruby; and
Hiroshi Nakamura for many valuable comments and explanations about
SOAP4R. Finally, thank you to the team of Merlin.zwo for being patient
with me, as well as to the whole Ruby community for letting me partici-
pate in such a great development.
vi
183_Ruby_FM.qxd 1/7/02 4:04 PM Page vii
Contributors
focuses on what can be learned from applying the complex but robust
systems found in nature to tools and methods for developing and testing
software. Robert also teaches courses on software engineering to students
in the Computer Science and Computer Engineering programs at
Chalmers University.
Robert holds a master’s degree from Chalmers University and is a
member of the IEEE. He has previously worked as a consultant software
engineer. He programs mostly in C, Haskell, and Ruby and uses Ruby
frequently in his research since its dynamic nature allows him to easily test
new ideas. He is working on a number of larger Ruby projects, including
the Rockit compiler construction toolkit and the RubyVM project, to
build a set of plug-and-play components for assembling Ruby virtual
machines.
Robert currently resides in Gothenburg, Sweden with his wife,
Mirjana, and daughter, Ebba. He wants to acknowledge them for their
support and love.
viii
183_Ruby_FM.qxd 1/7/02 4:04 PM Page ix
ix
183_Ruby_FM.qxd 1/7/02 4:04 PM Page x
183RubyToC.qxd 1/7/02 4:31 PM Page xi
Contents
Foreword xxiii
Chapter 1
■ Ruby’s design
Booting Ruby 1
philosophy is known
as the Principle of Introduction 2
Least Surprise. That An Overview of Ruby 2
means that Ruby Installing Ruby and its Tools 3
works the way that
you expect it to Installing Ruby on Unix 5
work. The more you Installing Ruby from Source Code 5
develop with Ruby, Installing from Packages 7
the more you’re
going to realize that Installing Ruby on a Windows System 7
you’re spending Installing Applications and Libraries
time producing from RAA 8
code—real code
which works, is IDE and Editor Support in Ruby 10
readable, and solves Emacs 11
the problems at VIM 12
hand.
Other Editors 12
RubyWin 12
Ruby Development Environment (RDE) 13
Additional Tools a Rubyist Must Have 13
Ruby Interactive (Ri) 14
Interactive Ruby (IRb) 15
Debugging Ruby Applications
with debug.rb 17
A Short Syntax Style Guide 22
Using Comments 22
Naming 23
Iterators 24
Indentation, Spacing, Parentheses 24
xi
183RubyToC.qxd 1/7/02 4:31 PM Page xii
xii Contents
Dangerous Ruby 25
Local Variables versus Methods 25
More Whitespace Issues 25
Block Local Variables 26
Comparing Ruby 26
Java 26
Perl 32
Language Constructs 32
Object-Oriented Programming 33
Access Control 34
Arrays and Hashes 35
Hashes 36
Iterators 36
Convincing Management to Use Ruby 37
Summary 39
Solutions Fast Track 39
Frequently Asked Questions 41
Chapter 2
GUI Toolkits for Ruby 43
Introduction 44
Using this Book’s Sample Applications 45
Using the Standard Ruby GUI:Tk 46
Obtaining Tk 46
Ruby/Tk Basics 47
Creating Responses to Tk’s Callbacks
and Events 48
Working with Ruby/Tk’s Layout Managers 50
Ruby/Tk Sample Application 54
Using the SpecTcl GUI Builder 67
Obtaining Tk Extensions:Tix and BLT 68
Using the GTK+ Toolkit 68
Obtaining Ruby/GTK 69
Ruby/GTK Basics 70
Programming Signals and Signal Handlers 71
Working with Ruby/GTK’s Layout Managers 72
Ruby/GTK Sample Application 76
183RubyToC.qxd 1/7/02 4:31 PM Page xiii
Contents xiii
xiv Contents
"Don't move again," he harshly warned him. "Put your hands behind
you."
Jean Paul slowly obeyed, and Davy twisted the cord around his wrists.
"Wat you do?" Jean Paul protested, with an eye on the gun and an
admirable air of astonished innocence. "I your man, me. I all time work for
you. You always moch bad to me. No believe no'ting."
"Next time you leave camp at night tell us where you're going," said Jack
with a hard smile.
It did not feaze Jean Paul. "Mus' I tell w'en I go to see a girl?" he
demanded, highly injured.
Jack laughed. "Very clever! But the girl was Etzeeah, and I know all you
said."
"Kneel down," commanded Jack. "Tie his ankles together, Davy, with his
wrists between."
Jack finished the job himself, going over all the knots, and taking half a
dozen turns around Jean Paul's body, with a final knot on his chest, out of
reach of both hands and teeth. He and Davy then picked him up and laid him
inside his own tent. His pipe dropped out of his mouth in transit. Jack, with
grim good-nature, picked it up and thrust it between his teeth again. Jean
Paul puffed at it defiantly. Jack fastened the tent flaps back, affording a clear
view of the interior.
"I'll have to leave him to you while we're gone, Davy. Keep away from
him. Don't listen to anything he says. Above all, don't touch him. I don't see
how he can work loose, but if he should"—Jack raised his voice so it would
carry into the tent—"shoot him like a coyote. I order you to do it. I take the
consequences."
"God knows what poisonous mess is stewing inside his skull," Jack said
to Mary, as they rode away.
When the two of them cantered into the quadrangle of the tepees, with its
uproar of screaming children, yelping curs, and loose horses, it needed no
second glance to confirm the report that the redskins were in an ugly temper.
An angry murmur went hissing down the line like the sputtering of a fuse.
Every one dropped what he was doing; heads stuck out of all the tepee
openings; the little children scuttled inside. Men scowled and fingered their
guns; women laughed derisively, and spat on the ground.
Jack and Mary pulled up their horses at the top of the quadrangle, and
coolly looked about them. Filth and confusion were the keynotes of the
scene. This was the home-camp of this little tribe, and the offal of many
seasons was disintegrating within sight. All their winter gear, furs,
snowshoes and sledges, was slung from vertical poles out of harm's way.
Between the tepees, on high racks out of reach of the dogs, meat was slowly
curing.
As for the people, they were miserably degenerate. Their fathers, the old
freebooters of the plains, would have disowned such offspring. The mark of
ugliness was upon them; pinched gray cheeks and sunken chests were
pitifully common; their ragged store clothes hung loosely on their meagre
limbs. A consciousness of their weakness lurked in their angry eyes; in spite
of themselves the quiet pose and the cold, commanding eyes of the whites
struck awe into their breasts. They saw that the man and the girl had guns,
but they hung in buckskin cases from the saddles, and they made no move to
reach for them. They saw the two speak to each other quietly. Once they
smiled.
It was upon Jack's calling Mary's attention to the absurdity of it, this little
company of tatterdemalions seeking to defy the white race. There were
eighteen tepees, small and large, containing perhaps ninety souls. It was
absurd and it was tragic. Remote and cut-off even from the other tribes of
their own people, they had never seen any white men except the traders at
Fort Cheever and Fort Erskine, and the rare travellers who passed up and
down their river in the summer.
"I'm sorry for them," Mary murmured. "They don't know what they're
doing."
"Don't look sorry for them," Jack warned. "They wouldn't understand it."
An old man issued from the largest tepee, and approached them, not
without dignity. He was of good stature, but beginning to stoop. He wore a
dingy capote, or overcoat made out of a blanket, and to keep his long,
uncombed gray hair out of his face, he had a dirty cotton band around his
forehead. Not an imposing figure, but there was a remnant of fire and pride
in his old eyes.
Jack's eyes impaled the old man. He ignored the hand. Jack had enough
of their talk for his purpose. "I do not shake hands with horse thieves," he
said.
Etzeeah fell back with an angry gesture. "I am no horse thief," he said.
"All the horses you see are mine, and my people's!"
"You drove away the governor's horses," said Jack. "And drove them
back after he had gone. They are company horses. It was a foolish thing to
do."
"It is Ascota who speaks me ill," cried Etzeeah with a great display of
anger. "He comes here, and he makes trouble. He calls us thieves and bad
men. What do I know of white men, and white men's horses?"
"This is what Jean Paul told him to say," Mary murmured in English.
"They were going to make believe to quarrel before us."
"Since when has the chief of the Sapis learned to lie?" demanded Jack
coldly.
"You told a different tale when Ascota came to your lodge last night."
Etzeeah was silenced. His jaw dropped, and his black eyes looked old and
furtive.
"I have come for the sick white man, Garrod," said Jack. "Where is he?"
"I have seen no sick white man," muttered Etzeeah. "Ascota ask me
already."
"Your women hear you lie," said Jack scornfully. "They are laughing
behind you. I have had enough lies. Call everybody out of the tepees!"
"Call them out!" repeated Jack, "or I will pull them out by the hair."
Etzeeah raised his voice in sullen command, and the rest of the women
and the children issued out of the tepees, the little children scurrying madly
to hide behind their mothers, and clinging to their skirts.
Jack pointed to the bottom of the square. "All stand close together!" he
ordered.
The men scowled and muttered, but obeyed. There was no reason why
any one of them should not have put a bullet through Jack's breast, sitting on
his horse before them empty-handed—no reason, that is, except the terrible
blue eyes, travelling among them like scorching fires. Many a little man's
soul was sick with rage, and his fingers itching for the trigger, but before he
could raise his gun the eyes would fall on him, withering his breast. It was
the white man's scorn that emasculated them. How could one fire at a being
who held himself so high?
"Go through the tepees as quickly as you can," Jack said to Mary. "I will
hold your horse and watch them."
"Stand where you are!" Jack commanded. "I am not through with you."
"Etzeeah, you are a fool," said Jack, loud enough for all to hear. "Ascota
feeds you lies, and you swallow them without chewing. Do you think you
can fight all the white men with your eighteen lodges? To the south there are
more white men than cranes in the flocks that fly overhead in the spring.
When your few shells are spent, where will you get more bullets to shoot the
white men?"
"Why isn't Ascota here now to help you?" asked Jack quickly. "He said he
would be here to show you how to fool me? Why? Because I tied him like a
dog in his tent, with a boy to watch him."
"If you did drive the white men away," Jack went on, "how would you
kill the moose for food without their powder? Who would buy your furs?
Where would you get flour and tea and tobacco, and matches to light your
fires? Wah! You are like children who throw their food down and tread on it,
and cry for it again!"
What effect this had, if any, could not be read in the dark, walled faces
that fronted him.
Mary returned to Jack, bringing a gun, which she handed him without
comment. He recognized it. It was a weapon that had lately been aimed at
him.
The chief threw up his hands. "A Winchester thirty-thirty, like all our
guns," he protested. "There are twenty here the same."
Other men held up their weapons to show. Jack merely turned the gun
around, and pointed to initials neatly scratched on the stock.
"I don't know," muttered Etzeeah. "I have not seen him."
"You are lying," Jack said coldly. "For the last time I ask you, where is
Garrod?"
Jack turned to Mary. "Is there a woman or a child that he sets great store
by?" he asked swiftly in English.
Following her glance, Jack had no difficulty in picking out the one she
meant. He was a handsome, slender boy, a year or so younger than Davy.
Where the other children were in rags, he was wearing an expensive wide-
brimmed hat from the store, a clean blue gingham shirt, new trousers, and
around his waist a gay red sash. Moreover, he had the wilful, petulant look
of the spoiled child; plainly the apple of the old man's eye.
There were several horses picketed within the square, handy to their
owners' uses, and Mary made for the nearest.
"It is for your son to ride," Jack said with a grim smile. "Etzoogah, come
here!" he commanded.
The boy approached with an awed, scared air. Etzeeah started to his side,
but Jack coolly separated them by moving his horse between. Mary returned
with the other horse, and the boy fell into her hands. She smiled at him
reassuringly.
"Get on," she said. "Nobody's going to hurt you. Come with us to our
camp. Davy is there."
All the children knew Mary and Davy. Moreover, there were always good
things to eat in a white man's camp. The boy was well pleased to obey.
Etzeeah shrilly commanded him to dismount, but the apple of his eye merely
laughed at him. The old man began to break. His eyes dulled with anxiety;
his hands trembled.
"What you do with my boy?" he demanded. "We shoot if you take him."
Jack laughed. "A red man can't shoot a white man," he said. "His hand
shakes too much. We will take the boy to our camp. We will keep him until
you bring the sick white man to us. If you don't bring him back, well, maybe
we will send the boy outside and make a white man of him."
Jack gave him a moment. There was no sign from Etzeeah, except his
trembling.
His hand went to his throat. "Stop!" he muttered thickly. He did not cry
out or protest. He merely shrugged. "So be it," he said stoically. "I will find
Garrod if I can. Ascota took him away from camp two days ago, and came
back without him."
Etzeeah shook his head. "He was mad. Madmen are not harmed. He took
him into the bush and left him."
Jack shrugged impatiently. "Very well," he said. "I'll have no more lies.
You come back and show me the place now, or I take the boy."
The boy obeyed, none too willingly, and Etzeeah mounted in his place.
"You feed me?" he asked.
"There is plenty," said Jack. To Mary he said in English. "Make him ride
ahead of you out of camp. I'll stay and hold the crowd. Sing out when you
reach the trees, and I'll come."
In spite of herself, fear for him transfixed her eyes. "Jack," she
murmured.
Etzeeah got his blanket, and he and Alary rode out of the square. The
Indians stirred and muttered angrily, but the blue eyes still held them
chained. When Mary's "All right!" reached his ears, Jack turned his horse,
and, swinging himself sidewise with a thigh over the saddle, walked out of
the square, watching them still. The theatrical instinct of a young man
suggested rolling a cigarette to him. Slipping his arm through the bridle rein,
he got out the bag of tobacco and the papers.
At a hundred yards distance the spell that held the Indians began to break,
and they moved forward between the tepees, cursing Jack, and brandishing
their arms. Jack's horse started forward; pulling him in, he moistened the
cigarette, watching them still. Guns were raised at last—and fired. Still Jack
walked his horse. He could see that as yet the gun-play was merely to save
themselves in the eyes of their women. No bullets came in his direction. But
he could not tell how long—— He lit his cigarette.
XVII
ASCOTA ESCAPES.
When Etzeeah caught sight of the little tents through the trees, he pulled
up his horse. Extending a trembling forefinger, he asked hoarsely:
"Ascota, is he there?"
"Yes," said Jack. "He can't hurt you. He's tied up."
Etzeeah slipped from his horse. "I wait here," he said. "I not go where he
is."
Etzeeah had turned pale; his eyes darted from side to side, and he
moistened his lips. "I am afraid," he muttered doggedly. "He is more than a
man. He has made the beasts speak to me; the porcupine, the bear, the
beaver, each after his own nature. He has made men mad before my eyes,
and brought their senses back when it pleased him. He mastered the white
man, and made him kneel before him, and bring him his food. This I saw.
The like was never known before. Who would not be afraid? What if he is
tied? He will wither me with his eyes!"
Jack led his horse across the brook. Here another evidence of Jean Paul
Ascota's evil power awaited him. Davy at sight of Jack sprang up with an
odd, low cry, and came running to meet him, running waveringly as if his
knees were sinking under him. He cast himself on Jack, trembling like aspen
leaves.
The boy's agonized voice trailed off; he sighed, and, his slender frame
relaxing, hung limply over Jack's arm. Jack let his horse go, and waving to
Mary to keep back, he bent, and dashed the cold brook water in Davy's face.
"Never you mind, old boy," said Jack gruffly. "Forget it! Mary and I are
both here. It's all right now."
He carried him up the bank, and put him down by the fire. A sip from
Jack's flask further restored him. Then Jack turned with grim eyes and
clenched fists toward Jean Paul's tent.
"Lie there and want it, damn you!" said Jack. He had much ado to restrain
himself from kicking the beast. As it was he flung him over none too
tenderly, and taking the handkerchief from the breed's neck, tied it tight
round his eyes.
"There's somet'ing you don't want me to see, huh?" sneered Jean Paul.
He waved his hand to Mary. She brought Etzeeah across, and flew to
comfort and restore Davy. They never did learn exactly what Jean Paul had
said to him. At any mention of the subject the boy's agitation became painful
to see.
Etzeeah after coming into camp never once opened his mouth. He
regarded Jean Paul's tent as nervously as if its flimsy walls confined a man-
eating grizzly. He sat down at some distance, and at the side of the tent
where Jean Paul could not have seen him even had his eyes not been
blindfolded.
Jack brought wood, and Mary started to prepare a meal for them all,
before taking to the trail again. At a moment when there was comparative
silence a loud voice suddenly issued from the tent, speaking the Sapi tongue.
"Etzeeah is there!"
They all started violently. It was uncanny. Etzeeah paled, and sprang up.
Jack laid a heavy hand on his shoulder.
"I smell him!" the voice of Jean Paul went on, full of mocking triumph.
"Nothing can be hidden from me! Etzeeah has betrayed me! Bound and
helpless though I am, don't think you can escape me, old Etzeeah! My
medicine travels far! Your son, your fine boy Etzoogah, shall pay. He's
paying now! He falls and twists on the ground with the frothing sickness—
the fine boy! He curses his father!"
Jack was struggling with the frantic father. "For God's sake, stop his
mouth!" he cried to Mary. "A gag!"
She flew to the tent, and presently the voice was stilled. The last sound it
uttered was a laugh, a studied, slow, devilish laugh, frightful to untutored
ears. We are accustomed to such tricks on our stage.
"Jack! Not that! Not that!" she gasped, breathless with horror.
"I'm not going to do it here," Jack said harshly. "I'll take him away. What
else can I do? Look at Davy! Look at the Indian! This breed is like a
pestilence among us! He'll have us all stark mad if I don't—"
"No! No!" she implored, clinging to him. "You and I are strong enough to
stand it, Jack. We'll come through all right. But we never could forget"—her
voice sunk low—"not his blood, Jack!"
His purpose failed him. He caught up her hand and pressed it hard to his
cheek with an abrupt, odd motion. Dropping it, he turned away. "All right,"
he said shortly. His eyes fell on Etzeeah. "Get up!" he cried scornfully. "This
is old woman's talk! If he can send sickness through the air, why doesn't he
strike me down, who bound him, and blinded, and gagged him?"
In an hour they were ready for the trail again. Jack sent Mary and Davy
on ahead with Etzeeah and the pack-horses. It was arranged that as soon as
they reached the site of the former Indian camp, where Etzeeah said Jean
Paul had turned Garrod adrift, they were to drop the baggage and go in
search of the missing man.
As soon as the others had ridden out of sight, Jack removed the blind and
the gag from Jean Paul and cut the cord that bound his ankles and his wrists
together. He freed his wrists; his ankles he left bound. The half-breed
stretched out, and rolled on the ground in an ecstacy of relief. Finally he sat
up, and Jack put the food that had been left for him where he could reach it.
Jack stood back, watching him grimly, a hand on the butt of his revolver.
"I wouldn't waste good food on you if I were," returned Jack. "Hurry up
and put it away."
"You not got the nerve to shoot me," sneered Jean Paul.
"Try to hypnotize me and you'll see," Jack said with a hard smile. "I'd be
glad of an excuse."
"Why don' you shoot me now?" Jean Paul persisted, with a look like a
vain and wilful child, experimenting to see how far he can go against a
stronger force.
"The police can't touch me. I do not'ing against the law, me."
"There's a thing called treason in this country," said Jack. "You can hang
for that."
Jean Paul laughed. "Fort Cheever long way," he said. "You not bring me
there, never."
"Then I'll bury you on the way," said Jack with his grim start of laughter.
When Jean Paul had eaten, Jack bound his hands in front of him this time,
and liberated his feet.
"You can't make me," Jean Paul said with his sidelong look.
"Shan't try," said Jack coolly. "You can run along at my horse's tail if
you'd rather."
Jean Paul scowled at the suggested indignity, and climbed on without
more ado. Jack tied his hands to the saddle horn.
It was seventeen miles down the forested valley back to the site of the
former Indian camp. This, the ancient route between Forts Cheever and
Erskine, was a good trail, and they covered the distance without stopping.
Jean Paul rode ahead, Jack following with his revolver loose in its holster. It
may be said that he almost hoped the breed would try to escape, to give him
a chance to use it, but perhaps Jean Paul guessed what was in his mind. At
any rate he rode quietly.
Issuing out of the forest at last, the Spirit River valley was spread before
them, with the big stream winding among its wide, naked bars. The
abandoned camp lay below them, a village of bare tepee poles in a rich
meadow surrounded by an open park of white-stemmed poplars. As they
approached it a fresh anxiety struck at Jack's breast, for he saw the three
pack-horses picketed to the trees with their packs on their backs. He knew
that only an emergency would have taken Mary and Davy away without
unloading them. The animals had been rolling, to the no small detriment of
their baggage. Jean Paul laughed at the sight.
Jack had no recourse but to possess his soul in patience until they came
back. Meanwhile he unpacked the horses, and pitched their four little tents,
two on each side of the fire. He bound Jean Paul securely as before, and put
him in his own tent. He hung the gag from the ridge-pole with significant
action. Jean Paul's lips were already bruised and blue as a result of the
previous application.
Not until late afternoon was Jack's anxious breast relieved by the sight of
the three horses single-footing it across the meadow. Davy rode first, then
Etzeeah, looking crestfallen and sullen, and Mary bringing up the rear, her
rifle across her arm, and determination making her girl's face grim.
Evidently there had been trouble; but the three of them, and uninjured! Jack
could have shouted with relief.
"He ran away," Mary explained briefly. "Davy and I had hobbled two of
the riding horses, when he suddenly jumped on the third and headed north.
He got a couple of minutes' start before we could get the hobbles off and
after him. When he got in the timber, he turned the horse adrift, and we lost
more time following its tracks. But I guessed he would make back to the trail
as soon as you had passed, so we patrolled it, and we nabbed him at last."
"Good work!" said Jack briefly. It did not occur to him that there was
something rather extraordinary in a mere girl and boy bringing in the
headman of the Sapi Indians by themselves. He expected it of their white
blood.
There seemed to be nothing for it now but to bind Etzeeah hand and foot
also, and to convert Jack's tent into a cell for him. The two prisoners lay in
their separate shelters on one side of the fire, while their captors watched
them from the other. Jack was to sleep with Davy, and except for Mary's
rifle, all the weapons in camp were stowed in that tent. The long-threatened
rain set in steady and cold, and the night threatened to be as dark as winter.
They ate their supper inside Davy's tent, while the fire sputtered and
sulked in the rain. A heavy silence prevailed; for one thing, they were dead
weary, and their difficulties were pressing thick upon them. The rain did not
lighten them. Jack, looking at Mary and Davy, thought with softening eyes:
The instant they had finished eating he ordered the two youngsters to bed.
"I'll feed the two of them," he said, nodding across the fire, "and clean up. It
will help keep me awake."
"If I once let myself go I'd never wake," he said with a laugh. "I'll call
you at midnight." It was tacitly understood between them that Davy was not
to keep watch.
His work done, Jack sat down inside the door of Davy's tent to smoke,
and if he could, to keep the fire going in spite of the rain. He found that it
required too great a blaze to be proof against the downpour. He had not
nearly enough wood to last throughout the night, so he let it out in order that
Mary might enjoy what remained of the fuel. When the fire went out he
could no longer see into Jean Paul's tent, so he crossed over and sat down
beside him. Throughout the weary hours he sat smoking to keep himself
awake, until his mouth was raw. From the adjoining tent issued the
reassuring sound of Etzeeah's snores; Jean Paul, too, never stirred, and his
breathing was deep and slow.
Midnight had passed before Jack had the heart to waken Mary. He first
took advantage of a lull in the rain to start the fire again. As he threw back
the curtain of her little tent, the firelight shone in her face, rosy and serene in
sleep, her cheek pillowed on her round arm. The sight stirred him to the very
core of his being. He knelt, gazing at her breathlessly. He forgot everything,
except that she was lovely. He suddenly bent over her with a guilty air, and
lightly kissed her lips.
She opened her eyes. He sprang away in a panic at the thought of her
scorn. But she awoke with an enchanting smile. "Jack I dreamed——" she
began, as if it were the sweetest and the most natural thing in the world for
her to find him bending over her at night—and caught herself up with a
burning blush. Jack hastily retreated outside. Neither of them referred to it
again.
Jack was asleep as soon as he stretched himself beside Davy. The next
thing he knew, something had happened, what it was he could not tell. He
staggered to his feet, and out into the open, drunken, paralyzed with sleep,
and fighting for consciousness.
That awakened him. He saw her on her knees before Jean Paul's tent, and
ran to her. The tent was empty. The rain poured down on their heads
unheeded. The fire was out.
Mary was in great distress. "My fault," she said. "It rained harder than
ever, and the fire went out. I could not bear to sit beside him as you did. It
made me sick to be so near him! I thought I could watch from my tent. The
wind came up and it was hard to see. He fixed the blanket to look as if he
was still under it. He must have slipped out of the back!"
Mary's searching hand found two small stones in the blanket that she
showed Jack; one had a sharp, jagged edge, and the explanation was clear.
Throughout the hours when Jack sat beside him, and he seemed to be so
sound asleep, the wily breed had been patiently rubbing at the cords until
they frayed apart.
"Good God!" Jack gasped. "He's got him, too! How could he? With you
not twenty feet away. And not a sound. Is it a man or a devil?"
The pegs that held down the back of Jack's lean-to were drawn, showing
how Jean Paul had entered, and how he had removed his prey.
"Etzeeah—" said Mary tremblingly, "do you suppose Jean Paul has—
"He would hardly take him alive," said Jack grimly, "without a sound."
"His hands!"
It was near four, and beginning to be light. The rain ceased, and a thick
white mist clung to the river-meadows. It was not easy to find the horses.
Jack satisfied himself that two of them were missing. Why two? he thought.
He did not find the body of Etzeeah, as he half expected.
He had to wait for better light before he could look for tracks. He found
them at last, leading back up the Darwin valley, the fresh hoof-prints of two
horses superimposed on the confusion of tracks they had made coming and
going. The horses had been ridden at a gallop. Jack returned to tell Mary.
"He's gone all right," he said. "And alive or dead, he's taken Etzeeah with
him. The second horse carried a load too. He's gone back to the Sapis for
grub and a gun."
Jack stood considering with bent brows and clenched hands. He finally
shook his head. "He could come back to-night, and pick us off one by one
around our fire. We'll have no peace or security until I get him, Mary. I'll
have to leave Garrod to you and Davy. You know how much finding him
means to me!"
"But you," she faltered, her eyes wide with terror for him, "you can't go
back alone to the Sapis. They shot at you!"
Two hours later Jack rode into the Sapi village for the second time, and
flung himself off his tired and dripping mount. The horse stood with hanging
head, and feet planted wide apart, fighting for breath. This time Jack's arrival
created little visible sensation. The people were otherwise and terribly
preoccupied. A strange silence prevailed, extending even to the children and
the dogs. Many of the people were gathered around the entrance to Etzeeah's
lodge. They merely turned their heads with a scowl, and the men drew on the
walled look they affect in the presence of whites. In the faces of the women
and children awe and terror were painted.
"How long?"
Outside the square Jack saw two more dead weary horses still wet from
their punishing ride.
There was no answer. All the heads turned as one toward the tepee.
Jack threw back the blind that hangs over the entrance, and, stooping,
entered. He was prepared for what he saw. The body of the old man
sprawled on its back beside the fire. All around the tepee squatted his wives
and his sons in attitudes of sullen mourning. Etzoogah, the best-beloved,
eyed the body askance with scared eyes, and chewed the tassel of his red
sash. Etzeeah was not a comely sight. Death was in his face, but none of the
majesty of death. His grimy, wrinkled skin was livid and blackened. The
marks on his scrawny throat showed how he had met his end.
Stooping, Jack picked up his hand, and let it fall. It was significantly cold
and stiff. He decently composed the dead man's limbs, and signed to one of
the women to cover the body with her shawl.
Jack went outside again, and looked over the silent crowd. Seeing
Charlbogin, one of the deserters, among them, he went to him.
The sulky boy could not resist the command. "Ascota throw Etzeeah on
the ground, so!" he said with a striking gesture. "He say: 'This is a man who
betrayed me! Bury him!'"
"He take a gun and a blanket, and moose meat from the fire; he catch a
horse and ride west."
"Ascota is not a man like us," the young man muttered. "He does what he
likes."
"More woman's talk!" cried Jack. "Are there any men among you? Come
with me, and I'll show you stronger magic than Ascota's."
He cursed them roundly. "I'll go alone then," he cried. "Bring me the best
horse there is. I'll pay."
Beyond the village the valley narrowed, and the roar of the plunging
stream rose from the bottom of it. The bordering hills rapidly became steeper
and higher. The trail did not follow the course of the river, but found an
easier route along the face of the hills a hundred feet or so above. The sides
of the hills had been burned over, here, and the forest was only a wilderness
of naked, charred sticks. Many of these had fallen in the trail, making slow
going for the horse. Occasionally the little river paused for a while in its
headlong descent to wander back and forth through a green meadow. The
trail came down to cross these easy places, and it was only here that Jack
could extend his horse.
The plain tracks of Jean Paul's horse led him on. Jack could read that the
breed was riding recklessly and distancing him steadily mile by mile, but he
would not on that account risk his own horse's legs through the down timber.
"I'll get him," he said to himself coolly, with the terrible singleness of
purpose of which he was capable. In such a mood he was no longer a man,
but an engine.
Jack had come across the mountains from Fort Erskine by this trail, and
he knew it well. It was evidently for Fort Erskine, where he was not well
known, that Jean Paul was making. Ahead, through the forest of bare sticks
that hemmed him in, Jack could see the gateway to the mountains, the
magnificent limestone pile of Mount Darwin on the right. He had worked
around the base of Darwin, and all this was familiar ground.
It was about noon when Jack and his horse, rounding a spur of the hill,
were brought up all standing by the sight of a dark body lying in the trail
ahead. Dismounting, and tying his trembling animal to a tree, Jack went
forward to investigate. It was a horse, Jean Paul's horse, with a broken
foreleg, and abandoned to its fate. Jack's heart beat high with hope; the end
of this thing was in sight now. The poor brute raised agonized eyes to him.
Jack could not put a bullet through its head without betraying his
whereabouts, but he mercifully cut its throat.
He spent an hour searching up and down the shores of the creek for
tracks, without success. Neither was there any evidence of Jean Paul's
having returned to the trail farther along. If Jack was well skilled in reading
tracks, the breed was adept in hiding them. Jack's only recourse was to
climb. There is a little eminence abutting on the base of Mount Darwin and
on the top of it a knoll of naked rock that overlooks the valley for miles up
and down. Knowing the natives' deep-rooted aversion to drinking cold water,
Jack guessed that Jean Paul would have to build a fire, and from this point of
vantage a fire, however small, would almost surely betray his whereabouts.
Taking his bearings, he made a beeline up the steep slope through the
heavy, old timber that reached up from the valley, and through a dense light
growth of poplar above. This part of the mountain offered no special
difficulties in climbing, and in half an hour he threw himself down on the
flat top of the knoll, with the valley spread before him.
Mount Darwin reaches a long promontory down the valley it has given its
name to. The promontory consists of seven little peaks in a row, each one
rising over the head of the one in front, and the seventh is the actual summit
of the mountain. It was on number one of these little summits that Jack now
lay, looking down the valley up which he had ridden that morning. A mile or
so away was a patch of green with a black dot upon it, that he guessed was
his horse.
Off to his left, hidden in the forest, the creek came tumbling down from
the snows above; on his right hand the river washed the rocky base of the
monarch. The easiest way to the summit is right on up over the succeeding
peaks; indeed on this side there is a mountain goat trail direct to the top.
Darwin can also be climbed, but not so easily, by ascending the creek for a
couple of miles, thence up a steep slide to a long hogback that leads back to
the sixth peak. On the river side the rocky cliffs tower six thousand feet into
the air, sheer and unscalable. Such was the theatre of the pursuit of Jean Paul
Ascota.
In all the wide space opened to Jack's eye there was not a sign of life,
except the black pin-point that he supposed was his horse, and a pair of
eagles, sailing and screaming high above the forest. Nowhere in the
brilliantly clear air was there the least sign of smoke. He ate some of his
bread and meat while he watched, and smoked his pipe. He marked a place
around to the right below where the trail passed over a rocky spur. On the
other side it was open to him through the down timber; so that Jean Paul
could not pass either way on the trail without his seeing him.
Jean Paul's path up through the thickly springing poplar saplings was not
more than two yards from Jack's own. Such are the caprices of the Goddess
of Chance! He had crossed the rock, and continued on up the mountain by
the mountain goat trail, which first became visible here. Evidently believing
that he had shaken off pursuit, and that no one would dream of looking for
him on the mountain, he was no longer taking any care to cover his tracks.
Jack paused within the shelter of the trees to reconnoitre. The great slope
of rock opposite, with its wide, bare ditch, made a well-nigh perfect natural
fortification. He watched the top of it lynx-eyed, and presently he was
rewarded by the sight of a wisp of smoke floating over the edge. Jack drew a
long breath and grimly smiled. So that was where he was!
He had chosen admirably. The growing timber ended at the spot where
Jack was, but up above there was enough down timber to keep the breed in
fire until the judgment day, if he wished to stay, and his fire would be
invisible from any point in the valley. For water, all the ledges and hollows
on the northerly side were heaped with snow; for food there were mountain
goats and ptarmigan; for defence he had only to roll a stone down on the
head of any one who tried to climb to his aerie.
The sun was three hours lower before he stood at the edge of the timber
line on the other great spur of the mountain. He hesitated here. Above him
extended a smooth, steep slide of earth and stones at least two thousand feet
across, and without so much as a bush or a boulder for cover. At the top of
this slide was the hogback that led back to the sixth peak. If Jean Paul was
watchful he could scarcely fail to see Jack mounting the naked slope. True,
nearly half a mile separated them, but a moving black spot, however small,
would arrest his attention if he saw it. He would not mistake it for an animal,
for the only animal on the upper slopes is the snowy mountain goat.
However, Jack had to chance it. His principal fear was that Jean Paul,
seeing him, might climb down from his rock and gain a long start of him to
the valley. But he reassured himself with the thought that the Indian could
not guess but that there were others waiting below. It would require a stout
heart to climb down that rock in the face of possible fire from the trees.
Jack started his climb. Occasionally he could see Jean Paul moving
around on his distant rock. Sometimes he thought the black spot seemed to
stand and watch him, but this was his fancy. However, when he was halfway
up, he saw him without doubt begin to climb the face of the third peak, and
Jack knew that he had been discovered. Jean Paul was going up instead of
down. "I'll get him now," Jack told himself.
Thus began a strange and desperate race for the summit of the mountain.
Until near the end it was anybody's race; Jean Paul was the nearer, but he
had the steeper way to go; he was also the fresher of the two, but Jack was
insensible of fatigue. The Indian kept himself out of sight for the most part,
but occasionally the configuration of the rocks obliged him to show himself,
and Jack marked his progress keenly. Meanwhile his own climb was nearly
breaking his heart. He found that it was only a heart after all, and not a
steam-chest. One cannot run up a mountain with impunity.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookultra.com