lib/toolshed/time_tracking/harvest.rb in toolshed-0.0.8 vs lib/toolshed/time_tracking/harvest.rb in toolshed-0.0.9
- old
+ new
@@ -2,12 +2,13 @@
module TimeTracking
class Harvest
extend TimeTracking
MAX_ATTEMPTS = 10
+ GENERATED_HTML_FILE_LOCATION = '/tmp/toolshed_generated_time_sheet.html'
- attr_accessor :harvest_client, :project_id
+ attr_accessor :harvest_client, :project_id, :line_break, :start_list_item, :end_list_item, :start_unorder_list, :end_unorder_list, :format
def initialize(options={})
username = Toolshed::Client::time_tracking_username
password = Toolshed::Client::time_tracking_password
owner = Toolshed::Client.time_tracking_owner
@@ -22,36 +23,50 @@
unless (options[:sub_domain].nil?)
owner = options[:sub_domain]
end
- self.harvest_client = ::Harvest.client('ackmanndickenson', 'jwaller@ackmanndickenson.com', 'V0AU2gRMLhs1')
+ self.harvest_client = ::Harvest.client(owner, username, password)
self.project_id = self.get_project_id
+
+ # setup formatting
+ formatter(options)
end
- def previous(days_ago=1)
- notes = "Previous:\n\n"
+ def previous(days_ago=1, options={})
+ notes = "Previous:#{self.line_break}"
+
time_entries = self.harvest_client.time.all((DateTime.now - days_ago), self.project_id)
if (time_entries.size > 0 || days_ago == Toolshed::TimeTracking::Harvest::MAX_ATTEMPTS)
+ notes = "#{notes}#{self.start_unorder_list}"
time_entries.each do |time_entry|
- notes = "#{notes}#{time_entry.notes}\n"
+ notes = "#{notes}#{self.start_list_item}#{time_entry.notes}#{self.end_list_item}"
+ if (self.end_list_item == '')
+ notes = "#{notes}#{self.line_break}"
+ end
end
+ notes = "#{notes}#{self.end_unorder_list}"
else
notes = self.previous(days_ago + 1)
end
notes
end
def today
- notes = "Today:\n\n"
+ notes = "Today:#{self.line_break}"
time_entries = self.harvest_client.time.all(Time.now, self.project_id)
+ notes = "#{notes}#{self.start_unorder_list}"
time_entries.each do |time_entry|
- notes = "#{notes}#{time_entry.notes}\n"
+ notes = "#{notes}#{self.start_list_item}#{time_entry.notes}#{self.end_list_item}"
+ if (self.end_list_item == '')
+ notes = "#{notes}#{self.line_break}"
+ end
end
+ notes = "#{notes}#{self.end_unorder_list}"
notes
end
def get_project_id
@@ -60,9 +75,31 @@
if (project_id == '')
project_id = Toolshed::Client.time_tracking_default_project_id
end
project_id
+ end
+
+ def brought_to_you_by_message
+ "#{self.line_break}Provided by Toolshed https://rubygems.org/gems/toolshed#{self.line_break}"
+ end
+
+ def formatter(options={})
+ if (options[:format] && options[:format] == 'html')
+ self.format = 'html'
+ self.line_break = "<br>"
+ self.start_list_item = "<li>"
+ self.end_list_item = "</li>"
+ self.start_unorder_list = "<ul>"
+ self.end_unorder_list = "</ul>"
+ else
+ self.format = 'text'
+ self.line_break = "\n"
+ self.start_list_item = ""
+ self.end_list_item = ""
+ self.start_unorder_list = ""
+ self.end_unorder_list = ""
+ end
end
end
end
end