track-r 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/track-r.rb CHANGED
@@ -10,3 +10,4 @@ require 'track-r/token'
10
10
  require 'track-r/tracker'
11
11
  require 'cgi'
12
12
  require 'net/http'
13
+ require 'net/https'
@@ -36,12 +36,19 @@ class Project
36
36
  def create_story(attributes = {})
37
37
  api_url = URI.parse("#{CONFIG[:api_url]}projects/#{@id}/stories")
38
38
  query_string = attributes.map { |key, value| "story[#{key}]=#{CGI::escape(value)}"}.join('&')
39
- response = Net::HTTP.start(api_url.host, api_url.port) do |http|
40
- http.post(api_url.path, query_string.concat("&token=#{@token}"))
41
- end
39
+ begin
40
+ http = Net::HTTP.new(api_url.host, api_url.port)
41
+ http.use_ssl = true
42
+ response, data = http.post(api_url.path, query_string.concat("&token=#{@token}"))
42
43
 
43
- story = (Hpricot(response.body)/:story)
44
- Story.new(:story => story, :project_id => @id, :token => @token)
44
+ raise ResponseError, "Wrong response code" unless response.code.to_i == 200
45
+ story = (Hpricot(response.body)/:story)
46
+ Story.new(:story => story, :project_id => @id, :token => @token)
47
+ rescue ResponseError => e
48
+ print "Got response code [#{response.code}]:\t"
49
+ puts response.message
50
+ raise
51
+ end
45
52
  end
46
53
 
47
54
  # Deletes a story given a Story object or a story_id
@@ -53,11 +60,18 @@ class Project
53
60
  else
54
61
  raise ArgumentError, "Should receive a story id or a Story object."
55
62
  end
56
- response = Net::HTTP.start(api_url.host, api_url.port) do |http|
57
- http.delete(api_url.path, {"X-TrackerToken" => @token})
63
+ begin
64
+ http = Net::HTTP.new(api_url.host, api_url.port)
65
+ http.use_ssl = true
66
+ response, data = http.delete(api_url.path, {"X-TrackerToken" => @token})
67
+ raise ResponseError, "Wrong response code" unless response.code.to_i == 200
68
+ story = (Hpricot(response.body)/:story)
69
+ Story.new(:story => story, :project_id => @id, :token => @token)
70
+ rescue ResponseError => e
71
+ print "Got response code [#{response.code}]:\t"
72
+ puts response.message
73
+ raise
58
74
  end
59
- story = (Hpricot(response.body)/:story)
60
- Story.new(:story => story, :project_id => @id, :token => @token)
61
75
  end
62
76
 
63
77
  # Gets the backlog's stories
@@ -112,3 +126,5 @@ class Project
112
126
  end
113
127
 
114
128
  end # class Tracker::Project
129
+
130
+ class ResponseError < Exception ;end
data/lib/track-r/story.rb CHANGED
@@ -58,8 +58,16 @@ class Story
58
58
  def save
59
59
  parameters = build_story_xml
60
60
  api_url = URI.parse("#{CONFIG[:api_url]}projects/#{@project_id}/stories/#{@id}")
61
- response = Net::HTTP.start(api_url.host, api_url.port) do |http|
62
- http.put(api_url.path, parameters, {'X-TrackerToken' => @token, 'Content-Type' => 'application/xml'})
61
+ begin
62
+ http = Net::HTTP.new(api_url.host, api_url.port)
63
+ http.use_ssl = true
64
+ response, data = http.put(api_url.path, parameters, {'X-TrackerToken' => @token, 'Content-Type' => 'application/xml'})
65
+
66
+ raise ResponseError, "Wrong response code" unless response.code.to_i == 200
67
+ rescue ResponseError => e
68
+ print "Got response code [#{response.code}]:\t"
69
+ puts response.message
70
+ raise
63
71
  end
64
72
 
65
73
  @story = (Hpricot(response.body)/:story)
@@ -69,8 +77,15 @@ class Story
69
77
  # TODO: test this method:
70
78
  def destroy
71
79
  api_url = URI.parse("#{CONFIG[:api_url]}projects/#{@project_id}/stories/#{@id}")
72
- response = Net::HTTP.start(api_url.host, api_url.port) do |http|
73
- http.delete(api_url.path, {"X-TrackerToken" => @token})
80
+ begin
81
+ http = Net::HTTP.new(api_url.host, api_url.port)
82
+ http.use_ssl = true
83
+ response, data = http.delete(api_url.path, {"X-TrackerToken" => @token})
84
+ raise ResponseError, "Wrong response code" unless response.code.to_i == 200
85
+ rescue ResponseError => e
86
+ print "Got response code [#{response.code}]:\t"
87
+ puts response.message
88
+ raise
74
89
  end
75
90
  end
76
91
 
Binary file
@@ -24,7 +24,7 @@ class TestStoryTest < Test::Unit::TestCase
24
24
  @story.description = "ZOMG!"
25
25
  @story.save
26
26
 
27
- assert_equal "Combo Koombea ma&#241;aneo???", @project.story(@story.id).name
27
+ assert_equal "More power to the shields", @project.story(@story.id).name
28
28
  end
29
29
 
30
30
  end
data/track-r.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{track-r}
5
- s.version = "1.8.0"
5
+ s.version = "1.9.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jose Felix Gomez"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: track-r
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Felix Gomez