summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorZack Hobson2013-11-22 10:33:21 -0800
committerZack Hobson2013-11-22 10:33:21 -0800
commit0ce2ec981a0ee3e6a8b232445f1d29b10abe1763 (patch)
tree498230b0d4d6f7cc2121a2c5b689e471b9f0bab5 /lib
parent535081336a6eebcb02f30d1c1bad6b7e381aec2b (diff)
downloadhcl-0ce2ec981a0ee3e6a8b232445f1d29b10abe1763.tar.bz2
added instance method version of http operations
Diffstat (limited to 'lib')
-rw-r--r--lib/hcl/day_entry.rb6
-rw-r--r--lib/hcl/task.rb4
-rw-r--r--lib/hcl/timesheet_resource.rb33
3 files changed, 33 insertions, 10 deletions
diff --git a/lib/hcl/day_entry.rb b/lib/hcl/day_entry.rb
index c3fe254..2279e12 100644
--- a/lib/hcl/day_entry.rb
+++ b/lib/hcl/day_entry.rb
@@ -26,7 +26,7 @@ module HCl
def cancel
begin
- DayEntry.delete("daily/delete/#{id}")
+ delete("daily/delete/#{id}")
rescue TimesheetResource::Failure
return false
end
@@ -42,7 +42,7 @@ module HCl
# If I don't include hours it gets reset.
# This doens't appear to be the case for task and project.
(self.notes << "\n#{new_notes}").lstrip!
- DayEntry.post "daily/update/#{id}",
+ post "daily/update/#{id}",
%{<request><notes>#{notes}</notes><hours>#{hours}</hours></request>}
end
@@ -69,7 +69,7 @@ module HCl
end
def toggle
- DayEntry.get("daily/timer/#{id}")
+ get("daily/timer/#{id}")
self
end
diff --git a/lib/hcl/task.rb b/lib/hcl/task.rb
index cf63514..59dc26f 100644
--- a/lib/hcl/task.rb
+++ b/lib/hcl/task.rb
@@ -59,7 +59,7 @@ module HCl
def add opts
notes = opts[:note]
starting_time = opts[:starting_time] || 0
- days = DayEntry.from_xml Task.post("daily/add", <<-EOT)
+ days = DayEntry.from_xml post("daily/add", <<-EOT)
<request>
<notes>#{notes}</notes>
<hours>#{starting_time}</hours>
@@ -76,7 +76,7 @@ module HCl
if day.running?
day
else
- DayEntry.from_xml(Task.get("daily/timer/#{day.id}")).first
+ DayEntry.from_xml(get("daily/timer/#{day.id}")).first
end
end
end
diff --git a/lib/hcl/timesheet_resource.rb b/lib/hcl/timesheet_resource.rb
index d4624ad..82a2bcb 100644
--- a/lib/hcl/timesheet_resource.rb
+++ b/lib/hcl/timesheet_resource.rb
@@ -58,6 +58,10 @@ module HCl
http_do Net::HTTP::Post, action, data
end
+ def self.put action, data
+ http_do Net::HTTP::Put, action, data
+ end
+
def self.delete action
http_do Net::HTTP::Delete, action
end
@@ -84,6 +88,13 @@ module HCl
end
end
+ def self.xml_to_hash elem
+ elem.elements.map { |e| e.name }.inject({}) do |a, f|
+ a[f.to_sym] = CGI.unescape_html(elem.elements[f].text || '') if elem.elements[f]
+ a
+ end
+ end
+
def id
@data[:id]
end
@@ -96,11 +107,23 @@ module HCl
end
end
- def self.xml_to_hash elem
- elem.elements.map { |e| e.name }.inject({}) do |a, f|
- a[f.to_sym] = CGI.unescape_html(elem.elements[f].text || '') if elem.elements[f]
- a
- end
+ protected
+
+ def xml_to_hash elem
+ self.class.xml_to_hash elem
end
+ def get *args
+ self.class.get *args
+ end
+ def post *args
+ self.class.post *args
+ end
+ def put *args
+ self.class.put *args
+ end
+ def delete *args
+ self.class.delete *args
+ end
+
end
end