Class: MyScripts::Script

Inherits:
Object
  • Object
show all
Defined in:
lib/my_scripts/script.rb

Overview

Base class for all scripts. Subclass it and override run method with actual work your script will be doing

Direct Known Subclasses

Citi, Dummy, Gitto, Jew, Rabbit, Wake

Instance Method Summary collapse

Constructor Details

#initialize(name, argv, cli) ⇒ Script

Returns a new instance of Script.



5
6
7
8
9
# File 'lib/my_scripts/script.rb', line 5

def initialize( name, argv, cli )
  @name = name
  @argv = argv
  @cli = cli
end

Instance Method Details

#getsObject



27
28
29
# File 'lib/my_scripts/script.rb', line 27

def gets
  @cli.stdin.gets
end

#puts(*args) ⇒ Object



22
23
24
25
# File 'lib/my_scripts/script.rb', line 22

def puts *args
  @cli.stdout.puts *args
  nil
end

#runObject



19
20
# File 'lib/my_scripts/script.rb', line 19

def run
end

#to_sObject



38
39
40
# File 'lib/my_scripts/script.rb', line 38

def to_s
  "#{@name} #{@argv.join(' ')} -> #{self.class}"
end

#usage(examples, explanation = nil) ⇒ Object



31
32
33
34
35
36
# File 'lib/my_scripts/script.rb', line 31

def usage examples, explanation = nil
  puts "Script #{@name} #{version} - Usage:"
  (examples.respond_to?(:split) ? examples.split("\n") : examples).map {|line| puts "    #{@name} #{line}"}
  puts explanation if explanation
  exit 1
end

#versionObject



11
12
13
14
15
16
17
# File 'lib/my_scripts/script.rb', line 11

def version
  if self.class.const_defined? :VERSION
    self.class::VERSION  # Script's own version
  else
    VERSION # Gem version
  end
end