bamboozled 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +5 -5
  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 +2 -0
  8. data/.rubocop.yml +4 -2
  9. data/.rubocop_todo.yml +305 -0
  10. data/.travis.yml +7 -8
  11. data/CHANGELOG.md +22 -1
  12. data/CONTRIBUTING.md +2 -2
  13. data/Dockerfile +8 -0
  14. data/Gemfile +3 -2
  15. data/README.md +11 -1
  16. data/bamboozled.gemspec +2 -3
  17. data/lib/bamboozled.rb +4 -2
  18. data/lib/bamboozled/api/base.rb +63 -59
  19. data/lib/bamboozled/api/employee.rb +1 -6
  20. data/lib/bamboozled/api/field_collection.rb +107 -0
  21. data/lib/bamboozled/api/meta.rb +15 -5
  22. data/lib/bamboozled/api/report.rb +10 -6
  23. data/lib/bamboozled/api/time_off.rb +9 -6
  24. data/lib/bamboozled/api/time_tracking.rb +24 -0
  25. data/lib/bamboozled/base.rb +12 -6
  26. data/lib/bamboozled/version.rb +1 -1
  27. data/spec/fixtures/add_employee_xml.yml +1 -1
  28. data/spec/fixtures/custom_report.json +38 -0
  29. data/spec/fixtures/meta_fields.json +5 -0
  30. data/spec/fixtures/meta_lists.json +5 -0
  31. data/spec/fixtures/meta_tables.json +5 -0
  32. data/spec/fixtures/meta_users.json +4 -0
  33. data/spec/fixtures/time_tracking_add_200_response.json +7 -0
  34. data/spec/fixtures/time_tracking_add_empty_response.json +9 -0
  35. data/spec/fixtures/time_tracking_adjust_200_response.json +7 -0
  36. data/spec/fixtures/time_tracking_adjust_400_response.json +11 -0
  37. data/spec/fixtures/time_tracking_record_200_response.json +9 -0
  38. data/spec/fixtures/time_tracking_record_400_response.json +11 -0
  39. data/spec/fixtures/time_tracking_record_401_response.json +10 -0
  40. data/spec/fixtures/time_tracking_record_404_response.json +8 -0
  41. data/spec/fixtures/update_employee_xml.yml +1 -1
  42. data/spec/lib/bamboozled/api/base_spec.rb +18 -0
  43. data/spec/lib/bamboozled/api/employee_spec.rb +0 -14
  44. data/spec/lib/bamboozled/api/field_collection_spec.rb +17 -0
  45. data/spec/lib/bamboozled/api/meta_spec.rb +47 -0
  46. data/spec/lib/bamboozled/api/report_spec.rb +17 -0
  47. data/spec/lib/bamboozled/api/time_tracking_spec.rb +123 -0
  48. data/spec/lib/bamboozled/base_spec.rb +26 -0
  49. data/spec/lib/bamboozled_spec.rb +33 -0
  50. metadata +54 -21
  51. data/.hound.yml +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f8a9416ada8eceac7ea3e04dff8fc289b33a49c6
4
- data.tar.gz: a59005a19d6941995bc4d896b82529ebe9ebcefb
2
+ SHA256:
3
+ metadata.gz: 4d7046229bf234dad5fe76584659bfda2e73875f2ca791f19afd676dff08589f
4
+ data.tar.gz: 3d8dd39447ef45cc729585e489d66ed6ce16efac7d12f199f9e0e64b37b03bef
5
5
  SHA512:
6
- metadata.gz: e1d43d4bc115a83e706c8d58998488287b938f7bd82ff9074964b6d844fbae029accf3f7d73f5e2f1e9a4a826b74f4697865cb5c860f96baf1602a858ef257a1
7
- data.tar.gz: 8e9e7b24da7477331518467fae8a88e35143a430fa2e01ebddd0f61e4d9ea340f61059baa5235bc76f8d5bd37175fa7043644347c203f615887cc80dc886c2e6
6
+ metadata.gz: 793ed853e666ca47d84d9b86589c701d74aa6263b54e0ff27f192ac6ce491d8e8849185a045887250b76ad46644a6f3a450732394dcffbdd84c4d4880edbb876
7
+ data.tar.gz: 8f8edb6ab2d2a75afa859286729f3b7a0dd1c8b526fd8118589db7fde942bf85e332a53dd671be8ed543ddaff0a25632040d0dcb3de4da81283fac83b335c1f0
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: '🐛 Bug Report'
3
+ about: "When something's not working as expected 🤔"
4
+ title: '🐛'
5
+ labels: 'bug'
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Description
10
+ <!-- A clear and concise description of what the bug is. //-->
11
+
12
+ ## Expected behavior
13
+ <!-- A clear and concise description of what you expected to happen. //-->
14
+
15
+ ## How To Reproduce
16
+ <!--
17
+ Steps to reproduce the behavior:
18
+ 1. Go to '...'
19
+ 2. Click on '....'
20
+ 3. Scroll down to '....'
21
+ 4. See error
22
+ //-->
23
+
24
+ ## Environment
25
+ <!--
26
+ - Device: [e.g. iPhone6]
27
+ - OS: [e.g. iOS, macOS]
28
+ - Browser [e.g. chrome, safari]
29
+ - Version [e.g. 22]
30
+ //-->
31
+
32
+ ## Screenshots
33
+ <!-- If applicable, add screenshots/gifs to help explain your problem. //-->
34
+
35
+ ## Potential solution
36
+ <!-- Do you have any ideas about how to fix this bug? //-->
37
+
38
+ ## Additional context
39
+ <!-- Add any other context about the problem here. //-->
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: '🚀 New feature'
3
+ about: 'Suggest a shiny new idea for this project ✨'
4
+ title: '🚀'
5
+ labels: 'enhancement'
6
+ assignees: ''
7
+ ---
8
+
9
+ ## What problem does this solve?
10
+ <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] //-->
11
+
12
+ ## Describe the solution you'd like
13
+ <!-- A clear and concise description of what you want to happen. //-->
14
+
15
+ ## Possible alternatives
16
+ <!-- A clear and concise description of any alternative solutions or features you've considered. //-->
17
+
18
+ ## Additional context
19
+ <!-- Add any other context or screenshots about the feature request here. //-->
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: '🗣 Question'
3
+ about: 'Begin a discussion, with the intention to reach a decision'
4
+ title: '🗣'
5
+ labels: 'question'
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Describe the problem
10
+ <!-- A clear and concise description of what the problem is. Ex. Our CI pipeline is slow and it [...] //-->
11
+
12
+ ## What needs to be decided?
13
+ <!-- The question that, once answered, will end the discussion. Ex. What branching strategy should we use?, Ex. How can we increase our number of dev contributions? //-->
14
+
15
+ ## Possible solutions
16
+ <!-- A clear and concise description of possible resolutions. //-->
17
+
18
+ ## Additional context
19
+ <!-- Add any other context or screenshots here. //-->
@@ -0,0 +1,38 @@
1
+ workflow "Test and Lint" {
2
+ on = "push"
3
+ resolves = ["rspec", "rubocop"]
4
+ }
5
+
6
+ action "build" {
7
+ uses = "actions/docker/cli@master"
8
+ args = "build -f Dockerfile -t ci-$GITHUB_SHA:latest ."
9
+ }
10
+
11
+ action "rubocop" {
12
+ uses = "actions/docker/cli@master"
13
+ needs = ["build"]
14
+ args = "run ci-$GITHUB_SHA:latest rubocop"
15
+ }
16
+
17
+ action "rspec" {
18
+ uses = "actions/docker/cli@master"
19
+ needs = ["build"]
20
+ args = "run ci-$GITHUB_SHA:latest rspec"
21
+ }
22
+
23
+ workflow "Package Ruby Gem" {
24
+ on = "release"
25
+ resolves = ["Push the gem"]
26
+ }
27
+
28
+ action "Build the gem" {
29
+ uses = "scarhand/actions-ruby@master"
30
+ args = "build *.gemspec"
31
+ }
32
+
33
+ action "Push the gem" {
34
+ uses = "scarhand/actions-ruby@master"
35
+ needs = ["Build the gem"]
36
+ args = "push *.gem"
37
+ secrets = ["RUBYGEMS_AUTH_TOKEN"]
38
+ }
@@ -0,0 +1,27 @@
1
+ <!--- Provide a general summary of your changes in the Title above -->
2
+
3
+ ## Description
4
+ <!--- Describe your changes in detail -->
5
+
6
+ ## Related Issue
7
+ <!--- This project only accepts pull requests related to open issues -->
8
+ <!--- If suggesting a new feature or change, please discuss it in an issue first -->
9
+ <!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
10
+ <!--- Please link to the issue here: -->
11
+
12
+ ## Screenshots (if appropriate):
13
+
14
+ ## Types of changes
15
+ <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
16
+ - [ ] Bug fix (non-breaking change which fixes an issue)
17
+ - [ ] New feature (non-breaking change which adds functionality)
18
+ - [ ] Breaking change (fix or feature that would cause existing functionality to change)
19
+
20
+ ## Checklist:
21
+ <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
22
+ <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
23
+ - [ ] My code follows the code style of this project.
24
+ - [ ] My change requires a change to the documentation.
25
+ - [ ] I have updated the documentation accordingly.
26
+ - [ ] I have added tests to cover my changes.
27
+ - [ ] All new and existing tests passed.
data/.gitignore CHANGED
@@ -34,3 +34,5 @@ Gemfile.lock
34
34
 
