honeybadger-api 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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