rally_api 0.7.6 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,15 @@
1
- require "rally_api/version"
2
- require "rally_api/rally_rest_json"
3
-
4
1
  #Copyright (c) 2002-2012 Rally Software Development Corp. All Rights Reserved.
5
2
  #Your use of this Software is governed by the terms and conditions
6
3
  #of the applicable Subscription Agreement between your company and
7
4
  #Rally Software Development Corp.
8
5
 
6
+ require "rally_api/custom_http_header"
7
+ require "rally_api/rally_json_connection"
8
+ require "rally_api/rally_object"
9
+ require "rally_api/rally_query"
10
+ require "rally_api/rally_query_result"
11
+ require "rally_api/rally_rest_json"
12
+ require "rally_api/version"
13
+
9
14
  module RallyAPI
10
- # Your code goes here...
11
15
  end
@@ -3,8 +3,6 @@
3
3
  #of the applicable Subscription Agreement between your company and
4
4
  #Rally Software Development Corp.
5
5
 
6
- require_relative "version"
7
-
8
6
  #custom headers help Rally identify the integration you have written
9
7
  # You can make custom headers by:
10
8
  # ch = RallyAPI::CustomHttpHeader.new({:name => "CustomRoobyTool", :vendor => "acme inc", :version => "1.0"})
@@ -24,6 +24,7 @@ module RallyAPI
24
24
  @logger = nil
25
25
 
26
26
  @rally_http_client = HTTPClient.new
27
+ @rally_http_client.cookie_manager = nil #leaving this off unitl JSESSION/ZESSSIONID settles down
27
28
  @rally_http_client.receive_timeout = 300
28
29
  @rally_http_client.send_timeout = 300
29
30
  @rally_http_client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
@@ -88,9 +89,10 @@ module RallyAPI
88
89
  end
89
90
 
90
91
  #args should have :method
91
- def send_request(url, args, url_params = {})
92
+ def send_request(url, args, url_params = nil)
92
93
  method = args[:method]
93
- req_args = { :query => url_params }
94
+ req_args = {}
95
+ req_args[:query] = url_params unless url_params.nil?
94
96
 
95
97
  req_headers = @rally_headers.headers
96
98
  if (args[:method] == :post) || (args[:method] == :put)
@@ -81,6 +81,43 @@ module RallyAPI
81
81
  errors
82
82
  end
83
83
 
84
+ #support the crazy query string structure for the api
85
+ #each condition with an and or an or needs to be wrapped rpn style in ()
86
+ def build_query_segment(condition_array, op)
87
+ return nil if condition_array.length == 0
88
+ return condition_array.first if condition_array.length == 1
89
+
90
+ op = op.downcase #should be or or and
91
+
92
+ query_segment = ""
93
+ condition_array.each do |condition|
94
+ q_part = "(#{condition})" if condition[0] != "("
95
+ case op
96
+ when 'or'
97
+ query_segment = add_or(query_segment, q_part)
98
+ when 'and'
99
+ query_segment = add_and(query_segment, q_part)
100
+ else
101
+ end
102
+ end
103
+
104
+ return query_segment
105
+ end
106
+
107
+ def add_or(current_q, new_conditions)
108
+ return current_q if (new_conditions.nil? || new_conditions.empty?)
109
+ return new_conditions if (current_q.nil? || current_q.empty?)
110
+ new_conditions = "(#{new_conditions})" if new_conditions[0] != "("
111
+ "(#{current_q} OR #{new_conditions})"
112
+ end
113
+
114
+ def add_and(current_q, new_conditions)
115
+ return current_q if new_conditions.nil? || new_conditions.empty?
116
+ return new_conditions if current_q.nil? || current_q.empty?
117
+ new_conditions = "(#{new_conditions})" if new_conditions[0] != "("
118
+ "(#{current_q} AND #{new_conditions})"
119
+ end
120
+
84
121
  private
85
122
 
86
123
  def parse_query_hash(query_hash)
@@ -1,8 +1,8 @@
1
- require_relative "custom_http_header"
2
- require_relative "rally_json_connection"
3
- require_relative "rally_object"
4
- require_relative "rally_query"
5
- require_relative "rally_query_result"
1
+ #require "custom_http_header"
2
+ #require "rally_json_connection"
3
+ #require "rally_object"
4
+ #require "rally_query"
5
+ #require "rally_query_result"
6
6
 
7
7
  # --
8
8
  #Copyright (c) 2002-2012 Rally Software Development Corp. All Rights Reserved.
@@ -4,5 +4,5 @@
4
4
  #of the applicable Subscription Agreement between your company and
5
5
  #Rally Software Development Corp.
6
6
  module RallyAPI
7
- VERSION = "0.7.6"
7
+ VERSION = "0.8.0"
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rally_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.6
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-24 00:00:00.000000000Z
12
+ date: 2012-12-13 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httpclient
16
- requirement: &70210007040980 !ruby/object:Gem::Requirement
16
+ requirement: &70263207772720 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 2.2.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70210007040980
24
+ version_requirements: *70263207772720
25
25
  description: API wrapper for Rally's JSON REST web services api
26
26
  email:
27
27
  - dsmith@rallydev.com