honeybadger-api 2.0.1 → 2.1.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.
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: