dogapi 1.3.6 → 1.4.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.
- data/lib/dogapi/common.rb +9 -0
- data/lib/dogapi/facade.rb +60 -4
- data/lib/dogapi/v1.rb +3 -0
- data/lib/dogapi/v1/comment.rb +62 -0
- data/lib/dogapi/v1/dash.rb +79 -0
- data/lib/dogapi/v1/search.rb +27 -0
- data/tests/test_base.rb +29 -0
- data/tests/test_client.rb +2 -15
- data/tests/test_comments.rb +35 -0
- data/tests/test_dashes.rb +71 -0
- data/tests/test_search.rb +19 -0
- metadata +41 -49
data/lib/dogapi/common.rb
CHANGED
@@ -97,6 +97,15 @@ module Dogapi
|
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
|
+
def suppress_error_if_silent(e)
|
101
|
+
if @silent
|
102
|
+
warn e
|
103
|
+
return -1, {}
|
104
|
+
else
|
105
|
+
raise e
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
100
109
|
# Prepares the request and handles the response
|
101
110
|
#
|
102
111
|
# +method+ is an implementation of Net::HTTP::Request (e.g. Net::HTTP::Post)
|
data/lib/dogapi/facade.rb
CHANGED
@@ -29,6 +29,9 @@ module Dogapi
|
|
29
29
|
@metric_svc = Dogapi::V1::MetricService.new(@api_key, @application_key, silent)
|
30
30
|
@event_svc = Dogapi::V1::EventService.new(@api_key, @application_key, silent)
|
31
31
|
@tag_svc = Dogapi::V1::TagService.new(@api_key, @application_key, silent)
|
32
|
+
@comment_svc = Dogapi::V1::CommentService.new(@api_key, @application_key, silent)
|
33
|
+
@search_svc = Dogapi::V1::SearchService.new(@api_key, @application_key, silent)
|
34
|
+
@dash_service = Dogapi::V1::DashService.new(@api_key, @application_key, silent)
|
32
35
|
|
33
36
|
@legacy_event_svc = Dogapi::EventService.new(@datadog_host)
|
34
37
|
end
|
@@ -133,21 +136,50 @@ module Dogapi
|
|
133
136
|
end
|
134
137
|
end
|
135
138
|
|
139
|
+
#
|
140
|
+
# COMMENTS
|
141
|
+
#
|
142
|
+
|
143
|
+
# Post a comment
|
144
|
+
def comment(message, options={})
|
145
|
+
@comment_svc.comment(message, options)
|
146
|
+
end
|
147
|
+
|
148
|
+
# Post a comment
|
149
|
+
def update_comment(comment_id, options={})
|
150
|
+
@comment_svc.update_comment(comment_id, options)
|
151
|
+
end
|
152
|
+
|
153
|
+
def delete_comment(comment_id)
|
154
|
+
@comment_svc.delete_comment(comment_id)
|
155
|
+
end
|
156
|
+
|
157
|
+
#
|
158
|
+
# SEARCH
|
159
|
+
#
|
160
|
+
|
161
|
+
# Run the given search query.
|
162
|
+
def search(query)
|
163
|
+
@search_svc.search query
|
164
|
+
end
|
165
|
+
|
166
|
+
|
136
167
|
#
|
137
168
|
# TAGS
|
138
|
-
|
169
|
+
#
|
170
|
+
|
139
171
|
# Get all tags and their associated hosts at your org
|
140
172
|
def all_tags()
|
141
173
|
@tag_svc.get_all()
|
142
174
|
end
|
143
|
-
|
175
|
+
|
144
176
|
# Get all tags for the given host
|
145
177
|
#
|
146
178
|
# +host_id+ can be the host's numeric id or string name
|
147
179
|
def host_tags(host_id)
|
148
180
|
@tag_svc.get(host_id)
|
149
181
|
end
|
150
|
-
|
182
|
+
|
151
183
|
# Add the tags to the given host
|
152
184
|
#
|
153
185
|
# +host_id+ can be the host's numeric id or string name
|
@@ -156,7 +188,7 @@ module Dogapi
|
|
156
188
|
def add_tags(host_id, tags)
|
157
189
|
@tag_svc.add(host_id, tags)
|
158
190
|
end
|
159
|
-
|
191
|
+
|
160
192
|
# Replace the tags on the given host
|
161
193
|
#
|
162
194
|
# +host_id+ can be the host's numeric id or string name
|
@@ -179,6 +211,30 @@ module Dogapi
|
|
179
211
|
@tag_svc.detach(host_id)
|
180
212
|
end
|
181
213
|
|
214
|
+
#
|
215
|
+
# DASHES
|
216
|
+
#
|
217
|
+
|
218
|
+
# Create a dashboard.
|
219
|
+
def create_dashboard(title, description, graphs)
|
220
|
+
@dash_service.create_dashboard(title, description, graphs)
|
221
|
+
end
|
222
|
+
|
223
|
+
# Update a dashboard.
|
224
|
+
def update_dashboard(dash_id, title, description, graphs)
|
225
|
+
@dash_service.update_dashboard(dash_id, title, description, graphs)
|
226
|
+
end
|
227
|
+
|
228
|
+
# Fetch the given dashboard.
|
229
|
+
def get_dashboard(dash_id)
|
230
|
+
@dash_service.get_dashboard(dash_id)
|
231
|
+
end
|
232
|
+
|
233
|
+
# Delete the given dashboard.
|
234
|
+
def delete_dashboard(dash_id)
|
235
|
+
@dash_service.delete_dashboard(dash_id)
|
236
|
+
end
|
237
|
+
|
182
238
|
private
|
183
239
|
|
184
240
|
def override_scope(host, device)
|
data/lib/dogapi/v1.rb
CHANGED
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
class CommentService < Dogapi::APIService
|
7
|
+
|
8
|
+
API_VERSION = "v1"
|
9
|
+
|
10
|
+
# Submit a comment.
|
11
|
+
def comment(message, options={})
|
12
|
+
begin
|
13
|
+
params = {
|
14
|
+
:api_key => @api_key,
|
15
|
+
:application_key => @application_key
|
16
|
+
}
|
17
|
+
|
18
|
+
body = {
|
19
|
+
'message' => message,
|
20
|
+
}.merge options
|
21
|
+
|
22
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/comments", params, body, true)
|
23
|
+
rescue Exception => e
|
24
|
+
suppress_error_if_silent e
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Update a comment.
|
29
|
+
def update_comment(comment_id, options={})
|
30
|
+
begin
|
31
|
+
params = {
|
32
|
+
:api_key => @api_key,
|
33
|
+
:application_key => @application_key
|
34
|
+
}
|
35
|
+
|
36
|
+
if options.empty?
|
37
|
+
raise "Must update something."
|
38
|
+
end
|
39
|
+
|
40
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/comments/#{comment_id}", params, options, true)
|
41
|
+
rescue Exception => e
|
42
|
+
suppress_error_if_silent e
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def delete_comment(comment_id)
|
47
|
+
begin
|
48
|
+
params = {
|
49
|
+
:api_key => @api_key,
|
50
|
+
:application_key => @application_key
|
51
|
+
}
|
52
|
+
|
53
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/comments/#{comment_id}", params, nil, false)
|
54
|
+
rescue Exception => e
|
55
|
+
suppress_error_if_silent e
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
class DashService < Dogapi::APIService
|
7
|
+
|
8
|
+
API_VERSION = "v1"
|
9
|
+
|
10
|
+
def create_dashboard(title, description, graphs)
|
11
|
+
|
12
|
+
begin
|
13
|
+
params = {
|
14
|
+
:api_key => @api_key,
|
15
|
+
:application_key => @application_key
|
16
|
+
}
|
17
|
+
|
18
|
+
body = {
|
19
|
+
:title => title,
|
20
|
+
:description => description,
|
21
|
+
:graphs => graphs
|
22
|
+
}
|
23
|
+
|
24
|
+
request(Net::HTTP::Post, "/api/#{API_VERSION}/dash", params, body, true)
|
25
|
+
rescue Exception => e
|
26
|
+
suppress_error_if_silent e
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def update_dashboard(dash_id, title, description, graphs)
|
31
|
+
|
32
|
+
begin
|
33
|
+
params = {
|
34
|
+
:api_key => @api_key,
|
35
|
+
:application_key => @application_key
|
36
|
+
}
|
37
|
+
|
38
|
+
body = {
|
39
|
+
:title => title,
|
40
|
+
:description => description,
|
41
|
+
:graphs => graphs
|
42
|
+
}
|
43
|
+
|
44
|
+
request(Net::HTTP::Put, "/api/#{API_VERSION}/dash/#{dash_id}", params, body, true)
|
45
|
+
rescue Exception => e
|
46
|
+
suppress_error_if_silent e
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def get_dashboard(dash_id)
|
51
|
+
begin
|
52
|
+
params = {
|
53
|
+
:api_key => @api_key,
|
54
|
+
:application_key => @application_key
|
55
|
+
}
|
56
|
+
|
57
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/dash/#{dash_id}", params, nil, false)
|
58
|
+
rescue Exception => e
|
59
|
+
suppress_error_if_silent e
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def delete_dashboard(dash_id)
|
64
|
+
begin
|
65
|
+
params = {
|
66
|
+
:api_key => @api_key,
|
67
|
+
:application_key => @application_key
|
68
|
+
}
|
69
|
+
|
70
|
+
request(Net::HTTP::Delete, "/api/#{API_VERSION}/dash/#{dash_id}", params, nil, false)
|
71
|
+
rescue Exception => e
|
72
|
+
suppress_error_if_silent e
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
|
3
|
+
module Dogapi
|
4
|
+
class V1 # for namespacing
|
5
|
+
|
6
|
+
class SearchService < Dogapi::APIService
|
7
|
+
|
8
|
+
API_VERSION = "v1"
|
9
|
+
|
10
|
+
def search(query)
|
11
|
+
begin
|
12
|
+
params = {
|
13
|
+
:api_key => @api_key,
|
14
|
+
:application_key => @application_key,
|
15
|
+
:q => query
|
16
|
+
}
|
17
|
+
|
18
|
+
request(Net::HTTP::Get, "/api/#{API_VERSION}/search", params, nil, false)
|
19
|
+
rescue Exception => e
|
20
|
+
suppress_error_if_silent e
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/tests/test_base.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'dogapi'
|
3
|
+
require 'time'
|
4
|
+
|
5
|
+
unless Kernel.respond_to?(:require_relative)
|
6
|
+
module Kernel
|
7
|
+
def require_relative(path)
|
8
|
+
require File.join(File.dirname(caller[0]), path.to_str)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
class TestBase < Test::Unit::TestCase
|
15
|
+
|
16
|
+
def config_client_test_env
|
17
|
+
@api_key = ENV['DATADOG_API_KEY']
|
18
|
+
@app_key = ENV['DATADOG_APP_KEY']
|
19
|
+
if not @api_key or not @app_key
|
20
|
+
puts "\n"
|
21
|
+
abort "To run tests in your environment, set 'DATADOG_API_KEY' and 'DATADOG_APP_KEY' to appropriate values for your account. Be aware that the tests will submit data, some of which won't be removed at the end.\n\n"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def setup
|
26
|
+
config_client_test_env()
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
data/tests/test_client.rb
CHANGED
@@ -1,21 +1,8 @@
|
|
1
|
-
require 'test/unit'
|
2
1
|
require 'dogapi'
|
3
2
|
require 'time'
|
3
|
+
require_relative 'test_base.rb'
|
4
4
|
|
5
|
-
class TestClient <
|
6
|
-
|
7
|
-
def config_client_test_env
|
8
|
-
@api_key = ENV['DATADOG_API_KEY']
|
9
|
-
@app_key = ENV['DATADOG_APP_KEY']
|
10
|
-
if not @api_key or not @app_key
|
11
|
-
puts "\n"
|
12
|
-
abort "To run tests in your environment, set 'DATADOG_API_KEY' and 'DATADOG_APP_KEY' to appropriate values for your account. Be aware that the tests will submit data, some of which won't be removed at the end.\n\n"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def setup
|
17
|
-
config_client_test_env()
|
18
|
-
end
|
5
|
+
class TestClient < TestBase
|
19
6
|
|
20
7
|
def test_tags
|
21
8
|
hostname = 'test.tag.host'
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require_relative 'test_base.rb'
|
4
|
+
|
5
|
+
class TestComments < TestBase
|
6
|
+
|
7
|
+
def test_comments
|
8
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
9
|
+
|
10
|
+
# Create a comment
|
11
|
+
dog.comment('test comment')
|
12
|
+
|
13
|
+
# Create a comment as a user.
|
14
|
+
handle = "carlo+14.1@datadoghq.com"
|
15
|
+
status, comment_response = dog.comment('test comment with handle', :handle => handle)
|
16
|
+
comment = comment_response["comment"]
|
17
|
+
assert_equal "200", status, "Comment did not succeed"
|
18
|
+
|
19
|
+
# Reply to a comment.
|
20
|
+
status, reply_response = dog.comment('replying!', :related_event_id => comment["id"])
|
21
|
+
reply = reply_response["comment"]
|
22
|
+
assert_equal "200", status, "Reply did not work."
|
23
|
+
# HACK: issue #900 on dogweb. id types should be the same.
|
24
|
+
assert_equal comment["id"].to_s, reply["related_event_id"]
|
25
|
+
|
26
|
+
# Update a comment.
|
27
|
+
dog.update_comment(reply["related_event_id"], :message => "Updating the comment")
|
28
|
+
|
29
|
+
# Delete a comment.
|
30
|
+
status, to_delete_response = dog.comment("im dead")
|
31
|
+
to_delete = to_delete_response["comment"]
|
32
|
+
dog.delete_comment(to_delete["id"])
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require_relative 'test_base.rb'
|
4
|
+
|
5
|
+
class TestDashes < TestBase
|
6
|
+
|
7
|
+
def test_dashes
|
8
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
9
|
+
|
10
|
+
# Create a dashboard.
|
11
|
+
title = 'foobar'
|
12
|
+
description = 'desc'
|
13
|
+
graphs = [{
|
14
|
+
"definition" => {
|
15
|
+
"events" => [],
|
16
|
+
"requests "=> [
|
17
|
+
{"q" => "avg:system.mem.free{*}"}
|
18
|
+
],
|
19
|
+
"viz" => "timeseries"
|
20
|
+
},
|
21
|
+
"title" => "Average Memory Free"
|
22
|
+
}]
|
23
|
+
|
24
|
+
status, dash_response = dog.create_dashboard(title, description, graphs)
|
25
|
+
assert_equal "200", status, "Creation failed"
|
26
|
+
|
27
|
+
dash_id = dash_response["dash"]["id"]
|
28
|
+
|
29
|
+
# Fetch the dashboard and assert all is well.
|
30
|
+
status, dash_response = dog.get_dashboard(dash_id)
|
31
|
+
assert_equal "200", status, "Fetch failed"
|
32
|
+
dash = dash_response["dash"]
|
33
|
+
assert_equal title, dash["title"]
|
34
|
+
assert_equal description, dash["description"]
|
35
|
+
assert_equal graphs, dash["graphs"]
|
36
|
+
|
37
|
+
# Update the dashboard.
|
38
|
+
title = 'blahfoobar'
|
39
|
+
description = 'asdfdesc'
|
40
|
+
graphs = [{
|
41
|
+
"definition" => {
|
42
|
+
"events" => [],
|
43
|
+
"requests "=> [
|
44
|
+
{"q" => "sum:system.mem.free{*}"}
|
45
|
+
],
|
46
|
+
"viz" => "timeseries"
|
47
|
+
},
|
48
|
+
"title" => "Sum Memory Free"
|
49
|
+
}]
|
50
|
+
|
51
|
+
status, dash_response = dog.update_dashboard(dash_id, title, description, graphs)
|
52
|
+
assert_equal "200", status, "Updated failed"
|
53
|
+
|
54
|
+
# Fetch the dashboard and assert all is well.
|
55
|
+
status, dash_response = dog.get_dashboard(dash_id)
|
56
|
+
assert_equal "200", status, "Fetch failed"
|
57
|
+
dash = dash_response["dash"]
|
58
|
+
assert_equal title, dash["title"]
|
59
|
+
assert_equal description, dash["description"]
|
60
|
+
assert_equal graphs, dash["graphs"]
|
61
|
+
|
62
|
+
# Delete the dashboard.
|
63
|
+
status, dash_response = dog.delete_dashboard(dash_id)
|
64
|
+
assert_equal "204", status, "Deleted failed"
|
65
|
+
|
66
|
+
# Fetch the dashboard and assert all it's gone.
|
67
|
+
status, dash_response = dog.get_dashboard(dash_id)
|
68
|
+
assert_equal "404", status, "Still there failed"
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'dogapi'
|
2
|
+
require 'time'
|
3
|
+
require_relative 'test_base.rb'
|
4
|
+
|
5
|
+
class TestSearch < TestBase
|
6
|
+
|
7
|
+
def test_search
|
8
|
+
dog = Dogapi::Client.new(@api_key, @app_key)
|
9
|
+
|
10
|
+
facets = ["hosts", "metrics"]
|
11
|
+
facets.each do |facet|
|
12
|
+
status, results_body = dog.search("#{facet}:foo")
|
13
|
+
results = results_body["results"]
|
14
|
+
assert_equal status, "200", "failed search #{facet} facet"
|
15
|
+
assert results[facet].kind_of?(Array), "#{facet} facet doesnt exist"
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,97 +1,89 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: dogapi
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.4.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 3
|
9
|
-
- 6
|
10
|
-
version: 1.3.6
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Datadog, Inc.
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-09-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: json
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 1
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 5
|
32
|
-
- 1
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 1.5.1
|
34
22
|
type: :runtime
|
35
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.5.1
|
36
30
|
description:
|
37
31
|
email: packages@datadoghq.com
|
38
32
|
executables: []
|
39
|
-
|
40
33
|
extensions: []
|
41
|
-
|
42
|
-
extra_rdoc_files:
|
34
|
+
extra_rdoc_files:
|
43
35
|
- README.rdoc
|
44
|
-
files:
|
36
|
+
files:
|
45
37
|
- lib/capistrano/datadog.rb
|
46
38
|
- lib/capistrano/README.md
|
47
39
|
- lib/dogapi/common.rb
|
48
40
|
- lib/dogapi/event.rb
|
49
41
|
- lib/dogapi/facade.rb
|
50
42
|
- lib/dogapi/metric.rb
|
43
|
+
- lib/dogapi/v1/comment.rb
|
44
|
+
- lib/dogapi/v1/dash.rb
|
51
45
|
- lib/dogapi/v1/event.rb
|
52
46
|
- lib/dogapi/v1/metric.rb
|
47
|
+
- lib/dogapi/v1/search.rb
|
53
48
|
- lib/dogapi/v1/tag.rb
|
54
49
|
- lib/dogapi/v1.rb
|
55
50
|
- lib/dogapi.rb
|
51
|
+
- tests/test_base.rb
|
56
52
|
- tests/test_client.rb
|
53
|
+
- tests/test_comments.rb
|
54
|
+
- tests/test_dashes.rb
|
55
|
+
- tests/test_search.rb
|
57
56
|
- README.rdoc
|
58
57
|
homepage: http://datadoghq.com/
|
59
|
-
licenses:
|
58
|
+
licenses:
|
60
59
|
- BSD
|
61
60
|
post_install_message:
|
62
|
-
rdoc_options:
|
61
|
+
rdoc_options:
|
63
62
|
- --title
|
64
63
|
- DogAPI -- DataDog Client
|
65
64
|
- --main
|
66
65
|
- README.rdoc
|
67
66
|
- --line-numbers
|
68
67
|
- --inline-source
|
69
|
-
require_paths:
|
68
|
+
require_paths:
|
70
69
|
- lib
|
71
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
72
71
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
|
78
|
-
- 0
|
79
|
-
version: "0"
|
80
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
77
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
segments:
|
87
|
-
- 0
|
88
|
-
version: "0"
|
78
|
+
requirements:
|
79
|
+
- - ! '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
89
82
|
requirements: []
|
90
|
-
|
91
83
|
rubyforge_project:
|
92
84
|
rubygems_version: 1.8.24
|
93
85
|
signing_key:
|
94
86
|
specification_version: 3
|
95
87
|
summary: Ruby bindings for Datadog's API
|
96
|
-
test_files:
|
88
|
+
test_files:
|
97
89
|
- tests/test_client.rb
|