bamboozled-gitlab 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  4. data/.github/ISSUE_TEMPLATE/question.md +19 -0
  5. data/.github/main.workflow +38 -0
  6. data/.github/pull_request_template.md +27 -0
  7. data/.gitignore +38 -0
  8. data/.rubocop.yml +39 -0
  9. data/.rubocop_todo.yml +305 -0
  10. data/.travis.yml +18 -0
  11. data/CHANGELOG.md +48 -0
  12. data/CONTRIBUTING.md +91 -0
  13. data/Dockerfile +8 -0
  14. data/Gemfile +16 -0
  15. data/Guardfile +21 -0
  16. data/LICENSE +22 -0
  17. data/README.md +170 -0
  18. data/Rakefile +11 -0
  19. data/bamboozled.gemspec +30 -0
  20. data/examples/employees_over_time.rb +53 -0
  21. data/lib/bamboozled.rb +24 -0
  22. data/lib/bamboozled/api/base.rb +101 -0
  23. data/lib/bamboozled/api/employee.rb +118 -0
  24. data/lib/bamboozled/api/field_collection.rb +107 -0
  25. data/lib/bamboozled/api/meta.rb +25 -0
  26. data/lib/bamboozled/api/report.rb +20 -0
  27. data/lib/bamboozled/api/time_off.rb +34 -0
  28. data/lib/bamboozled/api/time_tracking.rb +24 -0
  29. data/lib/bamboozled/base.rb +31 -0
  30. data/lib/bamboozled/errors.rb +33 -0
  31. data/lib/bamboozled/ext/yesno.rb +11 -0
  32. data/lib/bamboozled/version.rb +3 -0
  33. data/logos/bamboozled_logo_black.png +0 -0
  34. data/logos/bamboozled_logo_green.png +0 -0
  35. data/logos/skookum_mark_black.png +0 -0
  36. data/logos/skookum_mark_black.svg +175 -0
  37. data/relnotes/v0.1.0.md +13 -0
  38. data/spec/fixtures/add_employee_details.json +7 -0
  39. data/spec/fixtures/add_employee_response.json +4 -0
  40. data/spec/fixtures/add_employee_xml.yml +8 -0
  41. data/spec/fixtures/all_employees.json +58 -0
  42. data/spec/fixtures/custom_report.json +38 -0
  43. data/spec/fixtures/employee_emails.json +9 -0
  44. data/spec/fixtures/employee_table_details.json +17 -0
  45. data/spec/fixtures/job_info.xml +22 -0
  46. data/spec/fixtures/last_changed.json +28 -0
  47. data/spec/fixtures/meta_fields.json +5 -0
  48. data/spec/fixtures/meta_lists.json +5 -0
  49. data/spec/fixtures/meta_tables.json +5 -0
  50. data/spec/fixtures/meta_users.json +4 -0
  51. data/spec/fixtures/one_employee.json +9 -0
  52. data/spec/fixtures/time_off_estimate.json +23 -0
  53. data/spec/fixtures/time_tracking_add_200_response.json +7 -0
  54. data/spec/fixtures/time_tracking_add_empty_response.json +9 -0
  55. data/spec/fixtures/time_tracking_adjust_200_response.json +7 -0
  56. data/spec/fixtures/time_tracking_adjust_400_response.json +11 -0
  57. data/spec/fixtures/time_tracking_record_200_response.json +9 -0
  58. data/spec/fixtures/time_tracking_record_400_response.json +11 -0
  59. data/spec/fixtures/time_tracking_record_401_response.json +10 -0
  60. data/spec/fixtures/time_tracking_record_404_response.json +8 -0
  61. data/spec/fixtures/update_employee_details.json +7 -0
  62. data/spec/fixtures/update_employee_response.json +3 -0
  63. data/spec/fixtures/update_employee_table.json +8 -0
  64. data/spec/fixtures/update_employee_table_xml.yml +6 -0
  65. data/spec/fixtures/update_employee_xml.yml +8 -0
  66. data/spec/lib/bamboozled/api/base_spec.rb +18 -0
  67. data/spec/lib/bamboozled/api/employee_spec.rb +186 -0
  68. data/spec/lib/bamboozled/api/field_collection_spec.rb +17 -0
  69. data/spec/lib/bamboozled/api/meta_spec.rb +47 -0
  70. data/spec/lib/bamboozled/api/report_spec.rb +17 -0
  71. data/spec/lib/bamboozled/api/time_tracking_spec.rb +123 -0
  72. data/spec/lib/bamboozled/base_spec.rb +26 -0
  73. data/spec/lib/bamboozled_spec.rb +33 -0
  74. data/spec/spec_helper.rb +32 -0
  75. metadata +237 -0
