Class: InvoicesController

Inherits:
Object
  • Object
show all
Defined in:
lib/invoices/controllers/invoices_controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ InvoicesController

Returns a new instance of InvoicesController.



2
3
4
5
6
7
8
9
10
# File 'lib/invoices/controllers/invoices_controller.rb', line 2

def initialize(client)
  @biller = Biller.new.default
  @invoice = Invoice.new
  @client = client
  @invoice.client_id = @client.id
  get_root
  add_line_items
  create_file
end

Instance Method Details

#add_line_itemsObject



16
17
18
19
# File 'lib/invoices/controllers/invoices_controller.rb', line 16

def add_line_items
  commits = CommitsController.new(@invoice.git_log)
  LineItemsController.new(@invoice, commits.index, @client)
end

#create_fileObject



20
21
22
23
24
25
# File 'lib/invoices/controllers/invoices_controller.rb', line 20

def create_file
  @invoice.save
  view = InvoicesView.new(@invoice, @biller, @client)
  File.open("#{INVOICES_FOLDER}/invoice#{@invoice.format_number}.txt", 'w') { |f| f.write(view.render) }
  puts "generated invoice#{@invoice.format_number}.txt"
end

#get_rootObject



11
12
13
14
15
# File 'lib/invoices/controllers/invoices_controller.rb', line 11

def get_root
  puts "Where is the project root (the parent directory of the git repo)?"
  @invoice.project_root($stdin.gets.chomp)
  @invoice.git_root
end