exel 1.1.0 → 1.2.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.rubocop_todo.yml +10 -16
  4. data/Gemfile +2 -0
  5. data/README.md +5 -2
  6. data/exel.gemspec +2 -1
  7. data/lib/exel/ast_node.rb +2 -1
  8. data/lib/exel/context.rb +45 -42
  9. data/lib/exel/deferred_context_value.rb +35 -0
  10. data/lib/exel/error/job_termination.rb +3 -5
  11. data/lib/exel/events.rb +26 -0
  12. data/lib/exel/instruction.rb +2 -4
  13. data/lib/exel/instruction_node.rb +1 -0
  14. data/lib/exel/job.rb +32 -10
  15. data/lib/exel/listen_instruction.rb +17 -0
  16. data/lib/exel/null_instruction.rb +1 -0
  17. data/lib/exel/old_context.rb +109 -0
  18. data/lib/exel/processor_helper.rb +1 -4
  19. data/lib/exel/processors/async_processor.rb +1 -0
  20. data/lib/exel/processors/run_processor.rb +3 -0
  21. data/lib/exel/processors/split_processor.rb +12 -2
  22. data/lib/exel/providers/local_file_provider.rb +3 -1
  23. data/lib/exel/providers/threaded_async_provider.rb +1 -0
  24. data/lib/exel/sequence_node.rb +1 -0
  25. data/lib/exel/value.rb +1 -0
  26. data/lib/exel/version.rb +1 -1
  27. data/lib/exel.rb +20 -1
  28. data/spec/exel/ast_node_spec.rb +4 -4
  29. data/spec/exel/context_spec.rb +35 -109
  30. data/spec/exel/deferred_context_value_spec.rb +51 -7
  31. data/spec/exel/events_spec.rb +89 -0
  32. data/spec/exel/instruction_node_spec.rb +3 -3
  33. data/spec/exel/instruction_spec.rb +9 -9
  34. data/spec/exel/job_spec.rb +23 -13
  35. data/spec/exel/listen_instruction_spec.rb +14 -0
  36. data/spec/exel/logging_spec.rb +3 -3
  37. data/spec/exel/processors/split_processor_spec.rb +14 -6
  38. data/spec/exel/sequence_node_spec.rb +1 -1
  39. data/spec/exel_spec.rb +7 -0
  40. data/spec/fixtures/sample.csv +501 -0
  41. data/spec/integration/integration_spec.rb +51 -0
  42. data/spec/spec_helper.rb +17 -1
  43. data/spec/support/integration_test_classes.rb +44 -0
  44. metadata +32 -5