@@ -0,0 +1,17 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Bamboozled::API::FieldCollection do
4
+ let(:field_collection) { described_class.new(%w[hireDate location]) }
5
+
6
+ describe "#to_csv" do
7
+ it "returns the fields as a csv" do
8
+ expect(field_collection.to_csv).to eq "hireDate,location"
9
+ end
10
+ end
11
+
12
+ describe "#to_xml" do
13
+ it "returns the fields as xml" do
14
+ expect(field_collection.to_xml).to eq '<fields><field id="hireDate" /><field id="location" /></fields>'
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,47 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Meta" do
4
+ before do
5
+ @client = Bamboozled.client(subdomain: "x", api_key: "x")
6
+ end
7
+
8
+ def get_response(fixture_name)
9
+ File.new(fixture_name)
10
+ end
11
+
12
+ def make_stub(response)
13
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
14
+ end
15
+
16
+ it "Gets all users" do
17
+ res = get_response("spec/fixtures/meta_users.json")
18
+ make_stub(res)
19
+
20
+ users = @client.meta.users
21
+ expect(users).to be_a Array
22
+ end
23
+
24
+ it "Gets all fields" do
25
+ res = get_response("spec/fixtures/meta_fields.json")
26
+ make_stub(res)
27
+
28
+ fields = @client.meta.fields
29
+ expect(fields).to be_a Array
30
+ end
31
+
32
+ it "Gets the lists" do
33
+ res = get_response("spec/fixtures/meta_lists.json")
34
+ make_stub(res)
35
+
36
+ fields = @client.meta.lists
37
+ expect(fields).to be_a Array
38
+ end
39
+
40
+ it "Gets the tables" do
41
+ res = get_response("spec/fixtures/meta_tables.json")
42
+ make_stub(res)
43
+
44
+ fields = @client.meta.lists
45
+ expect(fields).to be_a Array
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Reports" do
4
+ before do
5
+ @client = Bamboozled.client(subdomain: "x", api_key: "x")
6
+ end
7
+
8
+ it "Creates a custom report" do
9
+ response = File.new("spec/fixtures/custom_report.json")
10
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
11
+
12
+ employees = @client.report.custom(%w[bestEmail employeeNumber birthday])
13
+
14
+ expect(employees).to be_an Array
15
+ expect(employees.size).to eq 2
16
+ end
17
+ end
@@ -0,0 +1,123 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Time Tracking" do
4
+ before do
5
+ @client = Bamboozled.client(subdomain: "x", api_key: "x")
6
+ end
7
+
8
+ describe '#record' do
9
+ context 'api success' do
10
+ it 'gets the given record' do
11
+ response = File.new("spec/fixtures/time_tracking_record_200_response.json")
12
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
13
+
14
+ record = @client.time_tracking.record('37_2301_REG')
15
+
16
+ expect(record).to be_a Hash
17
+ expect(record['payRate']).to eq('19.0000')
18
+ expect(record['employeeId']).to eq('40488')
19
+ end
20
+ end
21
+
22
+ describe 'api failures' do
23
+ context 'bad api key' do
24
+ it 'should raise an error' do
25
+ response = File.new("spec/fixtures/time_tracking_record_401_response.json")
26
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
27
+
28
+ expect do
29
+ @client.time_tracking.record('37_2301_REG')
30
+ end.to raise_error(Bamboozled::AuthenticationFailed)
31
+ end
32
+ end
33
+ context 'invalid company name' do
34
+ it 'should raise an error' do
35
+ response = File.new("spec/fixtures/time_tracking_record_404_response.json")
36
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
37
+
38
+ expect do
39
+ @client.time_tracking.record('37_2301_REG')
40
+ end.to raise_error(Bamboozled::NotFound)
41
+ end
42
+ end
43
+ context 'invalid time tracking id' do
44
+ it 'should raise an error' do
45
+ response = File.new("spec/fixtures/time_tracking_record_400_response.json")
46
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
47
+
48
+ expect do
49
+ @client.time_tracking.record('37_2301_REG')
50
+ end.to raise_error(Bamboozled::BadRequest)
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ describe '#add' do
57
+ describe 'api success' do
58
+ it 'should return a hash with the id of the created record' do
59
+ response = File.new("spec/fixtures/time_tracking_add_200_response.json")
60
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
61
+
62
+ data = {
63
+ timeTrackingId: '37_2302_REG',
64
+ employeeId: '40488',
65
+ dateHoursWorked: '2016-08-12',
66
+ payRate: '19.00',
67
+ rateType: 'REG',
68
+ hoursWorked: '4.5760'
69
+ }
70
+ record = @client.time_tracking.add(data)
71
+ expect(record).to be_a Hash
72
+ expect(record['id']).to eq('37_2302_REG')
73
+ end
74
+ end
75
+
76
+ describe 'api failures' do
77
+ context 'employee id does not exist' do
78
+ it 'should not raise an error but should not have an object in the response payload' do
79
+ response = File.new("spec/fixtures/time_tracking_add_empty_response.json")
80
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
81
+
82
+ data = {
83
+ timeTrackingId: '37_2302_REG',
84
+ employeeId: '40488',
85
+ dateHoursWorked: '2016-08-12',
86
+ payRate: '19.00',
87
+ rateType: 'REG',
88
+ hoursWorked: '4.5760'
89
+ }
90
+ record = @client.time_tracking.add(data)
91
+ expect(record).to be_a Hash
92
+ expect(record['headers']['content-length']).to eq('0')
93
+ end
94
+ end
95
+ end
96
+ end
97
+
98
+ describe '#adjust' do
99
+ describe 'api success' do
100
+ it 'should return a hash with the id of the created record' do
101
+ response = File.new("spec/fixtures/time_tracking_adjust_200_response.json")
102
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
103
+
104
+ record = @client.time_tracking.adjust('37_2302_REG', '4.8')
105
+ expect(record).to be_a Hash
106
+ expect(record['id']).to eq('37_2302_REG')
107
+ end
108
+ end
109
+
110
+ describe 'api failures' do
111
+ context 'time tracking id does not exist' do
112
+ it 'should raise a Bad Request error' do
113
+ response = File.new("spec/fixtures/time_tracking_adjust_400_response.json")
114
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
115
+
116
+ expect do
117
+ @client.time_tracking.adjust('37_2303_REG', '4.8')
118
+ end.to raise_error(Bamboozled::BadRequest)
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Bamboozled::Base" do
4
+ let(:base) { Bamboozled::Base.new(subdomain: "x", api_key: "x", httparty_options: {log_format: :curl}) }
5
+
6
+ it "passes HTTParty options to Bamboozled::API::Employee constructor" do
7
+ expect(Bamboozled::API::Employee).to receive(:new).with("x", "x", { log_format: :curl })
8
+ base.employee
9
+ end
10
+ it "passes HTTParty options to Bamboozled::API::Report constructor" do
11
+ expect(Bamboozled::API::Report).to receive(:new).with("x", "x", { log_format: :curl })
12
+ base.report
13
+ end
14
+ it "passes HTTParty options to Bamboozled::API::Meta constructor" do
15
+ expect(Bamboozled::API::Meta).to receive(:new).with("x", "x", { log_format: :curl })
16
+ base.meta
17
+ end
18
+ it "passes HTTParty options to Bamboozled::API::TimeOff constructor" do
19
+ expect(Bamboozled::API::TimeOff).to receive(:new).with("x", "x", { log_format: :curl })
20
+ base.time_off
21
+ end
22
+ it "passes HTTParty options to Bamboozled::API::TimeTracking constructor" do
23
+ expect(Bamboozled::API::TimeTracking).to receive(:new).with("x", "x", { log_format: :curl })
24
+ base.time_tracking
25
+ end
26
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Bamboozled" do
4
+ it "takes HTTParty options as a parameter" do
5
+ expect(Bamboozled::Base).to receive(:new).with(subdomain: "x", api_key: "x", httparty_options: { log_format: :curl })
6
+ Bamboozled.client(subdomain: "x", api_key: "x", httparty_options: { log_format: :curl })
7
+ end
8
+
9
+ it "throws no errors if no HTTParty options were provided (they are optional)" do
10
+ expect { Bamboozled.client(subdomain: "x", api_key: "x") }.not_to raise_error
11
+ end
12
+
13
+ it "passes HTTParty params to HTTParty" do
14
+ logger = double("logger")
15
+ allow(Time).to receive_message_chain(:now, :strftime).and_return("Time.now")
16
+ expect(logger).to receive(:info).with('[HTTParty] [Time.now] 200 "GET https://api.bamboohr.com/api/gateway.php/x/v1/employees/1234?fields=" - ')
17
+
18
+ client = Bamboozled.client(subdomain: "x", api_key: "x", httparty_options: { log_format: :apache, logger: logger })
19
+ response = File.new("spec/fixtures/one_employee.json")
20
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
21
+
22
+ employee = client.employee.find(1234)
23
+ end
24
+
25
+ it "works without HTTParty options provided" do
26
+ client = Bamboozled.client(subdomain: "x", api_key: "x")
27
+ response = File.new("spec/fixtures/one_employee.json")
28
+ stub_request(:any, /.*api\.bamboohr\.com.*/).to_return(response)
29
+
30
+ employee = client.employee.find(1234)
31
+ expect(employee["firstName"]).to eq "John"
32
+ end
33
+ end
@@ -0,0 +1,32 @@
1
+ require "coveralls"
2
+ Coveralls.wear!
3
+
4
+ require "webmock/rspec"
5
+ require "rspec"
6
+
7
+ RSpec.configure do |config|
8
+ config.expect_with :rspec do |expectations|
9
+ # Only allow the expectation syntax
10
+ expectations.syntax = :expect
11
+
12
+ # Include custom matcher descriptions in output
13
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
14
+ end
15
+
16
+ # Disable monkey patching for describe
17
+ config.expose_dsl_globally = false
18
+ config.disable_monkey_patching!
19
+
20
+ if config.files_to_run.one?
21
+ # Use the documentation formatter for detailed output
22
+ config.default_formatter = "doc"
23
+ end
24
+
25
+ # Run specs in random order to surface order dependencies
26
+ config.order = :random
27
+
28
+ # Seed global randomization in this process using the `--seed` CLI option
29
+ Kernel.srand config.seed
30
+ end
31
+
32
+ require "bamboozled"
metadata ADDED
@@ -0,0 +1,237 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bamboozled-gitlab
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.9
5
+ platform: ruby
6
+ authors:
7
+ - Mark Rickert
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.20'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.20'
69
+ - !ruby/object:Gem::Dependency
70
+ name: httparty
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.13'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.13'
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 2.3.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 2.3.0
97
+ description: Bamboozled wraps the BambooHR API without the use of Rails dependencies.
98
+ email:
99
+ - mjar81@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
105
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
106
+ - ".github/ISSUE_TEMPLATE/question.md"
107
+ - ".github/main.workflow"
108
+ - ".github/pull_request_template.md"
109
+ - ".gitignore"
110
+ - ".rubocop.yml"
111
+ - ".rubocop_todo.yml"
112
+ - ".travis.yml"
113
+ - CHANGELOG.md
114
+ - CONTRIBUTING.md
115
+ - Dockerfile
116
+ - Gemfile
117
+ - Guardfile
118
+ - LICENSE
119
+ - README.md
120
+ - Rakefile
121
+ - bamboozled.gemspec
122
+ - examples/employees_over_time.rb
123
+ - lib/bamboozled.rb
124
+ - lib/bamboozled/api/base.rb
125
+ - lib/bamboozled/api/employee.rb
126
+ - lib/bamboozled/api/field_collection.rb
127
+ - lib/bamboozled/api/meta.rb
128
+ - lib/bamboozled/api/report.rb
129
+ - lib/bamboozled/api/time_off.rb
130
+ - lib/bamboozled/api/time_tracking.rb
131
+ - lib/bamboozled/base.rb
132
+ - lib/bamboozled/errors.rb
133
+ - lib/bamboozled/ext/yesno.rb
134
+ - lib/bamboozled/version.rb
135
+ - logos/bamboozled_logo_black.png
136
+ - logos/bamboozled_logo_green.png
137
+ - logos/skookum_mark_black.png
138
+ - logos/skookum_mark_black.svg
139
+ - relnotes/v0.1.0.md
140
+ - spec/fixtures/add_employee_details.json
141
+ - spec/fixtures/add_employee_response.json
142
+ - spec/fixtures/add_employee_xml.yml
143
+ - spec/fixtures/all_employees.json
144
+ - spec/fixtures/custom_report.json
145
+ - spec/fixtures/employee_emails.json
146
+ - spec/fixtures/employee_table_details.json
147
+ - spec/fixtures/job_info.xml
148
+ - spec/fixtures/last_changed.json
149
+ - spec/fixtures/meta_fields.json
150
+ - spec/fixtures/meta_lists.json
151
+ - spec/fixtures/meta_tables.json
152
+ - spec/fixtures/meta_users.json
153
+ - spec/fixtures/one_employee.json
154
+ - spec/fixtures/time_off_estimate.json
155
+ - spec/fixtures/time_tracking_add_200_response.json
156
+ - spec/fixtures/time_tracking_add_empty_response.json
157
+ - spec/fixtures/time_tracking_adjust_200_response.json
158
+ - spec/fixtures/time_tracking_adjust_400_response.json
159
+ - spec/fixtures/time_tracking_record_200_response.json
160
+ - spec/fixtures/time_tracking_record_400_response.json
161
+ - spec/fixtures/time_tracking_record_401_response.json
162
+ - spec/fixtures/time_tracking_record_404_response.json
163
+ - spec/fixtures/update_employee_details.json
164
+ - spec/fixtures/update_employee_response.json
165
+ - spec/fixtures/update_employee_table.json
166
+ - spec/fixtures/update_employee_table_xml.yml
167
+ - spec/fixtures/update_employee_xml.yml
168
+ - spec/lib/bamboozled/api/base_spec.rb
169
+ - spec/lib/bamboozled/api/employee_spec.rb
170
+ - spec/lib/bamboozled/api/field_collection_spec.rb
171
+ - spec/lib/bamboozled/api/meta_spec.rb
172
+ - spec/lib/bamboozled/api/report_spec.rb
173
+ - spec/lib/bamboozled/api/time_tracking_spec.rb
174
+ - spec/lib/bamboozled/base_spec.rb
175
+ - spec/lib/bamboozled_spec.rb
176
+ - spec/spec_helper.rb
177
+ homepage: http://github.com/Skookum/bamboozled
178
+ licenses:
179
+ - MIT
180
+ metadata: {}
181
+ post_install_message:
182
+ rdoc_options: []
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '2.0'
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ requirements: []
196
+ rubygems_version: 3.1.2
197
+ signing_key:
198
+ specification_version: 4
199
+ summary: A Ruby wrapper for the BambooHR API http://www.bamboohr.com/
200
+ test_files:
201
+ - spec/fixtures/add_employee_details.json
202
+ - spec/fixtures/add_employee_response.json
203
+ - spec/fixtures/add_employee_xml.yml
204
+ - spec/fixtures/all_employees.json
205
+ - spec/fixtures/custom_report.json
206
+ - spec/fixtures/employee_emails.json
207
+ - spec/fixtures/employee_table_details.json
208
+ - spec/fixtures/job_info.xml
209
+ - spec/fixtures/last_changed.json
210
+ - spec/fixtures/meta_fields.json
211
+ - spec/fixtures/meta_lists.json
212
+ - spec/fixtures/meta_tables.json
213
+ - spec/fixtures/meta_users.json
214
+ - spec/fixtures/one_employee.json
215
+ - spec/fixtures/time_off_estimate.json
216
+ - spec/fixtures/time_tracking_add_200_response.json
217
+ - spec/fixtures/time_tracking_add_empty_response.json
218
+ - spec/fixtures/time_tracking_adjust_200_response.json
219
+ - spec/fixtures/time_tracking_adjust_400_response.json
220
+ - spec/fixtures/time_tracking_record_200_response.json
221
+ - spec/fixtures/time_tracking_record_400_response.json
222
+ - spec/fixtures/time_tracking_record_401_response.json
223
+ - spec/fixtures/time_tracking_record_404_response.json
224
+ - spec/fixtures/update_employee_details.json
225
+ - spec/fixtures/update_employee_response.json
226
+ - spec/fixtures/update_employee_table.json
227
+ - spec/fixtures/update_employee_table_xml.yml
228
+ - spec/fixtures/update_employee_xml.yml
229
+ - spec/lib/bamboozled/api/base_spec.rb
230
+ - spec/lib/bamboozled/api/employee_spec.rb
231
+ - spec/lib/bamboozled/api/field_collection_spec.rb
232
+ - spec/lib/bamboozled/api/meta_spec.rb
233
+ - spec/lib/bamboozled/api/report_spec.rb
234
+ - spec/lib/bamboozled/api/time_tracking_spec.rb
235
+ - spec/lib/bamboozled/base_spec.rb
236
+ - spec/lib/bamboozled_spec.rb
237
+ - spec/spec_helper.rb