Class: Geeklets

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

Class Method Summary collapse

Class Method Details

.run(params) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/geeklets.rb', line 35

def self.run(params)
  if params.empty?
    show_usage
    show_known_scripts
  else
    geeklet = params.shift
    if script_inventory.include?(geeklet)
      run_geeklet(geeklet, params)
    else
      puts "I do not know how to run the #{geeklet} geeklet."
      show_known_scripts
    end
  end
  
end

.run_geeklet(geeklet, params) ⇒ Object



29
30
31
32
33
# File 'lib/geeklets.rb', line 29

def self.run_geeklet(geeklet, params)
  require "#{geeklet}/#{geeklet.downcase}"
  obj = eval("#{geeklet}.new")
  obj.run(params)
end

.script_inventoryObject



22
23
24
25
26
27
# File 'lib/geeklets.rb', line 22

def self.script_inventory
  cwd = File.dirname(__FILE__)
  children = Pathname.new(cwd).children
  children.reject! { |child| !child.directory? }
  children.map! { |child| child.basename.to_s }
end

.show_known_scriptsObject



15
16
17
18
19
20
# File 'lib/geeklets.rb', line 15

def self.show_known_scripts
  puts "These are the currently known geeklet scripts:"
  puts
  script_inventory.each { |script| puts "\t#{script}"}
  puts
end

.show_usageObject



10
11
12
13
# File 'lib/geeklets.rb', line 10

def self.show_usage
  puts "Usage: geeklets <geeklet-script> [relevant-parameters-for-script]"
  puts 
end