resat 0.7.5 → 0.7.6
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.
- data/lib/api_request.rb +26 -8
- data/lib/resat.rb +1 -1
- metadata +2 -2
data/lib/api_request.rb
CHANGED
@@ -114,11 +114,7 @@ module Resat
|
|
114
114
|
|
115
115
|
# Does response include given header or body field?
|
116
116
|
def has_response_field?(field, target)
|
117
|
-
|
118
|
-
return @response.key?(field) if target == 'header'
|
119
|
-
return true if field.nil? || field.empty?
|
120
|
-
doc = REXML::Document.new(@response.body) rescue nil
|
121
|
-
return doc && !doc.elements[field].nil?
|
117
|
+
!!get_response_field(field, target)
|
122
118
|
end
|
123
119
|
|
124
120
|
# Get value of response header or body field
|
@@ -126,13 +122,35 @@ module Resat
|
|
126
122
|
return unless @response
|
127
123
|
return @response[field] if target == 'header'
|
128
124
|
return @response.body if field.nil? || field.empty?
|
129
|
-
|
130
|
-
|
131
|
-
|
125
|
+
json = JSON.load(@response.body) rescue nil
|
126
|
+
field = nil
|
127
|
+
if json
|
128
|
+
field = json_field(json, field)
|
129
|
+
else
|
130
|
+
doc = REXML::Document.new(@response.body)
|
131
|
+
elem = doc.elements[field]
|
132
|
+
field = elem.get_text.to_s if elem
|
133
|
+
end
|
134
|
+
field
|
132
135
|
end
|
133
136
|
|
134
137
|
protected
|
135
138
|
|
139
|
+
# Retrieve JSON body field
|
140
|
+
def json_field(json, field)
|
141
|
+
return nil unless json
|
142
|
+
fields = field.split('/')
|
143
|
+
fields.each do |field|
|
144
|
+
if json.is_a?(Array)
|
145
|
+
json = json[field.to_i]
|
146
|
+
else
|
147
|
+
json = json[field]
|
148
|
+
end
|
149
|
+
return nil unless json
|
150
|
+
end
|
151
|
+
json
|
152
|
+
end
|
153
|
+
|
136
154
|
# Calculate number of seconds to wait before sending request
|
137
155
|
def delay_seconds
|
138
156
|
seconds = nil
|
data/lib/resat.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Raphael Simon
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-06-07 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|