Class: Codespicuous

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCodespicuous

Returns a new instance of Codespicuous.



8
9
10
11
# File 'lib/codespicuous/codespicuous.rb', line 8

def initialize
  @config = CodespicuousConfig.new
  @commit_history = CommitHistory.new
end

Instance Attribute Details

#commit_historyObject (readonly)

Returns the value of attribute commit_history.



6
7
8
# File 'lib/codespicuous/codespicuous.rb', line 6

def commit_history
  @commit_history
end

#committersObject (readonly)

Returns the value of attribute committers.



6
7
8
# File 'lib/codespicuous/codespicuous.rb', line 6

def committers
  @committers
end

#configObject (readonly)

Returns the value of attribute config.



6
7
8
# File 'lib/codespicuous/codespicuous.rb', line 6

def config
  @config
end

#repositoriesObject (readonly)

Returns the value of attribute repositories.



6
7
8
# File 'lib/codespicuous/codespicuous.rb', line 6

def repositories
  @repositories
end

#teamsObject (readonly)

Returns the value of attribute teams.



6
7
8
# File 'lib/codespicuous/codespicuous.rb', line 6

def teams
  @teams
end

Instance Method Details

#collectObject



40
41
42
43
# File 'lib/codespicuous/codespicuous.rb', line 40

def collect
  collector = SVNDataCollector.new(config, @commit_history)
  collector.collect_commit_history(@commit_history.repositories)
end

#configure(argv) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/codespicuous/codespicuous.rb', line 31

def configure(argv)
  configurator = CodespicuousConfigurator.new(@config)
  return false unless configurator.configure(argv)

  @commit_history.configure(configurator.teams, configurator.repositories)

  true
end

#generate_outputObject



45
46
47
48
# File 'lib/codespicuous/codespicuous.rb', line 45

def generate_output
  generator = MetricsGenerator.new
  generator.generate(@commit_history)
end

#list_committed_repositoriesObject



50
51
52
53
# File 'lib/codespicuous/codespicuous.rb', line 50

def list_committed_repositories
  repository_lister = RepositoryLister.new
  repository_lister.list(@commit_history)
end

#run(argv) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/codespicuous/codespicuous.rb', line 13

def run(argv)

  puts "Stage 1: Configuring"
  return false unless configure(argv)

  puts "Stage 2: Collecting input data"
  collect

  if @config.list_repositories
    puts "Stage 3: Listing repositories committed to"
    list_committed_repositories
  else
    puts "Stage 3: Generating output"
    generate_output
  end
  true
end