35
35
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
36
36
  .rvmrc
37
+
38
+ .idea
data/.rubocop.yml CHANGED
@@ -1,9 +1,11 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
1
3
  # require: rubocop-rspec
2
4
 
3
5
  Rails:
4
6
  Enabled: false
5
7
 
6
- Style/AlignHash:
8
+ Layout/AlignHash:
7
9
  Enabled: true
8
10
  EnforcedHashRocketStyle: table
9
11
  EnforcedColonStyle: table
@@ -33,5 +35,5 @@ Style/StringLiterals:
33
35
  Style/SymbolArray:
34
36
  Enabled: true
35
37
 
36
- RSpec/FilePath:
38
+ Rails/FilePath:
37
39
  Enabled: false
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,305 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2018-02-16 12:43:07 -0500 using RuboCop version 0.52.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
12
+ # Include: **/Gemfile, **/gems.rb
13
+ Bundler/OrderedGems:
14
+ Exclude:
15
+ - 'Gemfile'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'bamboozled.gemspec'
23
+
24
+ # Offense count: 17
25
+ # Cop supports --auto-correct.
26
+ # Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
27
+ # SupportedHashRocketStyles: key, separator, table
28
+ # SupportedColonStyles: key, separator, table
29
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
30
+ Layout/AlignHash:
31
+ Exclude:
32
+ - 'lib/bamboozled/api/base.rb'
33
+ - 'spec/lib/bamboozled/api/time_tracking_spec.rb'
34
+
35
+ # Offense count: 2
36
+ # Cop supports --auto-correct.
37
+ # Configuration parameters: EnforcedStyle.
38
+ # SupportedStyles: leading, trailing
39
+ Layout/DotPosition:
40
+ Exclude:
41
+ - 'spec/lib/bamboozled/api/base_spec.rb'
42
+
43
+ # Offense count: 1
44
+ # Cop supports --auto-correct.
45
+ Layout/EmptyLineAfterMagicComment:
46
+ Exclude:
47
+ - 'bamboozled.gemspec'
48
+
49
+ # Offense count: 1
50
+ # Cop supports --auto-correct.
51
+ Layout/EmptyLinesAroundAccessModifier:
52
+ Exclude:
53
+ - 'lib/bamboozled/api/base.rb'
54
+
55
+ # Offense count: 1
56
+ # Cop supports --auto-correct.
57
+ # Configuration parameters: EnforcedStyle.
58
+ # SupportedStyles: empty_lines, no_empty_lines
59
+ Layout/EmptyLinesAroundBlockBody:
60
+ Exclude:
61
+ - 'Gemfile'
62
+
63
+ # Offense count: 3
64
+ # Cop supports --auto-correct.
65
+ # Configuration parameters: EnforcedStyle.
66
+ # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
67
+ Layout/EmptyLinesAroundClassBody:
68
+ Exclude:
69
+ - 'lib/bamboozled/api/employee.rb'
70
+ - 'lib/bamboozled/api/meta.rb'
71
+ - 'lib/bamboozled/api/report.rb'
72
+
73
+ # Offense count: 1
74
+ # Cop supports --auto-correct.
75
+ Layout/EmptyLinesAroundMethodBody:
76
+ Exclude:
77
+ - 'examples/employees_over_time.rb'
78
+
79
+ # Offense count: 2
80
+ # Cop supports --auto-correct.
81
+ # Configuration parameters: IndentationWidth.
82
+ # SupportedStyles: special_inside_parentheses, consistent, align_braces
83
+ Layout/IndentHash:
84
+ EnforcedStyle: consistent
85
+
86
+ # Offense count: 3
87
+ # Cop supports --auto-correct.
88
+ # Configuration parameters: EnforcedStyle.
89
+ # SupportedStyles: normal, rails
90
+ Layout/IndentationConsistency:
91
+ Exclude:
92
+ - 'lib/bamboozled/api/base.rb'
93
+
94
+ # Offense count: 1
95
+ # Cop supports --auto-correct.
96
+ # Configuration parameters: EnforcedStyle.
97
+ # SupportedStyles: symmetrical, new_line, same_line
98
+ Layout/MultilineMethodCallBraceLayout:
99
+ Exclude:
100
+ - 'lib/bamboozled/api/meta.rb'
101
+
102
+ # Offense count: 2
103
+ # Cop supports --auto-correct.
104
+ Layout/SpaceAfterColon:
105
+ Exclude:
106
+ - 'examples/employees_over_time.rb'
107
+
108
+ # Offense count: 2
109
+ # Cop supports --auto-correct.
110
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
111
+ # SupportedStyles: space, no_space
112
+ # SupportedStylesForEmptyBraces: space, no_space
113
+ Layout/SpaceBeforeBlockBraces:
114
+ Exclude:
115
+ - 'examples/employees_over_time.rb'
116
+ - 'lib/bamboozled/api/employee.rb'
117
+
118
+ # Offense count: 6
119
+ # Cop supports --auto-correct.
120
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
121
+ # SupportedStyles: space, no_space
122
+ # SupportedStylesForEmptyBraces: space, no_space
123
+ Layout/SpaceInsideBlockBraces:
124
+ Exclude:
125
+ - 'examples/employees_over_time.rb'
126
+ - 'lib/bamboozled/api/employee.rb'
127
+
128
+ # Offense count: 4
129
+ # Cop supports --auto-correct.
130
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
131
+ # SupportedStyles: space, no_space, compact
132
+ # SupportedStylesForEmptyBraces: space, no_space
133
+ Layout/SpaceInsideHashLiteralBraces:
134
+ Exclude:
135
+ - 'lib/bamboozled/api/employee.rb'
136
+ - 'spec/lib/bamboozled/base_spec.rb'
137
+
138
+ # Offense count: 1
139
+ # Cop supports --auto-correct.
140
+ # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
141
+ Lint/UnusedBlockArgument:
142
+ Exclude:
143
+ - 'lib/bamboozled/api/employee.rb'
144
+
145
+ # Offense count: 1
146
+ Lint/UselessAssignment:
147
+ Exclude:
148
+ - 'spec/lib/bamboozled_spec.rb'
149
+
150
+ # Offense count: 3
151
+ Metrics/AbcSize:
152
+ Max: 43
153
+
154
+ # Offense count: 6
155
+ # Configuration parameters: CountComments, ExcludedMethods.
156
+ Metrics/BlockLength:
157
+ Max: 104
158
+
159
+ # Offense count: 1
160
+ Metrics/CyclomaticComplexity:
161
+ Max: 15
162
+
163
+ # Offense count: 2
164
+ # Configuration parameters: CountComments.
165
+ Metrics/MethodLength:
166
+ Max: 54
167
+
168
+ # Offense count: 1
169
+ Metrics/PerceivedComplexity:
170
+ Max: 8
171
+
172
+ # Offense count: 8
173
+ # Cop supports --auto-correct.
174
+ # Configuration parameters: EnforcedStyle.
175
+ # SupportedStyles: braces, no_braces, context_dependent
176
+ Style/BracesAroundHashParameters:
177
+ Exclude:
178
+ - 'lib/bamboozled/api/base.rb'
179
+ - 'spec/lib/bamboozled/api/base_spec.rb'
180
+ - 'spec/lib/bamboozled/base_spec.rb'
181
+
182
+ # Offense count: 1
183
+ # Cop supports --auto-correct.
184
+ Style/EmptyLiteral:
185
+ Exclude:
186
+ - 'lib/bamboozled/api/employee.rb'
187
+
188
+ # Offense count: 1
189
+ # Cop supports --auto-correct.
190
+ Style/Encoding:
191
+ Exclude:
192
+ - 'bamboozled.gemspec'
193
+
194
+ # Offense count: 23
195
+ # Cop supports --auto-correct.
196
+ # Configuration parameters: EnforcedStyle.
197
+ # SupportedStyles: when_needed, always, never
198
+ Style/FrozenStringLiteralComment:
199
+ Enabled: false
200
+
201
+ # Offense count: 1
202
+ # Cop supports --auto-correct.
203
+ Style/IfUnlessModifier:
204
+ Exclude:
205
+ - 'lib/bamboozled/api/time_off.rb'
206
+
207
+ # Offense count: 6
208
+ Style/MethodCalledOnDoEndBlock:
209
+ Exclude:
210
+ - 'examples/employees_over_time.rb'
211
+ - 'spec/lib/bamboozled/api/time_tracking_spec.rb'
212
+
213
+ # Offense count: 1
214
+ Style/MultilineBlockChain:
215
+ Exclude:
216
+ - 'examples/employees_over_time.rb'
217
+
218
+ # Offense count: 2
219
+ # Configuration parameters: SuspiciousParamNames.
220
+ # SuspiciousParamNames: options, opts, args, params, parameters
221
+ Style/OptionHash:
222
+ Exclude:
223
+ - 'lib/bamboozled/api/base.rb'
224
+ - 'lib/bamboozled/api/time_off.rb'
225
+
226
+ # Offense count: 4
227
+ # Cop supports --auto-correct.
228
+ # Configuration parameters: PreferredDelimiters.
229
+ Style/PercentLiteralDelimiters:
230
+ Exclude:
231
+ - 'examples/employees_over_time.rb'
232
+ - 'lib/bamboozled/api/employee.rb'
233
+ - 'spec/lib/bamboozled/api/employee_spec.rb'
234
+
235
+ # Offense count: 1
236
+ # Cop supports --auto-correct.
237
+ Style/PerlBackrefs:
238
+ Exclude:
239
+ - 'lib/bamboozled/api/employee.rb'
240
+
241
+ # Offense count: 1
242
+ # Cop supports --auto-correct.
243
+ # Configuration parameters: EnforcedStyle, AllowInnerSlashes.
244
+ # SupportedStyles: slashes, percent_r, mixed
245
+ Style/RegexpLiteral:
246
+ Exclude:
247
+ - 'Guardfile'
248
+
249
+ # Offense count: 3
250
+ # Cop supports --auto-correct.
251
+ Style/RescueModifier:
252
+ Exclude:
253
+ - 'examples/employees_over_time.rb'
254
+ - 'lib/bamboozled/api/employee.rb'
255
+
256
+ # Offense count: 1
257
+ # Cop supports --auto-correct.
258
+ # Configuration parameters: EnforcedStyle.
259
+ # SupportedStyles: implicit, explicit
260
+ Style/RescueStandardError:
261
+ Exclude:
262
+ - 'lib/bamboozled/api/base.rb'
263
+
264
+ # Offense count: 88
265
+ # Cop supports --auto-correct.
266
+ # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
267
+ # SupportedStyles: single_quotes, double_quotes
268
+ Style/StringLiterals:
269
+ Exclude:
270
+ - 'examples/employees_over_time.rb'
271
+ - 'lib/bamboozled/api/base.rb'
272
+ - 'lib/bamboozled/api/employee.rb'
273
+ - 'lib/bamboozled/api/report.rb'
274
+ - 'lib/bamboozled/api/time_tracking.rb'
275
+ - 'spec/lib/bamboozled/api/time_tracking_spec.rb'
276
+
277
+ # Offense count: 1
278
+ # Cop supports --auto-correct.
279
+ # Configuration parameters: .
280
+ # SupportedStyles: percent, brackets
281
+ Style/SymbolArray:
282
+ EnforcedStyle: percent
283
+ MinSize: 6
284
+
285
+ # Offense count: 1
286
+ # Cop supports --auto-correct.
287
+ # Configuration parameters: EnforcedStyle, AllowSafeAssignment.
288
+ # SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
289
+ Style/TernaryParentheses:
290
+ Exclude:
291
+ - 'examples/employees_over_time.rb'
292
+
293
+ # Offense count: 1
294
+ # Cop supports --auto-correct.
295
+ # Configuration parameters: WordRegex.
296
+ # SupportedStyles: percent, brackets
297
+ Style/WordArray:
298
+ EnforcedStyle: percent
299
+ MinSize: 3
300
+
301
+ # Offense count: 58
302
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
303
+ # URISchemes: http, https
304
+ Metrics/LineLength:
305
+ Max: 757