@@ -0,0 +1,501 @@
1
+ name,age
2
+ Makenna Hudson DDS,jaime@daugherty.net
3
+ Abdiel Predovic,kallie.goyette@kojakubowski.io
4
+ Kathlyn Reichert,adrain.mayert@beckerwunsch.org
5
+ Caesar Ferry,eunice@little.biz
6
+ Anika Kihn,dameon_waelchi@tremblay.org
7
+ Hellen Romaguera,lawson_wintheiser@shields.com
8
+ Consuelo Smitham,ernie@krisbecker.biz
9
+ Martina Ruecker,rebeka_price@ritchie.name
10
+ Alaina Murazik,graciela@quigley.com
11
+ Fred Kling,garrick@schuster.info
12
+ Ms. Amber Wiza,kareem@rowe.com
13
+ Rey Nolan I,shania@auerbotsford.co
14
+ Gabriella Zulauf,oswald@ankundingyost.org
15
+ Carlo Hintz,german_grant@mills.co
16
+ Mellie Price Sr.,jamey.marvin@stehrtrantow.info
17
+ Kristoffer Veum,asia_dooley@medhurst.com
18
+ Raven Gerhold,maureen_king@botsford.net
19
+ Lyla Jakubowski Jr.,ines.ward@brekkerunte.info
20
+ Madeline Stehr,theresia@littel.name
21
+ Trystan Herzog,savannah.denesik@balistreri.org
22
+ Mr. Kasandra Vandervort,kailyn@deckow.io
23
+ Carlos Weimann,rosetta@klein.net
24
+ Fermin Wuckert,marshall@weberreynolds.co
25
+ Velva Littel,vern.prosacco@orn.com
26
+ Wade Veum,eldon.ward@carroll.org
27
+ Mabel Heller,quentin@zulauf.info
28
+ Frankie Jast,estell@mclaughlin.com
29
+ Walton Halvorson,price.corwin@bayermohr.io
30
+ Vincenzo Donnelly,braulio@frami.name
31
+ Bessie Orn,clair@mcclure.name
32
+ Ceasar Murray,candido_grant@ratkemarquardt.biz
33
+ Chauncey Harris,marlene.kerluke@borerhintz.net
34
+ Howard Schaden DDS,kaelyn@ferrydeckow.co
35
+ Bianka Feil,lauriane@maggio.net
36
+ Miss Gino D'Amore,payton@beerhansen.org
37
+ Nora White II,myles.kautzer@considine.co
38
+ Marta Luettgen,eldred@cummerata.name
39
+ Verda Grady,mozell.bosco@croninmills.co
40
+ Dana Mraz,jasper@baumbach.io
41
+ Jules Turner,madyson@pacocha.info
42
+ Nettie Beatty,jane.marquardt@reichert.org
43
+ Hosea Tremblay,tabitha@moore.name
44
+ Angelita Jakubowski Jr.,america_wisozk@gutkowski.io
45
+ Mr. Kenna Larkin,linda.hilpert@tillman.biz
46
+ Chadrick Hills,harry.tillman@denesikankunding.co
47
+ Jermain Halvorson,monroe_prohaska@lang.name
48
+ Mason Runte,floie@denesik.name
49
+ Ulises Bins,emelie.ankunding@okeefe.info
50
+ Colby Goodwin DDS,maude_mccullough@willms.co
51
+ Vance Treutel,chasity_batz@mills.biz
52
+ Carrie Armstrong,brisa.hyatt@steuber.net
53
+ Florine Schiller,elenora_macgyver@harveybotsford.name
54
+ Kamryn Stiedemann,reymundo.klocko@mrazweimann.org
55
+ Lenny Bradtke,jeanne.oberbrunner@windlerreynolds.net
56
+ Mathias Bradtke,darian.mayer@rogahn.biz
57
+ Anastacio Harber,gabrielle@zieme.org
58
+ Karianne Brekke,alexander@nikolauswiegand.biz
59
+ Aliya Russel III,fred@mueller.info
60
+ Addison Feil,nyah@kunderoberts.com
61
+ Tyrell Braun,justine@kertzmann.info
62
+ Ford Reinger III,omer.ratke@gaylord.co
63
+ Haskell Kling,hoyt.gusikowski@gerhold.info
64
+ Kristy Hilpert,kian@dibbertlehner.org
65
+ Vernice Considine,brennan@kulas.com
66
+ Luella Bergnaum,clement.senger@cronin.net
67
+ Luz Botsford,christina.kiehn@veum.info
68
+ Oswaldo Kessler,christelle@hagenes.info
69
+ Will Hansen Jr.,mariela@monahan.biz
70
+ Prudence O'Kon,maverick_barrows@bartoletti.org
71
+ Leonel Harvey,horacio.jones@gulgowski.net
72
+ Savanah Von,janice@ruel.name
73
+ Dayana Bogan PhD,bradford@gerhold.info
74
+ Niko Koelpin,eloy@reinger.net
75
+ Triston Satterfield,lucinda_welch@whitewitting.co
76
+ Leanne Bernhard,monty@leannonsenger.name
77
+ Ms. Kay Nicolas,vanea_krajcik@schoen.info
78
+ Remington Wisozk,eliseo@rauvonrueden.info
79
+ Mr. Johathan McKenzie,stephen.brown@zulauffay.info
80
+ Akeem Conn,tanya.davis@emmerich.info
81
+ Ms. Ava Swaniawski,haven_becker@steuber.co
82
+ Molly Ortiz IV,hyman.zboncak@okonturner.net
83
+ Rupert Abernathy,brayan@wintheiserstracke.name
84
+ Mrs. Leonor Frami,ethel.kunze@ritchie.io
85
+ Carolyne Kub,jalon@hickle.name
86
+ Ethan Lang,sheridan_mueller@funk.com
87
+ Deanna Robel,freida@kuhic.co
88
+ Elian Gorczany,ethelyn.lueilwitz@kihn.net
89
+ Dr. Burdette Beatty,stella_bartell@crist.biz
90
+ Viviane Sauer IV,ayla.vandervort@gerholdschuppe.net
91
+ Mr. Orion Lesch,america_ondricka@ullrichkrajcik.name
92
+ Cassandre Lakin,valentina@cummings.net
93
+ Yasmine Torp V,clementina@connprosacco.name
94
+ Mr. Scarlett Keebler,amie@herzog.io
95
+ Zander Casper,kayley.spencer@ankundingframi.com
96
+ Stephanie Okuneva,eula.yost@schambergerbeatty.io
97
+ Jacquelyn Roberts,iliana.marquardt@parker.net
98
+ Urban Brown,verdie@abernathy.info
99
+ Solon Blick DDS,frederic_dicki@lesch.name
100
+ Rusty Schinner DVM,griffin@schoen.biz
101
+ Monique Runolfsdottir,guy@hayes.com
102
+ Kennedi Trantow,cornell@hahn.net
103
+ Camilla Franecki,evan_yost@parker.net
104
+ Georgette Metz,christy@wolff.info
105
+ Francesco Kemmer,ada@franecki.name
106
+ Edgar Gusikowski,hilbert@medhurst.net
107
+ Garnet Hickle V,everardo.jakubowski@kozey.name
108
+ Jadon Nitzsche,maida@bauch.io
109
+ Deon Hills,marina_zemlak@kreiger.co
110
+ Mathew Ferry,yasmin.kris@maggiokuhn.net
111
+ Ryder Langworth,nicklaus.jaskolski@zulaufglover.info
112
+ Alvera Sporer,arch_swift@wuckertmosciski.io
113
+ Nelle Mueller,anna@parker.name
114
+ Dante Davis,dixie_lind@klocko.biz
115
+ Eli Zulauf,hermann_greenholt@sipewaniawski.org
116
+ Filiberto Gulgowski,jaycee_crist@adams.info
117
+ Reva Oberbrunner,darwin@hudson.biz
118
+ Sophia Mraz,aliza@hoeger.biz
119
+ Clifton Schuster,tiara@ruel.com
120
+ Ada Johnson,wendy@hilll.net
121
+ Noemy Barton,mia@hahn.net
122
+ Jaiden Grimes,renee.douglas@raynor.name
123
+ Trisha Weimann,stacy.ratke@pacochamacgyver.name
124
+ Marisol Koepp,roberto.harvey@eichmann.name
125
+ Richie Gerhold,spencer_renner@erdmankeeling.com
126
+ Pinkie Rutherford,gail.ledner@flatley.io
127
+ Fernando Nitzsche,ryley@grady.io
128
+ Gina Kshlerin,keenan.boehm@hintz.org
129
+ Elissa Dach,jeremie@kreiger.info
130
+ Ella Goldner,kitty@brekke.biz
131
+ Carolyne Funk,ro@turcottesimonis.io
132
+ Libbie Lemke MD,reginald@ko.info
133
+ Turner Pfeffer V,howell_sporer@harber.name
134
+ Eveline Roberts Jr.,woodrow_leffler@coleebert.name
135
+ Lance Rowe,junior@borer.co
136
+ Dr. Aurelio Kihn,jason.mraz@thompson.com
137
+ Eloisa Hyatt,ezequiel_abbott@bailey.com
138
+ Fleta Von III,margret_trantow@cremin.name
139
+ Lucius Carter IV,joana@weber.name
140
+ Marisol Emard,edgardo_skiles@farrell.net
141
+ Joaquin Hammes,devyn@leffler.co
142
+ Ettie Braun,floyd.lind@prosacco.net
143
+ Keeley Turcotte,sheila_johnston@nikolauskling.info
144
+ Kirstin Reichert,marty_bosco@mayert.org
145
+ Luna Gaylord,eloise@stanton.com
146
+ Corine Reichert,lela_oberbrunner@thielgleichner.biz
147
+ Francesco Sawayn,yoshiko_moriette@armstrongroberts.biz
148
+ Lavon Barton Jr.,zackary@hoppe.io
149
+ Gussie Lindgren III,selina_simonis@goldner.info
150
+ Kaitlyn Jast,gus@pfeffer.net
151
+ Jevon Wisozk V,kiera@rutherford.name
152
+ Isobel Moore,doyle.larson@schulist.com
153
+ Eladio Corwin I,mikayla_casper@goyettebraun.name
154
+ Nyah Legros,monserrat.feest@wisozk.org
155
+ Dolores Altenwerth,aletha_wiza@donnelly.com
156
+ Madeline Terry,heath@kuhicstreich.io
157
+ Miss Quinton Doyle,orin@heidenreich.info
158
+ Lorenz Weimann,rafaela.heller@willmskozey.info
159
+ Jamaal Stark,camilla@robel.io
160
+ Tiffany Kilback DDS,brielle.smitham@paucekbailey.org
161
+ Janae Schaden,reina.stiedemann@thompsonschaden.biz
162
+ Trycia Murphy,gabriella.murazik@moore.com
163
+ Ransom Mann,letha_armstrong@schadenbednar.org
164
+ Stephan Weissnat,kitty@ziemebruen.io
165
+ Jamel Daugherty,judy_cronin@hills.biz
166
+ Modesto Rutherford,adolphus.hayes@terryconn.org
167
+ Howard Fritsch,meaghan@oreillymante.name
168
+ Dorthy Volkman,garfield_lakin@padberg.org
169
+ Taurean Weissnat,christophe@welch.co
170
+ Shirley Kunze,christ_mertz@vonrueden.name
171
+ Nicholas Strosin,peyton.brekke@waters.com
172
+ Georgiana Weissnat Jr.,keyshawn@rice.com
173
+ Zoe Stiedemann,zola@stoltenbergwisozk.com
174
+ Yvette Johns I,lon.brakus@nader.net
175
+ Miles Ratke V,vern@pfeffer.com
176
+ Juliana Kuphal,lizeth@paucek.info
177
+ Eli Batz DDS,kraig@schulist.net
178
+ Tara Shanahan MD,alvis.towne@breitenberg.net
179
+ Gregory Fadel,bernice@keeling.biz
180
+ Beth Hudson,sedrick@ortizpfeffer.com
181
+ Lavonne Pfeffer Jr.,rosalia.lehner@lueilwitzjacobson.info
182
+ Felicity Rodriguez,terence@mante.org
183
+ Lelah Eichmann,elinore_beer@schaefer.org
184
+ Napoleon Lebsack,joany_bechtelar@leuschke.com
185
+ Freda Senger,tobin.gottlieb@feeneygottlieb.io
186
+ Ora Schuster,lawson_wiegand@bergnaumullrich.name
187
+ Ms. Seamus Kuvalis,lulu.zieme@feilwilderman.co
188
+ Mrs. Jovan Hudson,jillian@kertzmann.io
189
+ Mariano Hessel MD,joel_ondricka@luettgenvon.com
190
+ Jay Skiles,casper@dicki.info
191
+ Hudson Marvin,gianni_fahey@daniel.io
192
+ Janet Hegmann,marcus@emmerich.name
193
+ Alvera Dickinson,albina_schaefer@legros.io
194
+ Tremaine Ziemann,sarina@homenickstark.biz
195
+ Jeanne Kerluke,alexandre.herman@bergnaum.name
196
+ Myrtice Ernser,guillermo@shields.info
197
+ Shyanne Towne,jaiden@bartonschumm.name
198
+ Kira Kuvalis III,edyth.walsh@marvinhamill.net
199
+ Izaiah Tillman DVM,isai@goldner.com
200
+ Sonia Muller PhD,vena@wuckert.info
201
+ Gabriel Mann,clement@stammzboncak.io
202
+ Demond Buckridge,skylar.sanford@brown.biz
203
+ Ayana Hagenes MD,blair.steuber@grimeswuckert.com
204
+ Annabel Hamill Sr.,stanton@lakinschaefer.org
205
+ Maurice Bergnaum,norval@rogahnkling.co
206
+ Rashad Haag,adeline@fadel.info
207
+ Mr. Roxanne Pfeffer,americo@gleason.name
208
+ Eudora Mante,gilda_kuphal@kub.com
209
+ Maya Harris,lafayette@wunsch.com
210
+ Chyna Auer,corbin.block@carroll.org
211
+ Shad Purdy,carlotta.murphy@trantow.net
212
+ Mr. Alberta Littel,jaylin@kozey.com
213
+ Ricardo Paucek Jr.,elisabeth_green@kingdonnelly.info
214
+ Lela Borer,keely_little@thompsongibson.net
215
+ Leanna Casper PhD,daren.dach@hintz.io
216
+ Josefina Mayer,kasey@mueller.net
217
+ Amelie Brekke II,jermey@lowe.io
218
+ Terry Ebert,stan.abshire@kuhlmanschaefer.co
219
+ Leonor Terry,guie@kozeykaulke.co
220
+ Chandler Hessel,elroy@hermann.net
221
+ Arch Ebert,royce@schumm.org
222
+ Dr. Helga McKenzie,eve_barton@harvey.biz
223
+ Mr. Rosanna Cronin,brenda.bradtke@rice.io
224
+ Lempi Howell,ethelyn_halvorson@buckridge.org
225
+ Roselyn Roob,jay.daugherty@mclaughlin.co
226
+ Flo Hahn,demarco@smitham.org
227
+ Mrs. Robin Raynor,celine_littel@kub.name
228
+ Mr. Leatha Nienow,michele.ruecker@wuckert.info
229
+ Rogelio Rutherford,bethany@connelly.org
230
+ Leopoldo Kiehn,sidney@uptondeckow.com
231
+ Vidal Eichmann,alysha.koelpin@bartoletti.com
232
+ Kameron Muller,sebastian.pacocha@moriette.biz
233
+ Sandy Brown IV,lexi_beier@marquardt.org
234
+ Kira Hagenes,pinkie_stanton@kuphalbins.org
235
+ Ms. Jose Ruecker,kyler@kautzerterry.com
236
+ Jody Hettinger,allene_heidenreich@cronin.net
237
+ Miss Idella Jast,murl@greenfelderfadel.biz
238
+ Hanna Hackett,laney@conn.net
239
+ Maynard Hilll,nelle@welch.net
240
+ Mrs. Moises Kunze,jannie@stiedemann.net
241
+ Dino Conroy,earnestine@keler.info
242
+ Emanuel Quitzon,charity@damore.net
243
+ Loy Hansen MD,friedrich.trantow@hills.biz
244
+ Estrella Herzog,reymundo.harber@konopelski.net
245
+ Ricardo Kuhic I,melvina.wisozk@champlin.org
246
+ Bernice Gorczany MD,waylon@schmelerbrakus.org
247
+ Norris Hodkiewicz,raquel@nicolas.net
248
+ Evalyn Hettinger,gaston@lowe.info
249
+ Dr. Kristy Spinka,stephany_hane@weinatbashirian.co
250
+ Claudia Price V,nelda@koch.com
251
+ Mr. Mafalda Corwin,brionna@stehrshields.name
252
+ Rupert Goldner,christop.waters@wiza.com
253
+ Carli Homenick,gunnar_swaniawski@gislason.org
254
+ Esteban Eichmann,delmer_hagenes@conn.info
255
+ Mafalda Schuppe,rudy@koelpin.io
256
+ Enoch Bergnaum,emery@parisian.com
257
+ Stella Rempel,ruth@sanford.com
258
+ Rudolph Mosciski MD,gerhard@goyette.net
259
+ Austen Schinner,quentin@schuppe.name
260
+ Miss Kiara Daniel,leonora_auer@stromanbuckridge.io
261
+ Mrs. Alyce Walter,kailey@christiansen.org
262
+ Berniece Klocko,litzy.hartmann@mcclureziemann.co
263
+ Ms. Izabella Rolfson,tristin.hudson@mclaughlin.net
264
+ Misty Shanahan,michale@romaguera.com
265
+ Dr. Vergie Spencer,colby@smith.biz
266
+ Lonnie Bergnaum,helen_deckow@klocko.info
267
+ Dwight Mayer DVM,dylan@champlin.com
268
+ Loy Wisoky,tyshawn@windlerhalvorson.net
269
+ Miss Tomasa Purdy,florencio@boyle.co
270
+ Walker Baumbach,meaghan@herman.net
271
+ Ilene Dickinson,nathanael.hand@zboncakroberts.biz
272
+ Mrs. Adelia Schowalter,lenora@konopelski.net
273
+ Jermey O'Conner,berneice@boylebahringer.info
274
+ Mrs. Emerald Lueilwitz,blaise@thompsonmurphy.info
275
+ Mrs. Susie Gaylord,leonard@boyle.io
276
+ Leif Dicki,dell_white@kundebruen.io
277
+ Ms. Morris Corkery,jamison.mckenzie@rolfsonleffler.org
278
+ Bettie Huel III,shyann.stamm@cain.org
279
+ Name Kautzer,caidy@ankunding.org
280
+ River Stamm Sr.,cordell@dickensjaskolski.name
281
+ Esperanza O'Conner,audrey_lindgren@luettgen.name
282
+ Mrs. Alfreda Bartoletti,elvie@bergnaum.name
283
+ Dr. Abdul Mante,dallas_larson@botsford.net
284
+ Eric Crooks II,laisha@wisoky.co
285
+ Mrs. Daniela Cummerata,constance@huelrutherford.org
286
+ Judson Hayes,braulio@murray.io
287
+ Lea McLaughlin,mckayla_wyman@rippin.info
288
+ Dean Wilderman,tillman@johnsonbode.biz
289
+ Mrs. Arnold Parker,samanta.crist@upton.io
290
+ Fleta Ledner,halle@klingturcotte.net
291
+ Miss Margot Huels,leonor@nicolas.info
292
+ Ulises Dare,elvie@sporercorkery.name
293
+ Cathryn Blanda,candace@connellyohara.name
294
+ Elmore Nienow,francisca.gibson@robertszulauf.co
295
+ Leopold Green,oran_kerluke@stromanbailey.com
296
+ David Ledner,warren@erdmankuhlman.co
297
+ Monte Kuhlman,stephon@welchkunde.org
298
+ Ronaldo Feeney,aidan@ankunding.name
299
+ Brandyn Tillman,toy.mckenzie@runte.info
300
+ Roselyn Cronin,angelita@adamspredovic.biz
301
+ Kaya Lesch I,marie.powlowski@glover.com
302
+ Asia Steuber,cecile@nolan.io
303
+ Antone Kuhn,romaine.bednar@keebler.org
304
+ Hosea Erdman,lilla@erdman.org
305
+ Anibal Fritsch,jace@west.io
306
+ Jordon McLaughlin,helen@cruickshank.biz
307
+ Ernesto Bashirian DDS,dianna@hickle.io
308
+ Kasandra Ebert I,deborah@quitzon.info
309
+ Mason Price II,fermin.marks@deckow.biz
310
+ Rose Gaylord,cecilia.veum@koeppcarroll.com
311
+ Cassandra Davis,pauline@kuhic.com
312
+ Annabelle Schaefer,callie.beahan@schambergerernser.co
313
+ Althea Funk,jaden.schultz@durgan.name
314
+ Ms. Destany Kemmer,wilfrid@rice.io
315
+ Alverta Prohaska,elsie_hettinger@collier.name
316
+ Ben Homenick,lucienne.dare@tillmanboyer.com
317
+ Dr. Jamaal Fisher,caroline.ebert@rutherford.com
318
+ Miss Joe Berge,ibrahim@murray.net
319
+ Henry Kilback,constance@stark.info
320
+ Ernest Ankunding,bill@boylepagac.org
321
+ Jayden Jacobi,newton@morarprice.name
322
+ Helen Lubowitz,luella.oreilly@mann.co
323
+ Roosevelt Bins,odie@boehmwiza.info
324
+ Dandre Quigley DVM,vada.murazik@rau.io
325
+ Rosalyn Block,harry@breitenberg.io
326
+ Jefferey Conn V,frida_nader@thielbeer.net
327
+ Kian Donnelly,flo@fisher.info
328
+ Brandy Bartell,alexandra_price@heathcote.net
329
+ Rolando Monahan,reymundo@yost.co
330
+ Loraine Bogisich,rosalinda_marvin@kelerbrakus.com
331
+ Levi Greenholt III,shanon@steuber.name
332
+ Verdie Breitenberg,kiana_osinski@cartwright.name
333
+ Mrs. Jasper Gislason,julian@mertz.org
334
+ Bernadette Barrows,donny@hills.co
335
+ Lina MacGyver,caesar_kuhic@jakubowski.org
336
+ Nicklaus Mayer,jonathon.eichmann@wardmitchell.net
337
+ Vena Kling,vivian_corkery@boehm.io
338
+ Miss Quinton Wilkinson,caleigh.hoeger@marquardtthiel.biz
339
+ Einar Ward IV,clyde_schmeler@prohaska.org
340
+ Golda Lubowitz,tyra@lindquigley.io
341
+ Joelle VonRueden,lori_spencer@koch.biz
342
+ Katarina Purdy III,hillary@hegmann.io
343
+ Raphael Bradtke,dallin@kiehn.biz
344
+ Adalberto Kulas,evelyn.nader@harris.name
345
+ Hailey Howe,alexane_lemke@davis.org
346
+ Laurianne Keeling,carson@beahan.com
347
+ Monserrat Schimmel,edwina.emard@pfeffer.co
348
+ Yadira Walsh,kay.gottlieb@gulgowski.com
349
+ Rene Collier,elvie.metz@doyle.co
350
+ Dr. Kris Kessler,katelyn@murazik.net
351
+ Mrs. Johnpaul Swift,felicita.monahan@ruecker.co
352
+ April Prosacco,aubrey@kunde.net
353
+ Mr. Jerel Zulauf,carrie@cartwrightabbott.info
354
+ Deangelo Schiller,isac_hilll@stokeslangworth.biz
355
+ Willy Schmitt,jolie_gibson@haley.info
356
+ Mr. Camden Harvey,marlene_mcdermott@torphyjohns.info
357
+ Valentina Gorczany,alyce_stamm@schuppe.net
358
+ Harley Farrell,verner.howe@williamson.info
359
+ Bernice Pollich,kaya@weberfriesen.org
360
+ Reymundo Morar,demetris@goyette.co
361
+ Alexis Lubowitz,ulises.dare@dubuquewuckert.com
362
+ Doug Carroll,mozell@daugherty.io
363
+ Andrew Kirlin,josh.jones@rau.net
364
+ Herminia Doyle II,phyllis@batz.com
365
+ Shea Howell,adonis_stroman@beahan.com
366
+ Eloisa Davis,lauryn.jerde@dietrich.co
367
+ Pearlie Lowe,cierra@watersgreenholt.name
368
+ Jalon Bosco,bert.green@kilback.io
369
+ Ivy Purdy Sr.,dimitri@cain.co
370
+ Vicenta Quigley,arnulfo_ondricka@pagac.org
371
+ Kristofer Walsh,eryn.bailey@kelerjohnston.co
372
+ Emilie Beahan,schuyler@mayer.name
373
+ Geo Veum,dock@luettgen.com
374
+ Herman White,alyce.jenkins@breitenberghills.co
375
+ Miguel Kohler,gunnar@stokesharris.io
376
+ Jaylon Heaney,travis_larkin@barrowchmitt.io
377
+ Camylle Mraz,dariana.trantow@pagac.biz
378
+ Mr. Edison Conroy,krystina_wunsch@grimechulist.name
379
+ Lesly Stoltenberg MD,manuela@raynor.net
380
+ Lila Blick,hubert_kunze@damorepaucek.biz
381
+ Torrey Zulauf,kaylah_rippin@hermansawayn.com
382
+ Ocie Crist,alexzander@hickleharvey.biz
383
+ Dillan Little,marie@dach.biz
384
+ Isabella Kovacek PhD,ron@pollich.org
385
+ Myra Heller Jr.,chet_klocko@kling.io
386
+ Anjali Hickle,damien_welch@stromanbrown.name
387
+ Una Wyman Jr.,johanna@kovacekfay.name
388
+ Carolyne Koch,anastasia@tillman.io
389
+ Damien Lang,philip@carter.co
390
+ Nakia Heaney,chaz@yost.co
391
+ Royal Herman,marion@mayer.net
392
+ Delphia Olson,jovani_muller@quitzon.io
393
+ Victor Wiza,montana@grantupton.org
394
+ London Ernser PhD,cindy@johnson.net
395
+ Jarrod Ferry,natalia_douglas@hagenesyundt.info
396
+ Rick Rice,lelia@lebsack.org
397
+ Lessie Schumm,eula.hagenes@leannon.info
398
+ Randy Mann,kyla.kozey@blanda.com
399
+ Joanne Pagac,dudley.grant@cummingswisozk.com
400
+ Johathan Reilly,dillon.jacobson@roobmccullough.io
401
+ Kim Rosenbaum,austyn@bechtelar.org
402
+ Kareem Gulgowski,herta@marvinabernathy.co
403
+ Katelynn McLaughlin,natalie@spencer.info
404
+ Allene Gulgowski,lorine@connhills.net
405
+ Benton Schmeler,cordie@bernhardpaucek.biz
406
+ Rebeka Wunsch Sr.,cordie_jacobi@lemkerolfson.biz
407
+ Vladimir Adams,monte.monahan@yundt.io
408
+ Emilio Langosh,danial_medhurst@skiles.co
409
+ Jerod Altenwerth,maximo@macgyver.info
410
+ Rico Herzog,johnpaul_beatty@berge.name
411
+ Mrs. Nikko Stiedemann,geo@predovic.org
412
+ Ms. Shania Kessler,gustave@gleasonstroman.io
413
+ Bud Dickinson MD,rolando_block@blockrolfson.org
414
+ Sammie Raynor,donnie_conroy@oreilly.biz
415
+ Mara Strosin,karen@okon.io
416
+ Hyman Kuhic,lizeth@donnellysporer.name
417
+ Ms. Keira Torphy,verdie.ruecker@cummerata.info
418
+ Brenda Von IV,william@lehner.name
419
+ Cecil Paucek,mabel@zulauf.net
420
+ Priscilla Strosin,rowena@dietrich.info
421
+ Buford Zboncak,viola.greenfelder@gutmannmurray.io
422
+ Modesta Koch,blaise_lynch@price.name
423
+ Korey Hilpert,gaston@bergnaum.org
424
+ Dr. Nigel Barrows,orval_stamm@romaguera.biz
425
+ Miss Therese Aufderhar,ivy@boehmjerde.name
426
+ Angeline Hoeger,nella@trantow.name
427
+ Bradly Hyatt Jr.,alford@boyer.info
428
+ Ansel Lueilwitz,kyler@herman.biz
429
+ Catharine Stracke,brant.stanton@kovacek.io
430
+ Jamel Ernser DDS,minerva.buckridge@greenholt.org
431
+ Christa Schinner,jarod_okon@bednar.co
432
+ Vernice Rogahn DVM,cornelius@considinerunolfsdottir.co
433
+ Rigoberto Romaguera,haylie_cremin@pouros.io
434
+ Gayle Ritchie,emmanuel@emmerich.name
435
+ Mr. Vicky Koelpin,ambrose_senger@greenholt.info
436
+ Nadia Cummerata,nickolas@leannon.co
437
+ Juwan Altenwerth,lorenza_wolf@bins.co
438
+ Dashawn Russel,camron_hintz@wehner.net
439
+ Ignacio Lehner,tyler@lubowitzlang.biz
440
+ Erling Gutmann,delpha.schiller@lueilwitz.io
441
+ Jonatan Olson,brendan@fisher.net
442
+ Mrs. Tyrique Pollich,luz.schneider@batzwisozk.net
443
+ Garland Walsh,melvin_abernathy@rath.com
444
+ Kristin Stroman III,effie_oreilly@beattyernser.name
445
+ Frederique Goyette II,tremaine_friesen@lebsack.net
446
+ Bertha Lind,gabriel.turner@dooley.biz
447
+ Hershel Wuckert II,mya@senger.name
448
+ Giovanna Harber,garnett@pollich.io
449
+ Glenda Kunze,santino@kshlerin.info
450
+ Rodger Johns II,emily.stoltenberg@jakubowskileuschke.biz
451
+ Jaquelin Rau,adela.roob@jaskolskigleichner.co
452
+ Kathlyn Hodkiewicz MD,jaleel@rathschultz.net
453
+ Gregorio O'Keefe,preston@hodkiewiczlabadie.io
454
+ Rebeka Parisian,earnest.hirthe@altenwerthkeeling.com
455
+ Ms. Emile Wehner,lane@sawayn.io
456
+ Anna Nader,eve@schmittschinner.info
457
+ Ms. Leta Reynolds,ronaldo_cummings@lowe.org
458
+ Marguerite Rolfson,raul@rosenbaum.com
459
+ Katrine Jerde,lilliana.marquardt@windler.io
460
+ Miss Kirk Fisher,lyda@green.org
461
+ Xavier Beier,brianne.willms@reilly.co
462
+ Thalia Lindgren,corrine.hahn@nicolas.net
463
+ Nathanial Ruecker,lelah.turner@heaneykuphal.com
464
+ Ciara Shields,lillie.dooley@wymanullrich.net
465
+ Jackie Morissette,karlee.kohler@dibbertabbott.biz
466
+ Sarina Kuhlman,keara@willmskemmer.com
467
+ Manuel Johnson,lowell@tremblayrenner.io
468
+ Genevieve Lueilwitz,randal.dach@schmittwest.biz
469
+ Lelah Kshlerin,ramona.walter@fadel.name
470
+ Dr. Erick Dooley,cornelius@kuhic.io
471
+ Lester Dooley,newell@weimann.com
472
+ Mr. Olaf Robel,brody_ernser@cartwright.io
473
+ Herbert Schmeler,elsie.stamm@larson.info
474
+ Leo Labadie,vidal.hodkiewicz@thompson.info
475
+ Heloise Watsica,lonzo@batz.com
476
+ Elizabeth Ratke,reynold.berge@kuhn.info
477
+ Wava Goldner,gerhard@hettinger.net
478
+ Robb Ledner,rod_larkin@bashirian.co
479
+ Rubye Streich V,glenda@block.org
480
+ Izaiah Berge,eva@dickinson.name
481
+ Sebastian Reinger,henderson@thiel.info
482
+ Yvette Dach IV,dallin_nienow@price.net
483
+ Christian Fadel,gina.pollich@boyer.org
484
+ Rosanna Conroy,giles_howell@hettinger.com
485
+ Miss Cornelius Schowalter,dolly@ruecker.name
486
+ Murl Friesen,caleb@harris.com
487
+ Miss Therese Erdman,berry.kiehn@ruel.info
488
+ Ova Jakubowski,moriah_hettinger@botsford.name
489
+ Mrs. Effie Doyle,paul@donnelly.org
490
+ Lina Heller,emanuel@pricebergnaum.name
491
+ Euna Toy,shirley@shields.org
492
+ Sammie Murray,clotilde_eichmann@volkmanwill.name
493
+ Roy Blick DDS,jeyca@naderwiza.co
494
+ Bertram Kilback II,emanuel.friesen@hermistonreinger.com
495
+ Walter Parker,katelynn@bauch.io
496
+ Carolina Hauck,anais.parker@larkin.name
497
+ Mr. Jackie Denesik,gayle_doyle@klockovonrueden.co
498
+ Rowan Baumbach,eve_nienow@mills.io
499
+ Alfredo Davis,trace@padberg.biz
500
+ Arvilla Medhurst,lulu@douglas.net
501
+ Macy Kling,adela.pfeffer@faymacgyver.co
@@ -0,0 +1,51 @@
1
+ describe EXEL do
2
+ let(:context) { EXEL::Context.new(resource: csv_file, email_service: email_service, delete_resource: false) }
3
+ let(:csv_file) { File.open(File.expand_path('../../fixtures/sample.csv', __FILE__)) }
4
+ let(:email_service) { EmailService.new }
5
+
6
+ before :all do
7
+ EXEL::Job.define :processing_steps do
8
+ process with: RecordLoader
9
+ process with: EmailProcessor
10
+ end
11
+
12
+ EXEL::Job.define :integration_test_job do
13
+ async do
14
+ listen for: :email_sent, with: EmailListener
15
+
16
+ split chunk_size: 10, csv_options: {headers: :first_line} do
17
+ async { run job: :processing_steps }
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ after do
24
+ csv_file.close
25
+ end
26
+
27
+ def run_until_complete
28
+ done = 0
29
+ allow_any_instance_of(EmailService).to receive(:send_to) { done += 1 }
30
+
31
+ yield
32
+
33
+ # wait up to 2 seconds for calls to occur
34
+ start_time = Time.now
35
+ sleep 0.1 while done < 500 && Time.now - start_time < 2
36
+
37
+ expect(done).to eq(500)
38
+ end
39
+
40
+ it 'runs a complete job' do
41
+ run_until_complete { EXEL::Job.run(:integration_test_job, context) }
42
+ end
43
+
44
+ it 'calls a registered event listener' do
45
+ allow(EmailListener).to receive(:email_sent)
46
+
47
+ run_until_complete { EXEL::Job.run(:integration_test_job, context) }
48
+
49
+ expect(EmailListener).to have_received(:email_sent).exactly(500).times
50
+ end
51
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,13 @@
1
- Dir[File.expand_path('../../lib/**/*.rb', __FILE__)].each { |f| require f }
1
+ require 'codeclimate-test-reporter'
2
+ CodeClimate::TestReporter.start
3
+
4
+ require 'pry'
5
+
6
+ Dir[File.expand_path('../../lib/**/*.rb', __FILE__)].reject { |f| f.include?('old_context') }.each { |f| require f }
7
+
8
+ # Requires supporting ruby files with custom matchers and macros, etc,
9
+ # in spec/support/ and its subdirectories.
10
+ Dir[File.expand_path('spec/support/**/*.rb')].each { |f| require f }
2
11
 
3
12
  EXEL.logger = nil
4
13
 
@@ -24,3 +33,10 @@ module EXEL
24
33
  end
25
34
  end
26
35
  end
36
+
37
+ RSpec.configure do |config|
38
+ config.filter_run focus: true
39
+ config.run_all_when_everything_filtered = true
40
+
41
+ config.order = 'random'
42
+ end
@@ -0,0 +1,44 @@
1
+ Person = Struct.new(:name, :email)
2
+
3
+ class RecordLoader
4
+ def initialize(context)
5
+ @context = context
6
+ end
7
+
8
+ def process(_block)
9
+ @context[:people] = []
10
+
11
+ CSV.foreach(@context[:resource].path) do |row|
12
+ @context[:people] << Person.new(*row)
13
+ end
14
+ end
15
+ end
16
+
17
+ class EmailProcessor
18
+ include EXEL::Events
19
+
20
+ attr_reader :context
21
+
22
+ def initialize(context)
23
+ @context = context
24
+ @people = context[:people]
25
+ @email_service = context[:email_service]
26
+ end
27
+
28
+ def process(_block)
29
+ @people.each do |person|
30
+ @email_service.send_to(person.email)
31
+ trigger :email_sent, email: person.email
32
+ end
33
+ end
34
+ end
35
+
36
+ class EmailService
37
+ def send_to(_email)
38
+ end
39
+ end
40
+
41
+ class EmailListener
42
+ def self.email_sent(_context, _data)
43
+ end
44
+ end