client_success 0.1.2

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 (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +466 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +4 -0
  7. data/Gemfile.lock +111 -0
  8. data/README.md +52 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/client_success.gemspec +44 -0
  13. data/lib/client_success/access_token.rb +25 -0
  14. data/lib/client_success/client.rb +115 -0
  15. data/lib/client_success/client_type.rb +18 -0
  16. data/lib/client_success/connection.rb +99 -0
  17. data/lib/client_success/contact.rb +104 -0
  18. data/lib/client_success/domain_model/access_token.rb +11 -0
  19. data/lib/client_success/domain_model/client.rb +14 -0
  20. data/lib/client_success/domain_model/client_type.rb +14 -0
  21. data/lib/client_success/domain_model/contact.rb +14 -0
  22. data/lib/client_success/domain_model/custom_field_value.rb +9 -0
  23. data/lib/client_success/domain_model/employee.rb +14 -0
  24. data/lib/client_success/domain_model/product.rb +10 -0
  25. data/lib/client_success/domain_model/security_role.rb +9 -0
  26. data/lib/client_success/domain_model/status.rb +9 -0
  27. data/lib/client_success/domain_model/subscription.rb +12 -0
  28. data/lib/client_success/domain_model/success_cycle.rb +9 -0
  29. data/lib/client_success/domain_model/to_do.rb +9 -0
  30. data/lib/client_success/employee.rb +18 -0
  31. data/lib/client_success/product.rb +16 -0
  32. data/lib/client_success/schema/client/create.rb +34 -0
  33. data/lib/client_success/schema/client/update.rb +37 -0
  34. data/lib/client_success/schema/contact/create.rb +28 -0
  35. data/lib/client_success/schema/contact/update.rb +27 -0
  36. data/lib/client_success/schema/subscription/create.rb +20 -0
  37. data/lib/client_success/schema/subscription/update.rb +21 -0
  38. data/lib/client_success/status.rb +23 -0
  39. data/lib/client_success/subscription.rb +51 -0
  40. data/lib/client_success/to_do.rb +23 -0
  41. data/lib/client_success/types.rb +7 -0
  42. data/lib/client_success/version.rb +3 -0
  43. data/lib/client_success.rb +18 -0
  44. metadata +266 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0f49bdffafdb03e24047bed3e4ba924484e8efe2976a5f3133e8045e9afdc955
4
+ data.tar.gz: 5fe7e44b7a68a1e3d2d36f91351b2523b04c69f21c0199d55f0127d76f55ddf8
5
+ SHA512:
6
+ metadata.gz: a316529d34fbea645ce64f0be27f6bba6af1fc7f4dc8867b51ce46d8384e45f9a13c1bbc80ad671e9ed616ce3949b277d9d1eaa9122cd077b49978b4c6806407
7
+ data.tar.gz: 30de65519fc46b7868a376a238e24a1e5fcbf84907741befcc0d08a4b7da7015a1ca62e08ba888c648edde0afbefb4a2b688a719b61cf79ade0161eda56c79c8
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,466 @@
1
+ ---
2
+ require:
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ TargetRubyVersion: 2.6
7
+
8
+ Gemspec/OrderedDependencies:
9
+ Enabled: false
10
+
11
+ Layout/ArgumentAlignment:
12
+ Enabled: false
13
+ EnforcedStyle: with_fixed_indentation
14
+
15
+ Layout/HashAlignment:
16
+ Enabled: false
17
+ EnforcedColonStyle: key
18
+ EnforcedHashRocketStyle: key
19
+
20
+ Layout/ParameterAlignment:
21
+ Enabled: false
22
+ EnforcedStyle: with_first_parameter
23
+
24
+ Layout/ClosingParenthesisIndentation:
25
+ Enabled: true
26
+
27
+ Layout/CommentIndentation:
28
+ Enabled: false
29
+
30
+ Layout/EmptyLineAfterMagicComment:
31
+ Enabled: false
32
+
33
+ Layout/EmptyLinesAroundExceptionHandlingKeywords:
34
+ Enabled: false
35
+
36
+ Layout/FirstArrayElementIndentation:
37
+ Enabled: true
38
+ EnforcedStyle: consistent
39
+
40
+ Layout/FirstHashElementIndentation:
41
+ Enabled: true
42
+ EnforcedStyle: consistent
43
+
44
+ Layout/HeredocIndentation:
45
+ Enabled: false
46
+
47
+ Layout/LeadingCommentSpace:
48
+ Enabled: true
49
+
50
+ Layout/MultilineArrayBraceLayout:
51
+ Enabled: false
52
+
53
+ Layout/MultilineHashBraceLayout:
54
+ Enabled: false
55
+
56
+ Layout/MultilineMethodCallBraceLayout:
57
+ Enabled: false
58
+
59
+ Layout/MultilineMethodCallIndentation:
60
+ Enabled: false
61
+ EnforcedStyle: aligned
62
+
63
+ Layout/MultilineOperationIndentation:
64
+ Enabled: false
65
+
66
+ Layout/RescueEnsureAlignment:
67
+ Enabled: false
68
+
69
+ Layout/SpaceBeforeFirstArg:
70
+ Enabled: false
71
+
72
+ Layout/SpaceInLambdaLiteral:
73
+ Enabled: false
74
+
75
+ Lint/AmbiguousBlockAssociation:
76
+ Enabled: false
77
+
78
+ Lint/AmbiguousOperator:
79
+ Exclude:
80
+ - app/graphql/**/*
81
+
82
+ Lint/SuppressedException:
83
+ Enabled: false
84
+
85
+ Lint/NonLocalExitFromIterator:
86
+ Enabled: false
87
+
88
+ Lint/RedundantSplatExpansion:
89
+ Enabled: false
90
+
91
+ Lint/UnusedBlockArgument:
92
+ Exclude:
93
+ - app/graphql/**/*
94
+
95
+ Lint/UnusedMethodArgument:
96
+ Enabled: false
97
+
98
+ Metrics/AbcSize:
99
+ Max: 40
100
+
101
+ Metrics/BlockLength:
102
+ Enabled: false
103
+
104
+ Metrics/ClassLength:
105
+ Enabled: false
106
+
107
+ Metrics/CyclomaticComplexity:
108
+ Enabled: false
109
+
110
+ Metrics/PerceivedComplexity:
111
+ Enabled: true
112
+ Max: 10
113
+
114
+ Metrics/LineLength:
115
+ Enabled: false
116
+
117
+ Metrics/MethodLength:
118
+ Enabled: true
119
+ Max: 50
120
+
121
+ Metrics/ModuleLength:
122
+ Enabled: false
123
+
124
+ Metrics/ParameterLists:
125
+ Enabled: false
126
+
127
+ Naming/AccessorMethodName:
128
+ Enabled: false
129
+
130
+ Naming/ConstantName:
131
+ Enabled: false
132
+
133
+ Naming/FileName:
134
+ AllowedAcronyms:
135
+ - HMAC
136
+ - OAuth2
137
+ Exclude:
138
+ - lib/xero_hq/**/*
139
+ - lib/**/*
140
+ - gems/**/*
141
+ - lib/http_errors.rb
142
+ ExpectMatchingDefinition: true
143
+ Include:
144
+ - lib/**/*
145
+
146
+ Naming/MemoizedInstanceVariableName:
147
+ Enabled: false
148
+
149
+ Naming/PredicateName:
150
+ Enabled: false
151
+
152
+ Naming/RescuedExceptionsVariableName:
153
+ Enabled: true
154
+ PreferredName: error
155
+
156
+ Naming/MethodParameterName:
157
+ Enabled: false
158
+
159
+ Naming/VariableNumber:
160
+ Enabled: false
161
+
162
+ Performance/Count:
163
+ Enabled: false
164
+
165
+ Performance/Casecmp:
166
+ Enabled: false
167
+
168
+ Performance/TimesMap:
169
+ Enabled: false
170
+
171
+ Performance/RegexpMatch:
172
+ Enabled: false
173
+
174
+ RSpec/AnyInstance:
175
+ Enabled: false
176
+
177
+ RSpec/BeEql:
178
+ Enabled: true
179
+
180
+ RSpec/BeforeAfterAll:
181
+ Enabled: false
182
+
183
+ RSpec/ContextWording:
184
+ Enabled: false
185
+
186
+ RSpec/DescribeClass:
187
+ Enabled: false
188
+
189
+ RSpec/DescribeMethod:
190
+ Enabled: false
191
+
192
+ RSpec/DescribedClass:
193
+ Enabled: false
194
+
195
+ RSpec/EmptyExampleGroup:
196
+ Enabled: false
197
+
198
+ RSpec/EmptyLineAfterExampleGroup:
199
+ Enabled: true
200
+
201
+ RSpec/EmptyLineAfterFinalLet:
202
+ Enabled: true
203
+
204
+ RSpec/EmptyLineAfterHook:
205
+ Enabled: true
206
+
207
+ RSpec/EmptyLineAfterSubject:
208
+ Enabled: true
209
+
210
+ RSpec/ExampleLength:
211
+ Enabled: false
212
+
213
+ RSpec/ExampleWording:
214
+ Enabled: false
215
+
216
+ RSpec/ExpectChange:
217
+ Enabled: true
218
+ EnforcedStyle: block
219
+
220
+ RSpec/ExpectInHook:
221
+ Enabled: false
222
+
223
+ RSpec/FilePath:
224
+ Enabled: true
225
+ Exclude:
226
+ - spec/graphql/**/*.rb # TODO: Fix GQL tests
227
+
228
+ RSpec/Focus:
229
+ Enabled: true
230
+
231
+ RSpec/HookArgument:
232
+ Enabled: true
233
+ EnforcedStyle: each
234
+
235
+ RSpec/HooksBeforeExamples:
236
+ Enabled: false
237
+
238
+ RSpec/ImplicitExpect:
239
+ Enabled: false
240
+
241
+ RSpec/InstanceVariable:
242
+ Enabled: false
243
+
244
+ RSpec/IteratedExpectation:
245
+ Enabled: false
246
+
247
+ RSpec/LeadingSubject:
248
+ Enabled: false
249
+
250
+ RSpec/LeakyConstantDeclaration:
251
+ Enabled: false
252
+
253
+ RSpec/LetBeforeExamples:
254
+ Enabled: false
255
+
256
+ RSpec/LetSetup:
257
+ Enabled: false
258
+
259
+ RSpec/MessageChain:
260
+ Enabled: false
261
+
262
+ RSpec/MessageSpies:
263
+ Enabled: false
264
+
265
+ RSpec/MultipleDescribes:
266
+ Enabled: false
267
+
268
+ RSpec/MultipleExpectations:
269
+ Enabled: false
270
+
271
+ RSpec/MultipleSubjects:
272
+ Enabled: false
273
+
274
+ RSpec/NamedSubject:
275
+ Enabled: false
276
+
277
+ RSpec/NestedGroups:
278
+ Enabled: false
279
+
280
+ RSpec/NotToNot:
281
+ Enabled: true
282
+
283
+ RSpec/OverwritingSetup:
284
+ Enabled: false
285
+
286
+ RSpec/PredicateMatcher:
287
+ Enabled: false
288
+
289
+ RSpec/RepeatedDescription:
290
+ Enabled: false
291
+
292
+ RSpec/RepeatedExample:
293
+ Enabled: false
294
+
295
+ RSpec/ReturnFromStub:
296
+ Enabled: false
297
+
298
+ RSpec/ScatteredLet:
299
+ Enabled: false
300
+
301
+ RSpec/ScatteredSetup:
302
+ Enabled: false
303
+
304
+ RSpec/SubjectStub:
305
+ Enabled: false
306
+
307
+ RSpec/UnspecifiedException:
308
+ Enabled: false
309
+
310
+ RSpec/VerifiedDoubles:
311
+ Enabled: false
312
+
313
+ RSpec/VoidExpect:
314
+ Enabled: false
315
+
316
+ Security/MarshalLoad:
317
+ Enabled: false
318
+
319
+ Security/YAMLLoad:
320
+ Enabled: false
321
+
322
+ Style/Alias:
323
+ Enabled: false
324
+
325
+ Style/AndOr:
326
+ Enabled: false
327
+ Include:
328
+ - lib/karbon_integration/**/*
329
+
330
+ Style/ClassAndModuleChildren:
331
+ Enabled: false
332
+
333
+ Style/DateTime:
334
+ Enabled: false
335
+
336
+ Style/Documentation:
337
+ Enabled: false
338
+
339
+ Style/EmptyMethod:
340
+ Enabled: true
341
+ EnforcedStyle: expanded
342
+
343
+ Style/FormatStringToken:
344
+ Enabled: false
345
+
346
+ Style/FrozenStringLiteralComment:
347
+ Enabled: false
348
+
349
+ Style/GuardClause:
350
+ Enabled: false
351
+ Include:
352
+ - lib/payments/**/*
353
+
354
+ Style/HashSyntax:
355
+ Enabled: true
356
+ EnforcedStyle: ruby19_no_mixed_keys
357
+
358
+ Style/IfUnlessModifier:
359
+ Enabled: false
360
+
361
+ Style/InverseMethods:
362
+ Enabled: false
363
+
364
+ Style/Lambda:
365
+ Enabled: false
366
+
367
+ Style/LambdaCall:
368
+ Enabled: false
369
+ Include:
370
+ - lib/karbon_integration/**/*
371
+
372
+ Style/MethodCalledOnDoEndBlock:
373
+ Enabled: false
374
+
375
+ Style/MethodCallWithArgsParentheses:
376
+ Enabled: true
377
+ EnforcedStyle: require_parentheses
378
+ IgnoredPatterns:
379
+ - include
380
+ - require
381
+ - require_relative
382
+ - require_dependency
383
+ - raise
384
+ # Specs
385
+ - to
386
+ - not_to
387
+
388
+ Style/MethodMissingSuper:
389
+ Enabled: false
390
+
391
+ Style/MissingRespondToMissing:
392
+ Enabled: false
393
+
394
+ Style/MixinUsage:
395
+ Enabled: true
396
+ Exclude:
397
+ - spec/**/*_spec.rb
398
+
399
+ Style/ModuleFunction:
400
+ Enabled: false
401
+
402
+ Style/MultilineBlockChain:
403
+ Enabled: false
404
+
405
+ Style/MultilineIfModifier:
406
+ Enabled: false
407
+
408
+ Style/MultilineTernaryOperator:
409
+ Enabled: false
410
+
411
+ Style/NegatedIf:
412
+ Enabled: false
413
+
414
+ Style/Not:
415
+ Enabled: false
416
+
417
+ Style/NumericLiterals:
418
+ Enabled: false
419
+
420
+ Style/NumericPredicate:
421
+ Enabled: false
422
+
423
+ Style/PercentLiteralDelimiters:
424
+ Enabled: false
425
+
426
+ Style/RaiseArgs:
427
+ Enabled: false
428
+
429
+ Style/RedundantParentheses:
430
+ Enabled: false
431
+ Include:
432
+ - lib/karbon_integration/**/*
433
+
434
+ Style/RedundantSelf:
435
+ Enabled: false
436
+
437
+ Style/RegexpLiteral:
438
+ Enabled: false
439
+
440
+ Style/SafeNavigation:
441
+ Enabled: false
442
+
443
+ Style/Semicolon:
444
+ Enabled: true
445
+
446
+ Style/SignalException:
447
+ Enabled: true
448
+ EnforcedStyle: only_raise
449
+
450
+ Style/StringLiterals:
451
+ EnforcedStyle: double_quotes
452
+
453
+ Style/StringLiteralsInInterpolation:
454
+ Enabled: false
455
+
456
+ Style/StructInheritance:
457
+ Enabled: false
458
+
459
+ Style/SymbolArray:
460
+ Enabled: false
461
+
462
+ Style/SymbolProc:
463
+ Enabled: true
464
+
465
+ Style/ZeroLengthPredicate:
466
+ Enabled: false
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.6.3
7
+ before_install: gem install bundler -v 2.0.1
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source("https://rubygems.org")
2
+
3
+ # Specify your gem's dependencies in client_success.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,111 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ client_success (0.1.2)
5
+ activesupport (~> 5.2)
6
+ dry-types (= 0.11.0)
7
+ faraday
8
+ faraday_middleware
9
+ hashie
10
+ typhoeus
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ activesupport (5.2.4.2)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 0.7, < 2)
18
+ minitest (~> 5.1)
19
+ tzinfo (~> 1.1)
20
+ ast (2.4.0)
21
+ concurrent-ruby (1.1.6)
22
+ diff-lcs (1.3)
23
+ dry-configurable (0.11.3)
24
+ concurrent-ruby (~> 1.0)
25
+ dry-core (~> 0.4, >= 0.4.7)
26
+ dry-equalizer (~> 0.2)
27
+ dry-container (0.7.2)
28
+ concurrent-ruby (~> 1.0)
29
+ dry-configurable (~> 0.1, >= 0.1.3)
30
+ dry-core (0.4.9)
31
+ concurrent-ruby (~> 1.0)
32
+ dry-equalizer (0.3.0)
33
+ dry-logic (0.6.1)
34
+ concurrent-ruby (~> 1.0)
35
+ dry-core (~> 0.2)
36
+ dry-equalizer (~> 0.2)
37
+ dry-types (0.11.0)
38
+ concurrent-ruby (~> 1.0)
39
+ dry-configurable (~> 0.1)
40
+ dry-container (~> 0.3)
41
+ dry-core (~> 0.2, >= 0.2.1)
42
+ dry-equalizer (~> 0.2)
43
+ dry-logic (~> 0.4, >= 0.4.0)
44
+ inflecto (~> 0.0.0, >= 0.0.2)
45
+ ethon (0.12.0)
46
+ ffi (>= 1.3.0)
47
+ faker (2.10.2)
48
+ i18n (>= 1.6, < 2)
49
+ faraday (0.17.3)
50
+ multipart-post (>= 1.2, < 3)
51
+ faraday_middleware (0.14.0)
52
+ faraday (>= 0.7.4, < 1.0)
53
+ ffi (1.12.2)
54
+ hashie (4.1.0)
55
+ i18n (1.8.2)
56
+ concurrent-ruby (~> 1.0)
57
+ inflecto (0.0.2)
58
+ jaro_winkler (1.5.4)
59
+ minitest (5.14.0)
60
+ multipart-post (2.1.1)
61
+ parallel (1.19.1)
62
+ parser (2.7.0.4)
63
+ ast (~> 2.4.0)
64
+ rainbow (3.0.0)
65
+ rake (13.0.1)
66
+ rspec (3.9.0)
67
+ rspec-core (~> 3.9.0)
68
+ rspec-expectations (~> 3.9.0)
69
+ rspec-mocks (~> 3.9.0)
70
+ rspec-core (3.9.1)
71
+ rspec-support (~> 3.9.1)
72
+ rspec-expectations (3.9.0)
73
+ diff-lcs (>= 1.2.0, < 2.0)
74
+ rspec-support (~> 3.9.0)
75
+ rspec-mocks (3.9.1)
76
+ diff-lcs (>= 1.2.0, < 2.0)
77
+ rspec-support (~> 3.9.0)
78
+ rspec-support (3.9.2)
79
+ rubocop (0.77.0)
80
+ jaro_winkler (~> 1.5.1)
81
+ parallel (~> 1.10)
82
+ parser (>= 2.6)
83
+ rainbow (>= 2.2.2, < 4.0)
84
+ ruby-progressbar (~> 1.7)
85
+ unicode-display_width (>= 1.4.0, < 1.7)
86
+ rubocop-rspec (1.38.1)
87
+ rubocop (>= 0.68.1)
88
+ ruby-progressbar (1.10.1)
89
+ thread_safe (0.3.6)
90
+ typhoeus (1.3.1)
91
+ ethon (>= 0.9.0)
92
+ tzinfo (1.2.6)
93
+ thread_safe (~> 0.1)
94
+ unicode-display_width (1.6.1)
95
+ vcr (5.1.0)
96
+
97
+ PLATFORMS
98
+ ruby
99
+
100
+ DEPENDENCIES
101
+ bundler (~> 2.0)
102
+ client_success!
103
+ faker
104
+ rake (>= 12.3.3)
105
+ rspec (~> 3.0)
106
+ rubocop (= 0.77.0)
107
+ rubocop-rspec
108
+ vcr
109
+
110
+ BUNDLED WITH
111
+ 2.1.4
data/README.md ADDED
@@ -0,0 +1,52 @@
1
+ # Ruby Wrapper for the [ClientSuccess Open API](https://clientsuccessapi.docs.apiary.io/)
2
+
3
+ ## Installation
4
+
5
+ Add this line to your application's Gemfile:
6
+
7
+ ```ruby
8
+ gem "client_success"
9
+ ```
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+
16
+ ## Usage
17
+
18
+ In order to make requests against the ClientSuccess Open API you'll first need to use your existing credentials (username and password) to create an Access Token:
19
+
20
+ ```ruby
21
+ response = ClientSuccess::AccessToken::Create(
22
+ username: "test@example.com",
23
+ password: "Password123"
24
+ )
25
+
26
+ puts response["access_token"]
27
+ => "979e3ce5-5f57-486a-af03-d328f50bd356"
28
+ ```
29
+
30
+ If the supplied credentials could not be authenticated a `ClientSuccess::AccessToken::InvalidCredentials` exception will be raised. Note that Access Tokens are valid for 12 hours, after which a new one must be created.
31
+
32
+ Once you have successfully created an Access Token you can initialise a connection object and make authenticated requests:
33
+
34
+ ```ruby
35
+ cs = ClientSuccess::Connection.authorised(
36
+ response["access_token"]
37
+ )
38
+
39
+ # get a list of all clients
40
+ clients = ClientSuccess::Client.list_all(connection: cs)
41
+ ```
42
+
43
+ ## Development
44
+
45
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
46
+
47
+ To install this gem onto your local machine, run `bundle exec rake install`.
48
+
49
+
50
+ ## Contributing
51
+
52
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ignitionapp/client_success.
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task(default: :spec)
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "client_success"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here