Class: Git::Daily::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/git-daily/application.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeApplication

Returns a new instance of Application.



12
13
14
15
# File 'lib/git-daily/application.rb', line 12

def initialize
  @original_dir = Dir.pwd
  @commands = {}
end

Instance Attribute Details

#commandsObject (readonly)

Returns the value of attribute commands.



9
10
11
# File 'lib/git-daily/application.rb', line 9

def commands
  @commands
end

#optionsObject (readonly)

Returns the value of attribute options.



8
9
10
# File 'lib/git-daily/application.rb', line 8

def options
  @options
end

#original_dirObject (readonly)

Returns the value of attribute original_dir.



7
8
9
# File 'lib/git-daily/application.rb', line 7

def original_dir
  @original_dir
end

#remoteObject

Returns the value of attribute remote.



10
11
12
# File 'lib/git-daily/application.rb', line 10

def remote
  @remote
end

Instance Method Details

#display_error_message(ex) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/git-daily/application.rb', line 65

def display_error_message(ex)
  $stderr.puts "git-daily aborted!"
  $stderr.puts ex.message
  if options.trace
    $stderr.puts ex.backtrace.join("\n")
  end
end

#exception_handlingObject



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/git-daily/application.rb', line 52

def exception_handling
  begin
    yield
  rescue SystemExit => ex
    raise
  rescue OptionParser::InvalidOption => ex
    $stderr.puts ex.message
  rescue Exception => ex
    display_error_message(ex)
    exit(false)
  end
end

#handle_optionsObject



21
22
23
24
25
26
27
28
29
# File 'lib/git-daily/application.rb', line 21

def handle_options
  command = ARGV.shift
  if @commands.has_key?(command)
    @commands[command].run
  else
    $stderr.puts @commands["help"].usage
    exit
  end
end

#initObject



37
38
39
40
41
42
# File 'lib/git-daily/application.rb', line 37

def init
  #exception_handling do
    load_commands
    handle_options
  #end
end

#load_commandsObject



44
45
46
47
48
49
50
# File 'lib/git-daily/application.rb', line 44

def load_commands
  Dir[File.join(File.dirname(__FILE__), "command", "*.rb")].each do |file|
    load file
    name = File.basename(file, ".rb")
    @commands[name] = Git::Daily.const_get(name.capitalize).new
  end
end

#runObject



31
32
33
34
35
# File 'lib/git-daily/application.rb', line 31

def run
  #exception_handling do
    init
  #end
end