honeybadger-api 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: baae0cdf728df3ceb17b8e0dbabd4de2e0bd64cc
4
- data.tar.gz: 1f980580d661260d81d961fb7efdf2c3c1670a05
3
+ metadata.gz: 1868e27ba3550d84ad8682705e0e8f283749a5ee
4
+ data.tar.gz: 386f81bb282beb30fbd578f3e5f3930db02f945f
5
5
  SHA512:
6
- metadata.gz: 0e4f4477c83958512dae1d2c0dc94d24465351071fa86ca13b2af429482816f54cdb7a9a23666251619a31458c50aa3f10a86ce9a7de0a645bd148ac2c6a7f75
7
- data.tar.gz: 76c79e679ff2a2cff490a36b9dd2a4d6deea1adc58d3566bb81ae7b84f51b01e09b5b49334715779dc09c2c361a2bdf80f4370741b530f117dcd2445954138dd
6
+ metadata.gz: daff2d46de8568712fbc5234e5270f67a5fddfaed125964d7316520f098d79b8b6e56c183b0743b99446b7586f746604c5aee874d98ece6759c0ed544561b076
7
+ data.tar.gz: b70b702a69f86b1a8c7528bbc1a264572218870393cd9724c2e90d7a0368108ddfb6038aac208b99987cf66de807c1d1a8705f9b296e2d4e6a9799a08e69a9d1
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in honeybadger-api.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -6,7 +6,7 @@ A Ruby Library for the [Honeybadger Read API](https://www.honeybadger.io/documen
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- gem 'honeybadger-api'
9
+ gem "honeybadger-api"
10
10
 
11
11
  And then execute:
12
12
 
@@ -22,14 +22,14 @@ Or install it yourself as:
22
22
  Firstly require the library:
23
23
 
24
24
  ```
25
- require 'honeybadger-api'
25
+ require "honeybadger-api"
26
26
  ```
27
27
 
28
28
  Then configure your personal API access token. Your personal API access token can be found on your [personal profile page](https://www.honeybadger.io/users/edit):
29
29
 
30
30
  ```
31
31
  Honeybadger::Api.configure do |c|
32
- c.access_token = 'xxxxxxxxxxxxxxxxxxxx'
32
+ c.access_token = "xxxxxxxxxxxxxxxxxxxx"
33
33
  end
34
34
  ```
35
35
 
@@ -132,10 +132,10 @@ Honeybadger::Api::Notice.paginate(project_id, fault_id)
132
132
  # Find a comment
133
133
  Honeybadger::Api::Comment.find(project_id, fault_id, comment_id)
134
134
 
135
- # Find all the comments
135
+ # Find all the comments
136
136
  Honeybadger::Api::Comment.all(project_id, fault_id)
137
137
 
138
- # Retrieve a paginator for comments
138
+ # Retrieve a paginator for comments
139
139
  Honeybadger::Api::Comment.paginate(project_id, fault_id)
140
140
  ```
141
141
 
@@ -159,22 +159,52 @@ Honeybadger::Api::TeamMember.find(team_id, team_member_id)
159
159
  # Find all the team members
160
160
  Honeybadger::Api::TeamMember.all(team_id)
161
161
 
162
- # Retrieve a paginator for team members
162
+ # Retrieve a paginator for team members
163
163
  Honeybadger::Api::TeamMember.paginate(team_id)
164
164
  ```
165
165
 
166
166
  ### Team Invitations
167
167
  ```
168
- # Find a team invitation
168
+ # Find a team invitation
169
169
  Honeybadger::Api::TeamInvitation.find(team_id, team_invitation_id)
170
170
 
171
- # Find all the team invitations
171
+ # Find all the team invitations
172
172
  Honeybadger::Api::TeamInvitation.all(team_id)
173
173
 
174
- # Retrieve a paginator for team invitations
174
+ # Retrieve a paginator for team invitations
175
175
  Honeybadger::Api::TeamInvitation.paginate(team_id)
176
176
  ```
177
177
 
178
+ ### Sites
179
+ ```
180
+ # Find a site
181
+ Honeybadger::Api::Site.find(project_id, site_id)
182
+
183
+ # Find all the sites
184
+ Honeybadger::Api::Site.all(project_id)
185
+
186
+ # Retrieve a paginator for sites
187
+ Honeybadger::Api::Site.paginate(project_id)
188
+ ```
189
+
190
+ ### Outages
191
+ ```
192
+ # Find all the outages
193
+ Honeybadger::Api::Outage.all(project_id, site_id)
194
+
195
+ # Retrieve a paginator for outages
196
+ Honeybadger::Api::Outage.paginate(project_id, site_id)
197
+ ```
198
+
199
+ ### Uptime Checks
200
+ ```
201
+ # Find all the uptime checks
202
+ Honeybadger::Api::UptimeCheck.all(project_id, site_id)
203
+
204
+ # Retrieve a paginator for uptime checks
205
+ Honeybadger::Api::UptimeCheck.paginate(project_id, site_id)
206
+ ```
207
+
178
208
  ## Contributing
179
209
 
180
210
  1. Fork it
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'honeybadger-api/version'
4
+ require "honeybadger-api/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "honeybadger-api"
@@ -17,11 +17,11 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_runtime_dependency 'json'
20
+ spec.add_runtime_dependency "json"
21
21
 
22
- spec.add_development_dependency 'rspec', '3.4.0'
23
- spec.add_development_dependency 'webmock'
24
- spec.add_development_dependency 'mocha'
25
- spec.add_development_dependency 'factory_girl', '4.7.0'
26
- spec.add_development_dependency 'activesupport', '4.2.6'
22
+ spec.add_development_dependency "rspec", "3.4.0"
23
+ spec.add_development_dependency "webmock"
24
+ spec.add_development_dependency "mocha"
25
+ spec.add_development_dependency "factory_girl", "4.7.0"
26
+ spec.add_development_dependency "activesupport", "4.2.6"
27
27
  end
@@ -1,4 +1,4 @@
1
- require 'date'
1
+ require "date"
2
2
 
3
3
  require "honeybadger-api/version"
4
4
  require "honeybadger-api/configuration"
@@ -14,6 +14,9 @@ require "honeybadger-api/comment"
14
14
  require "honeybadger-api/project"
15
15
  require "honeybadger-api/fault"
16
16
  require "honeybadger-api/notice"
17
+ require "honeybadger-api/site"
18
+ require "honeybadger-api/uptime_check"
19
+ require "honeybadger-api/outage"
17
20
 
18
21
  module Honeybadger
19
22
  module Api
@@ -0,0 +1,39 @@
1
+ module Honeybadger
2
+ module Api
3
+ class Outage
4
+
5
+ attr_reader :down_at, :up_at, :created_at, :status, :reason, :headers
6
+
7
+ # Public: Build a new instance of Outage
8
+ #
9
+ # opts - A Hash of attributes to initialize an Outage
10
+ #
11
+ # Returns a new Outage
12
+ def initialize(opts)
13
+ @down_at = opts[:down_at].nil? ? nil : DateTime.parse(opts[:down_at])
14
+ @up_at = opts[:up_at].nil? ? nil : DateTime.parse(opts[:up_at])
15
+ @created_at = opts[:created_at].nil? ? nil : DateTime.parse(opts[:created_at])
16
+ @status = opts[:status]
17
+ @reason = opts[:reason]
18
+ @headers = opts[:headers]
19
+ end
20
+
21
+ # Public: Find all outages for a given project and site.
22
+ def self.all(project_id, site_id)
23
+ path = "projects/#{project_id}/sites/#{site_id}/outages"
24
+ Honeybadger::Api::Request.all(path, handler)
25
+ end
26
+
27
+ # Public: Paginate all outages for a given project and site.
28
+ def self.paginate(project_id, site_id, filters = {})
29
+ path = "projects/#{project_id}/sites/#{site_id}/outages"
30
+ Honeybadger::Api::Request.paginate(path, handler, filters)
31
+ end
32
+
33
+ # Internal: The handler used to build objects from API responses.
34
+ def self.handler
35
+ Proc.new { |response| Outage.new(response) }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,49 @@
1
+ module Honeybadger
2
+ module Api
3
+ class Site
4
+
5
+ attr_reader :active, :frequency, :id, :last_checked_at,
6
+ :match, :match_type, :name, :state, :url
7
+
8
+ # Public: Build a new instance of Site
9
+ #
10
+ # opts - A Hash of attributes to initialize a Site
11
+ #
12
+ # Returns a new Site
13
+ def initialize(opts)
14
+ @active = opts[:active]
15
+ @frequency = opts[:frequency]
16
+ @id = opts[:id]
17
+ @last_checked_at = opts[:last_checked_at].nil? ? nil : DateTime.parse(opts[:last_checked_at])
18
+ @match = opts[:match]
19
+ @match_type = opts[:match_type]
20
+ @name = opts[:name]
21
+ @state = opts[:state]
22
+ @url = opts[:url]
23
+ end
24
+
25
+ # Public: Find all sites for a given project.
26
+ def self.all(project_id)
27
+ path = "projects/#{project_id}/sites"
28
+ Honeybadger::Api::Request.all(path, handler)
29
+ end
30
+
31
+ # Public: Paginate all sites for a given project.
32
+ def self.paginate(project_id, filters = {})
33
+ path = "projects/#{project_id}/sites"
34
+ Honeybadger::Api::Request.paginate(path, handler, filters)
35
+ end
36
+
37
+ # Public: Find a site for a given project.
38
+ def self.find(project_id, site_id)
39
+ path = "projects/#{project_id}/sites/#{site_id}"
40
+ Honeybadger::Api::Request.find(path, handler)
41
+ end
42
+
43
+ # Internal: The handler used to build objects from API responses.
44
+ def self.handler
45
+ Proc.new { |response| Site.new(response) }
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,37 @@
1
+ module Honeybadger
2
+ module Api
3
+ class UptimeCheck
4
+
5
+ attr_reader :up, :location, :duration, :created_at
6
+
7
+ # Public: Build a new instance of UptimeCheck
8
+ #
9
+ # opts - A Hash of attributes to initialize a UptimeCheck
10
+ #
11
+ # Returns a new UptimeCheck
12
+ def initialize(opts)
13
+ @up = opts[:up]
14
+ @location = opts[:location]
15
+ @duration = opts[:duration]
16
+ @created_at = opts[:created_at].nil? ? nil : DateTime.parse(opts[:created_at])
17
+ end
18
+
19
+ # Public: Find all uptime checks for a given project and site.
20
+ def self.all(project_id, site_id)
21
+ path = "projects/#{project_id}/sites/#{site_id}/uptime_checks"
22
+ Honeybadger::Api::Request.all(path, handler)
23
+ end
24
+
25
+ # Public: Paginate all uptime checks for a given project and site.
26
+ def self.paginate(project_id, site_id, filters = {})
27
+ path = "projects/#{project_id}/sites/#{site_id}/uptime_checks"
28
+ Honeybadger::Api::Request.paginate(path, handler, filters)
29
+ end
30
+
31
+ # Internal: The handler used to build objects from API responses.
32
+ def self.handler
33
+ Proc.new { |response| UptimeCheck.new(response) }
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  module Honeybadger
2
2
  module Api
3
- VERSION = "2.0.1"
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Comment do
4
4
 
@@ -65,7 +65,7 @@ describe Honeybadger::Api::Comment do
65
65
  @fault_id = 2
66
66
  @path = "projects/#{@project_id}/faults/#{@fault_id}/comments"
67
67
  @handler = Proc.new { |response| Comment.new(response) }
68
- @filters = { some_filter: 'value' }
68
+ @filters = { some_filter: "value" }
69
69
  Honeybadger::Api::Comment.expects(:handler).returns(@handler)
70
70
  end
71
71
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Deploy do
4
4
 
@@ -55,7 +55,7 @@ describe Honeybadger::Api::Deploy do
55
55
  @project_id = 1
56
56
  @path = "projects/#{@project_id}/deploys"
57
57
  @handler = Proc.new { |response| Deploy.new(response) }
58
- @filters = { some_filter: 'value' }
58
+ @filters = { some_filter: "value" }
59
59
  Honeybadger::Api::Deploy.expects(:handler).returns(@handler)
60
60
  end
61
61
 
@@ -0,0 +1,20 @@
1
+ FactoryGirl.define do
2
+ factory :outage, :class => Honeybadger::Api::Outage do
3
+ down_at "2015-02-17T18:20:44.776959Z"
4
+ up_at "2015-02-17T18:22:35.614678Z"
5
+ created_at "2015-02-17T18:20:44.777914Z"
6
+ status 301
7
+ reason "Expected 2xx status code. Got 301"
8
+ headers({
9
+ :date => "Tue, 17 Feb 2015 18:20:44 GMT",
10
+ :server => "DNSME HTTP Redirection",
11
+ :location => "http://text.vote/polls",
12
+ :connection => "close",
13
+ :content_length => "0"
14
+ })
15
+
16
+ initialize_with do
17
+ new(attributes)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ FactoryGirl.define do
2
+ factory :site, :class => Honeybadger::Api::Site do
3
+ id "9eed6a7e-af77-4cc6-8c55-b7b17555330d"
4
+ active true
5
+ frequency 5
6
+ last_checked_at "2016-06-15T12:57:29.646956Z"
7
+ match nil
8
+ match_type "success"
9
+ name "Main site"
10
+ state "down"
11
+ url "http://www.example.com"
12
+
13
+ initialize_with do
14
+ new(attributes)
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :uptime_check, :class => Honeybadger::Api::UptimeCheck do
3
+ up true
4
+ location "Singapore"
5
+ duration 1201
6
+ created_at "2016-06-16T20:19:32.852569Z"
7
+
8
+ initialize_with do
9
+ new(attributes)
10
+ end
11
+ end
12
+ end
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Fault do
4
4
 
5
- describe "initializing a new comment" do
5
+ describe "initializing a new fault" do
6
6
  before :all do
7
7
  @fault = FactoryGirl.build :fault
8
8
  end
@@ -135,7 +135,7 @@ describe Honeybadger::Api::Fault do
135
135
  @project_id = 1
136
136
  @path = "projects/#{@project_id}/faults"
137
137
  @handler = Proc.new { |response| Fault.new(response) }
138
- @filters = { some_filter: 'value' }
138
+ @filters = { some_filter: "value" }
139
139
  Honeybadger::Api::Fault.expects(:handler).returns(@handler)
140
140
  end
141
141
 
@@ -159,4 +159,4 @@ describe Honeybadger::Api::Fault do
159
159
  Honeybadger::Api::Fault.find(@project_id, @fault_id)
160
160
  end
161
161
  end
162
- end
162
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Notice do
4
4
 
@@ -99,7 +99,7 @@ describe Honeybadger::Api::Notice do
99
99
  @fault_id = 2
100
100
  @path = "projects/#{@project_id}/faults/#{@fault_id}/notices"
101
101
  @handler = Proc.new { |response| Notice.new(response) }
102
- @filters = { some_filter: 'value' }
102
+ @filters = { some_filter: "value" }
103
103
  Honeybadger::Api::Notice.expects(:handler).returns(@handler)
104
104
  end
105
105
 
@@ -0,0 +1,72 @@
1
+ require "spec_helper"
2
+
3
+ describe Honeybadger::Api::Outage do
4
+
5
+ describe "initializing a new outage" do
6
+ before :all do
7
+ @outage = FactoryGirl.build :outage
8
+ end
9
+
10
+ it "should have a down_at attribute" do
11
+ expect(@outage.down_at).to eql(DateTime.parse("2015-02-17T18:20:44.776959Z"))
12
+ end
13
+
14
+ it "should have an up_at attribute" do
15
+ expect(@outage.up_at).to eql(DateTime.parse("2015-02-17T18:22:35.614678Z"))
16
+ end
17
+
18
+ it "should have a created_at attribute" do
19
+ expect(@outage.created_at).to eql(DateTime.parse("2015-02-17T18:20:44.777914Z"))
20
+ end
21
+
22
+ it "should have a status attribute" do
23
+ expect(@outage.status).to eql(301)
24
+ end
25
+
26
+ it "should have a reason attribute" do
27
+ expect(@outage.reason).to eql("Expected 2xx status code. Got 301")
28
+ end
29
+
30
+ it "should have a headers attribute" do
31
+ expected_headers = {
32
+ :date => "Tue, 17 Feb 2015 18:20:44 GMT",
33
+ :server => "DNSME HTTP Redirection",
34
+ :location => "http://text.vote/polls",
35
+ :connection => "close",
36
+ :content_length => "0"
37
+ }
38
+ expect(@outage.headers).to eql(expected_headers)
39
+ end
40
+ end
41
+
42
+ describe "all" do
43
+ before :each do
44
+ @project_id = 1
45
+ @site_id = 2
46
+ @path = "projects/#{@project_id}/sites/#{@site_id}/outages"
47
+ @handler = Proc.new { |response| Outage.new(response) }
48
+ Honeybadger::Api::Outage.expects(:handler).returns(@handler)
49
+ end
50
+
51
+ it "should find all of the uptime checks" do
52
+ Honeybadger::Api::Request.expects(:all).with(@path, @handler).once
53
+ Honeybadger::Api::Outage.all(@project_id, @site_id)
54
+ end
55
+ end
56
+
57
+ describe "paginate" do
58
+ before :each do
59
+ @project_id = 1
60
+ @site_id = 2
61
+ @path = "projects/#{@project_id}/sites/#{@site_id}/outages"
62
+ @handler = Proc.new { |response| Outage.new(response) }
63
+ @filters = { some_filter: "value" }
64
+ Honeybadger::Api::Outage.expects(:handler).returns(@handler)
65
+ end
66
+
67
+ it "should paginate all of the uptime checks" do
68
+ Honeybadger::Api::Request.expects(:paginate).with(@path, @handler, @filters).once
69
+ Honeybadger::Api::Outage.paginate(@project_id, @site_id, @filters)
70
+ end
71
+ end
72
+ end
@@ -1,10 +1,10 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Paginator do
4
4
 
5
5
  describe "next? and previous?" do
6
6
  before :all do
7
- @client_stub = stub('client')
7
+ @client_stub = stub("client")
8
8
  end
9
9
 
10
10
  describe "when there is one page" do
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Project do
4
4
 
@@ -140,7 +140,7 @@ describe Honeybadger::Api::Project do
140
140
  before :each do
141
141
  @path = "projects"
142
142
  @handler = Proc.new { |response| Project.new(response) }
143
- @filters = { some_filter: 'value' }
143
+ @filters = { some_filter: "value" }
144
144
  Honeybadger::Api::Project.expects(:handler).returns(@handler)
145
145
  end
146
146
 
@@ -0,0 +1,90 @@
1
+ require "spec_helper"
2
+
3
+ describe Honeybadger::Api::Site do
4
+
5
+ describe "initializing a new site" do
6
+ before :all do
7
+ @site = FactoryGirl.build :site
8
+ end
9
+
10
+ it "should have an id attribute" do
11
+ expect(@site.id).to eql("9eed6a7e-af77-4cc6-8c55-b7b17555330d")
12
+ end
13
+
14
+ it "should have an active attribute" do
15
+ expect(@site.active).to be true
16
+ end
17
+
18
+ it "should have a frequency attribute" do
19
+ expect(@site.frequency).to eql(5)
20
+ end
21
+
22
+ it "should have a last_checked_at attribute" do
23
+ expect(@site.last_checked_at).to eql(DateTime.parse("2016-06-15T12:57:29.646956Z"))
24
+ end
25
+
26
+ it "should have a match attribute" do
27
+ expect(@site.match).to be_nil
28
+ end
29
+
30
+ it "should have a match_type attribute" do
31
+ expect(@site.match_type).to eql("success")
32
+ end
33
+
34
+ it "should have a name attribute" do
35
+ expect(@site.name).to eql("Main site")
36
+ end
37
+
38
+ it "should have a state attribute" do
39
+ expect(@site.state).to eql("down")
40
+ end
41
+
42
+ it "should have an url attribute" do
43
+ expect(@site.url).to eql("http://www.example.com")
44
+ end
45
+ end
46
+
47
+ describe "all" do
48
+ before :each do
49
+ @project_id = 1
50
+ @path = "projects/#{@project_id}/sites"
51
+ @handler = Proc.new { |response| Site.new(response) }
52
+ Honeybadger::Api::Site.expects(:handler).returns(@handler)
53
+ end
54
+
55
+ it "should find all of the sites" do
56
+ Honeybadger::Api::Request.expects(:all).with(@path, @handler).once
57
+ Honeybadger::Api::Site.all(@project_id)
58
+ end
59
+ end
60
+
61
+ describe "paginate" do
62
+ before :each do
63
+ @project_id = 1
64
+ @path = "projects/#{@project_id}/sites"
65
+ @handler = Proc.new { |response| Site.new(response) }
66
+ @filters = { some_filter: "value" }
67
+ Honeybadger::Api::Site.expects(:handler).returns(@handler)
68
+ end
69
+
70
+ it "should paginate all of the sites" do
71
+ Honeybadger::Api::Request.expects(:paginate).with(@path, @handler, @filters).once
72
+ Honeybadger::Api::Site.paginate(@project_id, @filters)
73
+ end
74
+ end
75
+
76
+ describe "find" do
77
+ before :each do
78
+ @project_id = 1
79
+ @site_id = 2
80
+ @path = "projects/#{@project_id}/sites/#{@site_id}"
81
+ @handler = Proc.new { |response| Site.new(response) }
82
+ Honeybadger::Api::Site.expects(:handler).returns(@handler)
83
+ end
84
+
85
+ it "should find a site" do
86
+ Honeybadger::Api::Request.expects(:find).with(@path, @handler).once
87
+ Honeybadger::Api::Site.find(@project_id, @site_id)
88
+ end
89
+ end
90
+ end
@@ -1,8 +1,8 @@
1
- require 'rspec'
2
- require 'webmock/rspec'
3
- require 'mocha/api'
4
- require 'factory_girl'
5
- require 'honeybadger-api'
1
+ require "rspec"
2
+ require "webmock/rspec"
3
+ require "mocha/api"
4
+ require "factory_girl"
5
+ require "honeybadger-api"
6
6
 
7
7
  RSpec.configure do |config|
8
8
  config.color = true
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::TeamInvitation do
4
4
 
@@ -71,7 +71,7 @@ describe Honeybadger::Api::TeamInvitation do
71
71
  @team_id = 1
72
72
  @path = "teams/#{@team_id}/team_invitations"
73
73
  @handler = Proc.new { |response| TeamInvitation.new(response) }
74
- @filters = { some_filter: 'value' }
74
+ @filters = { some_filter: "value" }
75
75
  Honeybadger::Api::TeamInvitation.expects(:handler).returns(@handler)
76
76
  end
77
77
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::TeamMember do
4
4
 
@@ -85,7 +85,7 @@ describe Honeybadger::Api::TeamMember do
85
85
  @team_id = 1
86
86
  @path = "teams/#{@team_id}/team_members"
87
87
  @handler = Proc.new { |response| TeamMember.new(response) }
88
- @filters = { some_filter: 'value' }
88
+ @filters = { some_filter: "value" }
89
89
  Honeybadger::Api::TeamMember.expects(:handler).returns(@handler)
90
90
  end
91
91
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::Team do
4
4
 
@@ -42,7 +42,7 @@ describe Honeybadger::Api::Team do
42
42
  before :each do
43
43
  @path = "teams"
44
44
  @handler = Proc.new { |response| Team.new(response) }
45
- @filters = { some_filter: 'value' }
45
+ @filters = { some_filter: "value" }
46
46
  Honeybadger::Api::Team.expects(:handler).returns(@handler)
47
47
  end
48
48
 
@@ -0,0 +1,57 @@
1
+ require "spec_helper"
2
+
3
+ describe Honeybadger::Api::UptimeCheck do
4
+
5
+ describe "initializing a new uptime check" do
6
+ before :all do
7
+ @uptime_check = FactoryGirl.build :uptime_check
8
+ end
9
+
10
+ it "should have an up attribute" do
11
+ expect(@uptime_check.up).to be true
12
+ end
13
+
14
+ it "should have a location attribute" do
15
+ expect(@uptime_check.location).to eql("Singapore")
16
+ end
17
+
18
+ it "should have a duration attribute" do
19
+ expect(@uptime_check.duration).to eql(1201)
20
+ end
21
+
22
+ it "should have a created_at attribute" do
23
+ expect(@uptime_check.created_at).to eql(DateTime.parse("2016-06-16T20:19:32.852569Z"))
24
+ end
25
+ end
26
+
27
+ describe "all" do
28
+ before :each do
29
+ @project_id = 1
30
+ @site_id = 2
31
+ @path = "projects/#{@project_id}/sites/#{@site_id}/uptime_checks"
32
+ @handler = Proc.new { |response| UptimeCheck.new(response) }
33
+ Honeybadger::Api::UptimeCheck.expects(:handler).returns(@handler)
34
+ end
35
+
36
+ it "should find all of the uptime checks" do
37
+ Honeybadger::Api::Request.expects(:all).with(@path, @handler).once
38
+ Honeybadger::Api::UptimeCheck.all(@project_id, @site_id)
39
+ end
40
+ end
41
+
42
+ describe "paginate" do
43
+ before :each do
44
+ @project_id = 1
45
+ @site_id = 2
46
+ @path = "projects/#{@project_id}/sites/#{@site_id}/uptime_checks"
47
+ @handler = Proc.new { |response| UptimeCheck.new(response) }
48
+ @filters = { some_filter: "value" }
49
+ Honeybadger::Api::UptimeCheck.expects(:handler).returns(@handler)
50
+ end
51
+
52
+ it "should paginate all of the uptime checks" do
53
+ Honeybadger::Api::Request.expects(:paginate).with(@path, @handler, @filters).once
54
+ Honeybadger::Api::UptimeCheck.paginate(@project_id, @site_id, @filters)
55
+ end
56
+ end
57
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe Honeybadger::Api::User do
4
4
  describe "initializing a new user" do
@@ -1,7 +1,7 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe "Honeybadger::Api::VERSION" do
4
- it "should be version 2.0.1" do
5
- expect(Honeybadger::Api::VERSION).to eql("2.0.1")
4
+ it "should be version 2.1.0" do
5
+ expect(Honeybadger::Api::VERSION).to eql("2.1.0")
6
6
  end
7
- end
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybadger-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Murray Summers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-29 00:00:00.000000000 Z
11
+ date: 2017-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -115,12 +115,15 @@ files:
115
115
  - lib/honeybadger-api/deploy.rb
116
116
  - lib/honeybadger-api/fault.rb
117
117
  - lib/honeybadger-api/notice.rb
118
+ - lib/honeybadger-api/outage.rb
118
119
  - lib/honeybadger-api/paginator.rb
119
120
  - lib/honeybadger-api/project.rb
120
121
  - lib/honeybadger-api/request.rb
122
+ - lib/honeybadger-api/site.rb
121
123
  - lib/honeybadger-api/team.rb
122
124
  - lib/honeybadger-api/team_invitation.rb
123
125
  - lib/honeybadger-api/team_member.rb
126
+ - lib/honeybadger-api/uptime_check.rb
124
127
  - lib/honeybadger-api/user.rb
125
128
  - lib/honeybadger-api/version.rb
126
129
  - spec/comment_spec.rb
@@ -129,19 +132,25 @@ files:
129
132
  - spec/factories/deploy_factory.rb
130
133
  - spec/factories/fault_factory.rb
131
134
  - spec/factories/notice_factory.rb
135
+ - spec/factories/outage_factory.rb
132
136
  - spec/factories/project_factory.rb
137
+ - spec/factories/site_factory.rb
133
138
  - spec/factories/team_factory.rb
134
139
  - spec/factories/team_invitation_factory.rb
135
140
  - spec/factories/team_member_factory.rb
141
+ - spec/factories/uptime_check_factory.rb
136
142
  - spec/factories/user_factory.rb
137
143
  - spec/fault_spec.rb
138
144
  - spec/notice_spec.rb
145
+ - spec/outage_spec.rb
139
146
  - spec/paginator_spec.rb
140
147
  - spec/project_spec.rb
148
+ - spec/site_spec.rb
141
149
  - spec/spec_helper.rb
142
150
  - spec/team_invitation_spec.rb
143
151
  - spec/team_member_spec.rb
144
152
  - spec/team_spec.rb
153
+ - spec/uptime_check_spec.rb
145
154
  - spec/user_spec.rb
146
155
  - spec/version_spec.rb
147
156
  homepage: https://github.com/murraysum/honeybadger-api
@@ -175,19 +184,25 @@ test_files:
175
184
  - spec/factories/deploy_factory.rb
176
185
  - spec/factories/fault_factory.rb
177
186
  - spec/factories/notice_factory.rb
187
+ - spec/factories/outage_factory.rb
178
188
  - spec/factories/project_factory.rb
189
+ - spec/factories/site_factory.rb
179
190
  - spec/factories/team_factory.rb
180
191
  - spec/factories/team_invitation_factory.rb
181
192
  - spec/factories/team_member_factory.rb
193
+ - spec/factories/uptime_check_factory.rb
182
194
  - spec/factories/user_factory.rb
183
195
  - spec/fault_spec.rb
184
196
  - spec/notice_spec.rb
197
+ - spec/outage_spec.rb
185
198
  - spec/paginator_spec.rb
186
199
  - spec/project_spec.rb
200
+ - spec/site_spec.rb
187
201
  - spec/spec_helper.rb
188
202
  - spec/team_invitation_spec.rb
189
203
  - spec/team_member_spec.rb
190
204
  - spec/team_spec.rb
205
+ - spec/uptime_check_spec.rb
191
206
  - spec/user_spec.rb
192
207
  - spec/version_spec.rb
193
208
  has_rdoc: