honeybadger-api 1.0.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.
Files changed (46) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +189 -0
  5. data/Rakefile +1 -0
  6. data/honeybadger-api.gemspec +26 -0
  7. data/lib/honeybadger-api.rb +41 -0
  8. data/lib/honeybadger-api/client.rb +48 -0
  9. data/lib/honeybadger-api/comment.rb +47 -0
  10. data/lib/honeybadger-api/configuration.rb +12 -0
  11. data/lib/honeybadger-api/deploy.rb +46 -0
  12. data/lib/honeybadger-api/environment.rb +27 -0
  13. data/lib/honeybadger-api/fault.rb +63 -0
  14. data/lib/honeybadger-api/notice.rb +45 -0
  15. data/lib/honeybadger-api/paginator.rb +72 -0
  16. data/lib/honeybadger-api/project.rb +71 -0
  17. data/lib/honeybadger-api/request.rb +44 -0
  18. data/lib/honeybadger-api/team.rb +42 -0
  19. data/lib/honeybadger-api/team_invitation.rb +61 -0
  20. data/lib/honeybadger-api/team_member.rb +58 -0
  21. data/lib/honeybadger-api/user.rb +19 -0
  22. data/lib/honeybadger-api/version.rb +5 -0
  23. data/spec/comment_spec.rb +89 -0
  24. data/spec/deploy_spec.rb +82 -0
  25. data/spec/environment_spec.rb +31 -0
  26. data/spec/factories/comment_factory.rb +16 -0
  27. data/spec/factories/deploy_factory.rb +15 -0
  28. data/spec/factories/environment_factory.rb +14 -0
  29. data/spec/factories/fault_factory.rb +29 -0
  30. data/spec/factories/notice_factory.rb +14 -0
  31. data/spec/factories/project_factory.rb +44 -0
  32. data/spec/factories/team_factory.rb +16 -0
  33. data/spec/factories/team_invitation_factory.rb +27 -0
  34. data/spec/factories/team_member_factory.rb +17 -0
  35. data/spec/factories/user_factory.rb +10 -0
  36. data/spec/fault_spec.rb +132 -0
  37. data/spec/notice_spec.rb +81 -0
  38. data/spec/paginator_spec.rb +106 -0
  39. data/spec/project_spec.rb +151 -0
  40. data/spec/spec_helper.rb +13 -0
  41. data/spec/team_invitation_spec.rb +98 -0
  42. data/spec/team_member_spec.rb +112 -0
  43. data/spec/team_spec.rb +68 -0
  44. data/spec/user_spec.rb +17 -0
  45. data/spec/version_spec.rb +7 -0
  46. metadata +195 -0
@@ -0,0 +1,13 @@
1
+ require 'rspec'
2
+ require 'webmock/rspec'
3
+ require 'mocha/api'
4
+ require 'factory_girl'
5
+ require 'honeybadger-api'
6
+
7
+ RSpec.configure do |config|
8
+ config.color_enabled = true
9
+ config.formatter = 'documentation'
10
+ config.mock_framework = :mocha
11
+ end
12
+
13
+ FactoryGirl.find_definitions
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+
3
+ describe Honeybadger::Api::TeamInvitation do
4
+
5
+ describe "initializing a new team invitation" do
6
+ before :all do
7
+ @team_invitation = FactoryGirl.build :team_invitation
8
+ end
9
+
10
+ it "should have a identifier" do
11
+ @team_invitation.id.should == 1
12
+ end
13
+
14
+ it "should have a token" do
15
+ @team_invitation.token.should == "e62394d2"
16
+ end
17
+
18
+ it "should have an email" do
19
+ @team_invitation.email.should == "invitation@example.com"
20
+ end
21
+
22
+ it "should have an accepted_at date" do
23
+ @team_invitation.accepted_at.should == DateTime.parse("2012-01-01T00:02:00Z")
24
+ end
25
+
26
+ it "should have a created_at date" do
27
+ @team_invitation.created_at.should == DateTime.parse("2012-01-01T00:01:00Z")
28
+ end
29
+
30
+ it "should have a invitation message" do
31
+ @team_invitation.message.should == "Come join in"
32
+ end
33
+ end
34
+
35
+ describe "an admin team invitation" do
36
+ before :each do
37
+ @team_invitation = FactoryGirl.build :admin_team_invitation
38
+ end
39
+
40
+ it "should identify as an admin invitation" do
41
+ @team_invitation.admin?.should be_true
42
+ end
43
+ end
44
+
45
+ describe "a normal team invitation" do
46
+ before :each do
47
+ @team_invitation = FactoryGirl.build :team_invitation
48
+ end
49
+
50
+ it "should not identify as an admin invitation" do
51
+ @team_invitation.admin?.should be_false
52
+ end
53
+ end
54
+
55
+ describe "all" do
56
+ before :each do
57
+ @team_id = 1
58
+ @path = "teams/#{@team_id}/team_invitations"
59
+ @handler = Proc.new { |response| TeamInvitation.new(response) }
60
+ Honeybadger::Api::TeamInvitation.expects(:handler).returns(@handler)
61
+ end
62
+
63
+ it "should find all of the team invitations" do
64
+ Honeybadger::Api::Request.expects(:all).with(@path, @handler).once
65
+ Honeybadger::Api::TeamInvitation.all(@team_id)
66
+ end
67
+ end
68
+
69
+ describe "paginate" do
70
+ before :each do
71
+ @team_id = 1
72
+ @path = "teams/#{@team_id}/team_invitations"
73
+ @handler = Proc.new { |response| TeamInvitation.new(response) }
74
+ @filters = { some_filter: 'value' }
75
+ Honeybadger::Api::TeamInvitation.expects(:handler).returns(@handler)
76
+ end
77
+
78
+ it "should paginate all of the team invitations" do
79
+ Honeybadger::Api::Request.expects(:paginate).with(@path, @handler, @filters).once
80
+ Honeybadger::Api::TeamInvitation.paginate(@team_id, @filters)
81
+ end
82
+ end
83
+
84
+ describe "find" do
85
+ before :each do
86
+ @team_id = 1
87
+ @team_invitation_id = 2
88
+ @path = "teams/#{@team_id}/team_invitations/#{@team_invitation_id}"
89
+ @handler = Proc.new { |response| TeamInvitation.new(response) }
90
+ Honeybadger::Api::TeamInvitation.expects(:handler).returns(@handler)
91
+ end
92
+
93
+ it "should find a team invitation" do
94
+ Honeybadger::Api::Request.expects(:find).with(@path, @handler).once
95
+ Honeybadger::Api::TeamInvitation.find(@team_id, @team_invitation_id)
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,112 @@
1
+ require 'spec_helper'
2
+
3
+ describe Honeybadger::Api::TeamMember do
4
+
5
+ describe "initializing a new normal team member" do
6
+ before :all do
7
+ @team_member = FactoryGirl.build :normal_team_member
8
+ end
9
+
10
+ it "should have an identifier" do
11
+ @team_member.id.should == 1
12
+ end
13
+
14
+ it "should have a name" do
15
+ @team_member.name.should == "John Smith"
16
+ end
17
+
18
+ it "should have an email address" do
19
+ @team_member.email.should == "john.smith@example.com"
20
+ end
21
+
22
+ it "should have an admin flag" do
23
+ @team_member.admin.should == false
24
+ end
25
+
26
+ it "should have the date the team member was created" do
27
+ @team_member.created_at.should == DateTime.parse("2012-01-01T00:01:00Z")
28
+ end
29
+ end
30
+
31
+ describe "initializing a new admin team member" do
32
+ before :all do
33
+ @team_member = FactoryGirl.build :admin_team_member
34
+ end
35
+
36
+ it "should have an identifier" do
37
+ @team_member.id.should == 1
38
+ end
39
+
40
+ it "should have a name" do
41
+ @team_member.name.should == "John Smith"
42
+ end
43
+
44
+ it "should have an email address" do
45
+ @team_member.email.should == "john.smith@example.com"
46
+ end
47
+
48
+ it "should have an admin flag" do
49
+ @team_member.admin.should == true
50
+ end
51
+
52
+ it "should have the date the team member was created" do
53
+ @team_member.created_at.should == DateTime.parse("2012-01-01T00:01:00Z")
54
+ end
55
+ end
56
+
57
+ describe "admin?" do
58
+ it "should be an admin" do
59
+ @team_member = FactoryGirl.build :admin_team_member
60
+ @team_member.admin?.should be_true
61
+ end
62
+
63
+ it "should not be an admin" do
64
+ @team_member = FactoryGirl.build :normal_team_member
65
+ @team_member.admin?.should be_false
66
+ end
67
+ end
68
+
69
+ describe "all" do
70
+ before :each do
71
+ @team_id = 1
72
+ @path = "teams/#{@team_id}/team_members"
73
+ @handler = Proc.new { |response| TeamMember.new(response) }
74
+ Honeybadger::Api::TeamMember.expects(:handler).returns(@handler)
75
+ end
76
+
77
+ it "should find all of the team members" do
78
+ Honeybadger::Api::Request.expects(:all).with(@path, @handler).once
79
+ Honeybadger::Api::TeamMember.all(@team_id)
80
+ end
81
+ end
82
+
83
+ describe "paginate" do
84
+ before :each do
85
+ @team_id = 1
86
+ @path = "teams/#{@team_id}/team_members"
87
+ @handler = Proc.new { |response| TeamMember.new(response) }
88
+ @filters = { some_filter: 'value' }
89
+ Honeybadger::Api::TeamMember.expects(:handler).returns(@handler)
90
+ end
91
+
92
+ it "should paginate all of the team members" do
93
+ Honeybadger::Api::Request.expects(:paginate).with(@path, @handler, @filters).once
94
+ Honeybadger::Api::TeamMember.paginate(@team_id, @filters)
95
+ end
96
+ end
97
+
98
+ describe "find" do
99
+ before :each do
100
+ @team_id = 1
101
+ @team_member_id = 2
102
+ @path = "teams/#{@team_id}/team_members/#{@team_member_id}"
103
+ @handler = Proc.new { |response| TeamMember.new(response) }
104
+ Honeybadger::Api::TeamMember.expects(:handler).returns(@handler)
105
+ end
106
+
107
+ it "should find a team member" do
108
+ Honeybadger::Api::Request.expects(:find).with(@path, @handler).once
109
+ Honeybadger::Api::TeamMember.find(@team_id, @team_member_id)
110
+ end
111
+ end
112
+ end
data/spec/team_spec.rb ADDED
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Honeybadger::Api::Team do
4
+
5
+ describe "initializing a new team" do
6
+ before :all do
7
+ @team = FactoryGirl.build :team
8
+ end
9
+
10
+ it "should have an identifier" do
11
+ @team.id.should == 1
12
+ end
13
+
14
+ it "should have a name" do
15
+ @team.name.should == "team"
16
+ end
17
+
18
+ it "should have an owner" do
19
+ @team.owner.name.should == "Tom Smith"
20
+ @team.owner.email.should == "tom.smith@example.com"
21
+ end
22
+
23
+ it "should have a created_at" do
24
+ @team.created_at.should == DateTime.parse("2012-01-01T00:01:00Z")
25
+ end
26
+ end
27
+
28
+ describe "all" do
29
+ before :each do
30
+ @path = "teams"
31
+ @handler = Proc.new { |response| Team.new(response) }
32
+ Honeybadger::Api::Team.expects(:handler).returns(@handler)
33
+ end
34
+
35
+ it "should find all of the teams" do
36
+ Honeybadger::Api::Request.expects(:all).with(@path, @handler).once
37
+ Honeybadger::Api::Team.all
38
+ end
39
+ end
40
+
41
+ describe "paginate" do
42
+ before :each do
43
+ @path = "teams"
44
+ @handler = Proc.new { |response| Team.new(response) }
45
+ @filters = { some_filter: 'value' }
46
+ Honeybadger::Api::Team.expects(:handler).returns(@handler)
47
+ end
48
+
49
+ it "should paginate all of the teams" do
50
+ Honeybadger::Api::Request.expects(:paginate).with(@path, @handler, @filters).once
51
+ Honeybadger::Api::Team.paginate(@filters)
52
+ end
53
+ end
54
+
55
+ describe "find" do
56
+ before :each do
57
+ @team_id = 1
58
+ @path = "teams/#{@team_id}"
59
+ @handler = Proc.new { |response| Team.new(response) }
60
+ Honeybadger::Api::Team.expects(:handler).returns(@handler)
61
+ end
62
+
63
+ it "should find a team" do
64
+ Honeybadger::Api::Request.expects(:find).with(@path, @handler).once
65
+ Honeybadger::Api::Team.find(@team_id)
66
+ end
67
+ end
68
+ end
data/spec/user_spec.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Honeybadger::Api::User do
4
+ describe "initializing a new user" do
5
+ before :all do
6
+ @user = FactoryGirl.build :user
7
+ end
8
+
9
+ it "should have a name" do
10
+ @user.name.should == "Tom Smith"
11
+ end
12
+
13
+ it "should have an email address" do
14
+ @user.email.should == "tom.smith@example.com"
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Honeybadger::Api::VERSION" do
4
+ it "should be version 1.0.0" do
5
+ Honeybadger::Api::VERSION.should == "1.0.0"
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,195 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: honeybadger-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Murray Summers
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-06-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - '='
36
+ - !ruby/object:Gem::Version
37
+ version: 2.14.1
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.14.1
46
+ - !ruby/object:Gem::Dependency
47
+ name: webmock
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: mocha
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: factory_girl
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: A Ruby Library for the Honeybadger Read API for easily pulling your data
95
+ out of Honeybadger
96
+ email:
97
+ - murray.sum@gmail.com
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - .gitignore
103
+ - Gemfile
104
+ - LICENSE.txt
105
+ - README.md
106
+ - Rakefile
107
+ - honeybadger-api.gemspec
108
+ - lib/honeybadger-api.rb
109
+ - lib/honeybadger-api/client.rb
110
+ - lib/honeybadger-api/comment.rb
111
+ - lib/honeybadger-api/configuration.rb
112
+ - lib/honeybadger-api/deploy.rb
113
+ - lib/honeybadger-api/environment.rb
114
+ - lib/honeybadger-api/fault.rb
115
+ - lib/honeybadger-api/notice.rb
116
+ - lib/honeybadger-api/paginator.rb
117
+ - lib/honeybadger-api/project.rb
118
+ - lib/honeybadger-api/request.rb
119
+ - lib/honeybadger-api/team.rb
120
+ - lib/honeybadger-api/team_invitation.rb
121
+ - lib/honeybadger-api/team_member.rb
122
+ - lib/honeybadger-api/user.rb
123
+ - lib/honeybadger-api/version.rb
124
+ - spec/comment_spec.rb
125
+ - spec/deploy_spec.rb
126
+ - spec/environment_spec.rb
127
+ - spec/factories/comment_factory.rb
128
+ - spec/factories/deploy_factory.rb
129
+ - spec/factories/environment_factory.rb
130
+ - spec/factories/fault_factory.rb
131
+ - spec/factories/notice_factory.rb
132
+ - spec/factories/project_factory.rb
133
+ - spec/factories/team_factory.rb
134
+ - spec/factories/team_invitation_factory.rb
135
+ - spec/factories/team_member_factory.rb
136
+ - spec/factories/user_factory.rb
137
+ - spec/fault_spec.rb
138
+ - spec/notice_spec.rb
139
+ - spec/paginator_spec.rb
140
+ - spec/project_spec.rb
141
+ - spec/spec_helper.rb
142
+ - spec/team_invitation_spec.rb
143
+ - spec/team_member_spec.rb
144
+ - spec/team_spec.rb
145
+ - spec/user_spec.rb
146
+ - spec/version_spec.rb
147
+ homepage: https://github.com/murraysum/honeybadger-api
148
+ licenses:
149
+ - MIT
150
+ post_install_message:
151
+ rdoc_options: []
152
+ require_paths:
153
+ - lib
154
+ required_ruby_version: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ requirements: []
167
+ rubyforge_project:
168
+ rubygems_version: 1.8.23
169
+ signing_key:
170
+ specification_version: 3
171
+ summary: Honeybadger Read API
172
+ test_files:
173
+ - spec/comment_spec.rb
174
+ - spec/deploy_spec.rb
175
+ - spec/environment_spec.rb
176
+ - spec/factories/comment_factory.rb
177
+ - spec/factories/deploy_factory.rb
178
+ - spec/factories/environment_factory.rb
179
+ - spec/factories/fault_factory.rb
180
+ - spec/factories/notice_factory.rb
181
+ - spec/factories/project_factory.rb
182
+ - spec/factories/team_factory.rb
183
+ - spec/factories/team_invitation_factory.rb
184
+ - spec/factories/team_member_factory.rb
185
+ - spec/factories/user_factory.rb
186
+ - spec/fault_spec.rb
187
+ - spec/notice_spec.rb
188
+ - spec/paginator_spec.rb
189
+ - spec/project_spec.rb
190
+ - spec/spec_helper.rb
191
+ - spec/team_invitation_spec.rb
192
+ - spec/team_member_spec.rb
193
+ - spec/team_spec.rb
194
+ - spec/user_spec.rb
195
+ - spec/version_spec.rb