appt 0.0.1.beta.2 → 0.0.1.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -20
  3. data/Rakefile +34 -37
  4. data/app/assets/javascripts/appt/application.js +2 -2
  5. data/app/assets/stylesheets/appt/application.scss +1 -0
  6. data/app/assets/stylesheets/appt/calendar.scss +20 -0
  7. data/app/controllers/appt/appointment_types_controller.rb +7 -0
  8. data/app/controllers/appt/base_controller.rb +1 -0
  9. data/app/controllers/appt/calendars_controller.rb +56 -6
  10. data/app/controllers/appt/external_calendars_controller.rb +72 -0
  11. data/app/controllers/appt/home_controller.rb +2 -1
  12. data/app/helpers/appt/application_helper.rb +39 -20
  13. data/app/helpers/appt/calendars_helper.rb +5 -4
  14. data/app/mailers/base_mailer.rb +2 -1
  15. data/app/models/appt/appointment.rb +5 -4
  16. data/app/models/appt/appointment_type.rb +6 -0
  17. data/app/models/appt/block.rb +8 -4
  18. data/app/models/appt/calendar.rb +38 -4
  19. data/app/models/appt/calendar_event.rb +40 -5
  20. data/app/models/appt/external_calendar.rb +40 -0
  21. data/app/views/appt/blocks/_table.html.haml +26 -0
  22. data/app/views/appt/calendars/_form.html.haml +12 -0
  23. data/app/views/appt/calendars/_table.html.haml +17 -0
  24. data/app/views/appt/calendars/edit.html.haml +6 -0
  25. data/app/views/appt/calendars/index.html.haml +6 -0
  26. data/app/views/appt/calendars/new.html.haml +6 -0
  27. data/app/views/appt/calendars/show.html.haml +14 -0
  28. data/app/views/appt/external_calendars/_form.html.haml +7 -0
  29. data/app/views/appt/external_calendars/_table.html.haml +10 -0
  30. data/app/views/appt/external_calendars/edit.html.haml +6 -0
  31. data/app/views/appt/external_calendars/index.html.haml +7 -0
  32. data/app/views/appt/external_calendars/new.html.haml +6 -0
  33. data/app/views/appt/external_calendars/show.html.haml +26 -0
  34. data/app/views/appt/shared/_navbar.html.haml +2 -1
  35. data/config/initializers/user_class_extensions.rb +1 -0
  36. data/config/routes.rb +9 -7
  37. data/config/secrets.yml +1 -0
  38. data/db/migrate/20150804002016_create_appt_calendars.rb +16 -9
  39. data/db/migrate/20150804003348_create_appt_blocks.rb +16 -8
  40. data/db/migrate/20150804003846_create_appt_appointments.rb +17 -8
  41. data/db/migrate/20150804234748_create_appt_appointment_types.rb +13 -0
  42. data/db/migrate/20150805114046_create_appt_external_calendars.rb +10 -0
  43. data/lib/appt.rb +27 -23
  44. data/lib/appt/configuration.rb +29 -28
  45. data/lib/appt/engine.rb +6 -5
  46. data/lib/appt/icalendar_expander.rb +61 -0
  47. data/lib/appt/version.rb +4 -3
  48. data/lib/bootstrap_month_calendar.rb +5 -4
  49. data/lib/tasks/appt_tasks.rake +5 -4
  50. data/lib/workhours_serializer.rb +2 -5
  51. data/test/appt_test.rb +8 -7
  52. data/test/controllers/appt/appointment_types_controller_test.rb +14 -0
  53. data/test/controllers/appt/calendars_controller_test.rb +14 -13
  54. data/test/controllers/appt/external_calendars_controller_test.rb +14 -0
  55. data/test/dummy/README.rdoc +28 -28
  56. data/test/dummy/Rakefile +7 -6
  57. data/test/dummy/app/assets/javascripts/application.js +14 -14
  58. data/test/dummy/app/assets/stylesheets/application.css +16 -16
  59. data/test/dummy/app/controllers/application_controller.rb +6 -5
  60. data/test/dummy/app/helpers/application_helper.rb +3 -2
  61. data/test/dummy/app/views/layouts/application.html.erb +14 -14
  62. data/test/dummy/bin/bundle +3 -3
  63. data/test/dummy/bin/rails +4 -4
  64. data/test/dummy/bin/rake +4 -4
  65. data/test/dummy/bin/setup +29 -29
  66. data/test/dummy/config.ru +5 -4
  67. data/test/dummy/config/application.rb +29 -29
  68. data/test/dummy/config/boot.rb +6 -5
  69. data/test/dummy/config/database.yml +28 -28
  70. data/test/dummy/config/environment.rb +6 -5
  71. data/test/dummy/config/environments/development.rb +52 -41
  72. data/test/dummy/config/environments/production.rb +80 -79
  73. data/test/dummy/config/environments/test.rb +43 -42
  74. data/test/dummy/config/initializers/assets.rb +12 -11
  75. data/test/dummy/config/initializers/backtrace_silencers.rb +8 -7
  76. data/test/dummy/config/initializers/cookies_serializer.rb +4 -3
  77. data/test/dummy/config/initializers/filter_parameter_logging.rb +5 -4
  78. data/test/dummy/config/initializers/inflections.rb +17 -16
  79. data/test/dummy/config/initializers/mime_types.rb +5 -4
  80. data/test/dummy/config/initializers/session_store.rb +4 -3
  81. data/test/dummy/config/initializers/wrap_parameters.rb +15 -14
  82. data/test/dummy/config/locales/en.yml +33 -33
  83. data/test/dummy/config/routes.rb +6 -6
  84. data/test/dummy/config/secrets.yml +22 -22
  85. data/test/dummy/db/schema.rb +72 -35
  86. data/test/dummy/db/seeds.rb +18 -0
  87. data/test/dummy/log/bullet.log +7 -0
  88. data/test/dummy/log/development.log +14702 -0
  89. data/test/dummy/log/test.log +1135 -0
  90. data/test/dummy/public/404.html +67 -67
  91. data/test/dummy/public/422.html +67 -67
  92. data/test/dummy/public/500.html +66 -66
  93. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/16dl9CdObHclmKoFXc2zQh9rW-KLDulBg9znI-eRIRA.cache +1 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2__llMaILi6GIGs0Ud--MoJ_q52Ma04wDCAakl-ciVQ.cache +0 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3W93pks8dviNiXPZszlyU0a3-UE6-QNPnwd9of1laVI.cache +1 -0
  96. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3d_B_YYvHmtlJ8mBxPSIBB0RqOS74VO_QtWUQbk-ngk.cache +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/56CdkjUr49A5C7KcR5h5IUt4XeVO74F-GwfY4sHbEOA.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6FuEXiynto7KSfrY1ziT5WzWMq6hqDNBQ9hesvk27Jc.cache +0 -0
  99. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6PmV7DYX7QXLP7g1r1YFHkKv4UbAtm5zuucs8dxjv1o.cache +1 -0
  100. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/72B7YeiVJA3FGFbsBjK8CYoJnnMXeFdsSF7O6hq2K6g.cache +1 -0
  101. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/78b7p_RRYPNiUO4wEIFyW53LAs9D_l0gSZDbEJLEZ78.cache +0 -0
  102. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7xkYVoPwhhEGUvpD0XjXgu2MkVVn8JtOjsWHqSrYZVg.cache +1 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8K4zfT11J6ORkijFMakOfQQ1Gnf_fGTeHQWrWXlW_OQ.cache +0 -0
  104. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/91oKKpcrF9-IEZyOEK8YhZDdHg_FhrVa0z2jeUFRBPE.cache +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/98-R4wiwBf7qvdPOM9Au_WrsfFKGiA7vdNxCrpLyvDE.cache +0 -0
  106. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9LPwJ1u8ZBJDRotUp4C7ICJ2fzAgnQaHh6iTxAElgh4.cache +0 -0
  107. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9yZNL-Dnn_jptlcXDI-O7p8Y4NwxlDYxgJuHKBgM1dU.cache +1 -0
  108. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/AtCeTliTtRQr_XhEIFKbNI8STS4puMdjFmx5o5stjnQ.cache +1 -0
  109. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BylU07F4ZHT9Ar6X_KvUvW1CNMNdU_KJtYjXT0czATA.cache +1 -0
  110. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/C1Zy92VD2Xpzq7HBuHvD3xeputd7_lQSxPo2UtX1W5Q.cache +0 -0
  111. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CQpbYts2MA51RR2I9ERmDY0dY30z00jELh2xuJovD3Q.cache +1 -0
  112. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/D5WYJAXL5-u3RVbFGxwq7J2gD4sYZVwQPWhJFofAipo.cache +0 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Dw-DuyBJusMgXWmVGSVfGsRU-RosOLzzxTIiyATsTbc.cache +0 -0
  114. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DzY9vPV5Lh7Ii_ihokzMXw1Dy9c6tL3YS2-Cdw5j-wg.cache +1 -0
  115. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/EpURBuSSQ_bzmVbeiAI6QNKn23FF3uC_sHlP8Y6K1hc.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GVsdL_8CB04VraAQejZ5yHyWYoODwJ-PiDyw_VnWw90.cache +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/GruhA1tMkU4vAvUkmmWXlXslzc8SIG2Ng8iLkGbkfa4.cache +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HRAwJVW86bSUGC4rLf3pfE-T00Qcf7IfP0o352fIXg0.cache +1 -0
  119. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HWqpPokMZX7-F8pZ_R0Pz2DIwcLaS3lzlbPmJaQn8yw.cache +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/J26Jo3IqNb_QKailyi1A62-8sg-FnDwUKNVaVr0jKjk.cache +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JRQfyuYiAcF7KmqYR-FhZqhm9TBHg7yW5wXHi8vZztA.cache +1 -0
  122. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KIlEFNTqcscnUTymCqB5vGCVIMvbAk7aS26txbx88VY.cache +1 -0
  123. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LAtwVyUTpAWlgERdMnu98Evv9p_sjFGeyTLEM7DXCgQ.cache +1 -0
  124. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/LKGqJkoPsV6hUu21PAZb_xrc14OELdJKzVlQjt0Uzm0.cache +1 -0
  125. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MFWF_Cz7iSxrlrFqm0HESTvCJk_XcgbgHPT3YOoClJA.cache +0 -0
  126. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MGxUMp74x2lSe7bOz9rIqbFB6pcCBojXlH8-vKPVbuU.cache +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MaXf6MpY4KWsBmX5Sovz40v_wIgRigE8PUz9KsV_xGc.cache +0 -0
  128. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NEzFaE5Y7t-wiP_ly0OaKcuXFf8SzzdVf2ZhvlEnckA.cache +0 -0
  129. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NFZcSv_g5zKRMCYnX8jIyPP5OXXL8818m75c2QJoK_c.cache +0 -0
  130. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NdGQ0O17pVnmrEIkOOewA2SPFXQ7so_qk9ZEZdMTaYg.cache +0 -0
  131. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NePX2QhdKEwt6UcpUKh1Pt4kUEiQ3ADOXTuJXkBAY7M.cache +1 -0
  132. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OfqWg5SoCpHOR8XVJbnf1o17iJTyVdOkcu0aWJ4necw.cache +0 -0
  133. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PY5erDfbWJ7v0MpSQl6Lx9C1DZnjATDPKdzjs3v02GU.cache +1 -0
  134. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PjzOCx9qa-CNgtm8PFv0lCcRexooD6MlBF4XZ-PHXdo.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QC4SCuhZeFrJrutxIeNamdltRIB8x8cTZPdLVXlOkX4.cache +1 -0
  136. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Q_AVKunF7KBB-iiZ8P_9wjqUOo6o-HDzPosGrGrxpXs.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QpYeSirw33TrEHJwSyW8u_CY183Suu4Wmpvgip4FhAY.cache +1 -0
  138. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RbfwLchr_l-LtAM7gk9onOTVY3qQyChUrzo6w9q6an8.cache +1 -0
  139. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/V5nnfAivxLHBkF21PAP624OS99Df1EJxTAWTttoUXlQ.cache +1 -0
  140. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VMnt2oNeViJzWKWH0s9aqRNfvO7GqoUCfH15SBKUkxM.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VapeKF0n0myzk8VN-BNMW4qCe93e1879mkEkocG7ymI.cache +0 -0
  142. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/X3gNcJy85CGLFf_W10hnLOZHvBy2qxA3IHDoCTMBsy4.cache +1 -0
  143. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Y4rbu-IcL54gklNHGlgaxcqs_iQgE2smBZ6ZPmEDK78.cache +1 -0
  144. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Z-lByEJf_u2hqGATHTwdLzdLpDqqMFenWI01JXE_PGE.cache +1 -0
  145. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZhqD-EKl_U1S1mkDWYcW423a3-49GhN9ekGaoghKGJc.cache +1 -0
  146. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Ztm_GA835w0FeRS-Mjfk45ssKFydDebau0-mMccLv4Q.cache +1 -0
  147. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aext7yQ1tC6DW30jToxnq87sklGqlhlZWflZ3Dgdczw.cache +0 -0
  148. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bPhvH2L4lJk0dVvrsLBlvdcJhdKt8x9RhIzM6TdZK1I.cache +1 -0
  149. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bWdBbSJ-8yTmfQhuCNtVgHTr_5t1BjhrJF-6dvot9K8.cache +1 -0
  150. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bfJcyXtvEs7I6u_NHWVqANdUOsjdtyCsl3kQf8slSNg.cache +1 -0
  151. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/cGOON7qWTmVb0CU79sYn4JdFiT71tIfJW7nkEExmOiE.cache +0 -0
  152. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dV3jTWklLN0vWvAwOalDF3-iO8_1ZaSXyPBftH7Zajk.cache +0 -0
  153. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/dc2uLeO68ChQlyAv515rJm6cJuH3yluSicQfKTnXBTE.cache +1 -0
  154. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/eDvdPBf0aDgNvfIkB1-dvQYfVuHbG2Pbo3Uk8Sg0nag.cache +0 -0
  155. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/enqaXWMrpgXgsGodQZKC1uRgauDSUxbos0J9o_4Yt3I.cache +1 -0
  156. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fFt3rC4wH8cMsnvQUcAT1rx2FX9b-j4fhn4Z1fkT42s.cache +0 -0
  157. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gvlm0vmUeN9tRyyRNaWCztvTq2pafE3NVjBLMHBBCUY.cache +1 -0
  158. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/j51wtYtrCUs4R5RtoLM6BFDLJCGtwjPyVxvrghVwCKc.cache +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kNc92xE_8hJB758tIoM9xUiF1HcJPTCZRORiBxs7hKI.cache +1 -0
  160. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/kmN-qohaDNpU8X8rq03ju50g_o09-49trJ9W95bEsBk.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ktLG9BYQe4im4JsFUtf3V14tWGTv6nt9hTAyreqDHQw.cache +1 -0
  162. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/l5JxjRujcL8oPdN99DJBnVM7PObhk9VgvPZ0pK61X8E.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lGMutj_qyEaM3x1QdjTK93OeQ6DKvCcTj5jLLlwUUEA.cache +1 -0
  164. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lX3IvOvo4Uc0-CbzNwocsDA5YA0pCFzyidNNAILARLQ.cache +1 -0
  165. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mQhyR98m5F6JlyhPFEQMkBs19ycMnZxAfTppltk7yZs.cache +1 -0
  166. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mjELJvJ-Mfd-MkPOrFfwf-qBOAkrHQSicYOdbeMDTAU.cache +1 -0
  167. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nqWnjOVamRDs6M_szDI7UFPQL7qwt1kjpphbw3OlaVM.cache +1 -0
  168. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/oxSZRmCfjRs_xcXVLwHDP97lPMXLnUy1XzE2iSDJmf4.cache +1 -0
  169. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pvDSvxSg9ZUtIpHcDvJNLuGL1PY-c4i3QgtpBz_MDKU.cache +0 -0
  170. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/q2LCL-IdFXv0QYy7zINFVS9AZiy-zevl9KzahK1HhPQ.cache +0 -0
  171. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qQIozQLMZWLon-Z_PsiNtWElU9NXdgorUh-69NwsjLk.cache +0 -0
  172. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qtCrDrCCgh5_kcZlXTWOotnUExoY1A08cXu69IsWxjQ.cache +1 -0
  173. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rk9iZYWQrjxawGjUdnPbzE0wP8PgCK4ZrUsqRnYQo_s.cache +0 -0
  174. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/s0DvAZOohy3BLrrBdYLBFaTI1zuPYmLSp8_0p-kpaSg.cache +0 -0
  175. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sXytxfuO9aNBLY8A1RLWrFxw-ltOmIjBtVBRlxJp94Y.cache +0 -0
  176. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sh0H7OdNcHH0toZiNOxTWcleR3PMgENZ5jEsxV2IOfM.cache +0 -0
  177. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/stB1cMvEiJ0p6wwgTu85fkuQJlVGVsNJ9BIY6CcV-Xc.cache +0 -0
  178. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tdTD0IXwaELTmpKcXyGiDGPX1MOOqLshrcTAejT0-rg.cache +2 -0
  179. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/trNThGe9QEdWorvOlYHuY-q7ZowRU0pBL9h_C7tmow8.cache +1 -0
  180. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tvuuof25WSYmy6ovpL7o74pHKBKk3lX0Mvgi_mjP8Pc.cache +0 -0
  181. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uGHVhvpno292scQRlBP4c4DWSWtTy_f3s-vB6KMISXM.cache +0 -0
  182. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uK5XBFLkyQv9ciZDP-xaEFCFHM7TAfaO8W0PaXaUHoU.cache +1 -0
  183. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ue89xOUCuBT_QFBZrwyGU4542ZeJjwzBgvqa-3IDM1Y.cache +1 -0
  184. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vk1Ef3fC_iwVqn_zrfaSbgSI0fC3c54G80iYq2iMOuY.cache +1 -0
  185. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vqklEDA4aB8n_x061GyuUp5MQNfIWoox_-dh-7C_Qgw.cache +0 -0
  186. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vxQDA-heflbDCBbymrvO6u3R1Qro8P4s-UWDDloBfNc.cache +0 -0
  187. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/w0iqNBPl2PXb1i9rQK9jbyX22ZSipTNJcMsqUpHYihA.cache +1 -0
  188. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/w_fIw1xAo2ncIjDFQSCpbj-24IIjj6ghtW6_lSR02bk.cache +0 -0
  189. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zDnd-vkdSFnhkbJL00kKfvnxK2PQ7MM3tszAsQWtIZI.cache +1 -0
  190. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zJpXEKLmLBLsx2vRnaVOJJ6ourdoqR0t0AF7rvG1gVk.cache +0 -0
  191. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zZi6jm7vzlkFBhziu-76n61qUzU4_TvtHZ4G9WlK_UA.cache +0 -0
  192. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z_n6U0juStmQsvliwcmAyoAL_c79T35cAp1aAKG7OFQ.cache +1 -0
  193. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zjeDxrvxlto6suepUXrhQ_zbjzxXIhih-z3jT4QgiQA.cache +1 -0
  194. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zn9cgZG1VFaoAT1Fpb7IwJ0pPPAJ23OycKdf1JOcFT8.cache +1 -0
  195. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zrnmM9rBa9CBCEP1mA8bx-cFFCz_zaX3jPoj0MYDfyk.cache +1 -0
  196. data/test/integration/navigation_test.rb +10 -10
  197. data/test/models/appt/appointment_test.rb +10 -9
  198. data/test/models/appt/appointment_type_test.rb +10 -0
  199. data/test/models/appt/block_test.rb +10 -9
  200. data/test/models/appt/calendar_event_test.rb +10 -9
  201. data/test/models/appt/calendar_test.rb +10 -9
  202. data/test/models/appt/external_calendar_test.rb +10 -0
  203. data/test/support/ics/all-day.ics +39 -0
  204. data/test/support/ics/free-busy.ics +34 -0
  205. data/test/support/ics/multi-day.ics +40 -0
  206. data/test/support/ics/recurrence.ics +40 -0
  207. data/test/support/ics/singular.ics +38 -0
  208. data/test/test_helper.rb +23 -22
  209. data/test/unit/icalendar_expander_test.rb +95 -0
  210. metadata +394 -125
  211. data/README.rdoc +0 -3
  212. data/test/dummy/db/development.sqlite3 +0 -0
  213. data/test/dummy/db/test.sqlite3 +0 -0
  214. data/test/fixtures/appt/appointments.yml +0 -11
  215. data/test/fixtures/appt/blocks.yml +0 -11
  216. data/test/fixtures/appt/calendars.yml +0 -7
@@ -162,3 +162,1138 @@ Migrating to CreateApptAppointments (20150804003846)
162
162
  ApptTest: test_truth
163
163
  --------------------
164
164
   (0.1ms) rollback transaction
165
+  (5.5ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
166
+  (2.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
167
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
168
+ Migrating to CreateApptCalendars (20150804002016)
169
+  (0.5ms) BEGIN
170
+  (6.2ms) CREATE TABLE "appt_calendars" ("id" serial primary key, "name" character varying, "availability" text, "timezone_name" character varying, "resolution_minutes" integer, "min_hours" integer, "max_days" integer, "lock_hours" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
171
+ SQL (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804002016"]]
172
+  (0.9ms) COMMIT
173
+ Migrating to CreateApptBlocks (20150804003348)
174
+  (0.3ms) BEGIN
175
+  (4.9ms) CREATE TABLE "appt_blocks" ("id" serial primary key, "name" character varying, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
176
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804003348"]]
177
+  (0.9ms) COMMIT
178
+ Migrating to CreateApptAppointments (20150804003846)
179
+  (0.3ms) BEGIN
180
+  (4.8ms) CREATE TABLE "appt_appointments" ("id" serial primary key, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "email" character varying, "firstname" character varying, "lastname" character varying, "phone" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
181
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804003846"]]
182
+  (0.7ms) COMMIT
183
+ Migrating to CreateApptAppointmentTypes (20150804234748)
184
+  (0.3ms) BEGIN
185
+  (6.1ms) CREATE TABLE "appt_appointment_types" ("id" serial primary key, "name" character varying NOT NULL, "duration_minutes" integer, "before_minutes" integer, "after_minutes" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
186
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804234748"]]
187
+  (0.9ms) COMMIT
188
+ ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
189
+  (3.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
190
+ FROM pg_constraint c
191
+ JOIN pg_class t1 ON c.conrelid = t1.oid
192
+ JOIN pg_class t2 ON c.confrelid = t2.oid
193
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
194
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
195
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
196
+ WHERE c.contype = 'f'
197
+ AND t1.relname = 'appt_appointment_types'
198
+ AND t3.nspname = ANY (current_schemas(false))
199
+ ORDER BY c.conname
200
+ 
201
+  (2.4ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
202
+ FROM pg_constraint c
203
+ JOIN pg_class t1 ON c.conrelid = t1.oid
204
+ JOIN pg_class t2 ON c.confrelid = t2.oid
205
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
206
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
207
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
208
+ WHERE c.contype = 'f'
209
+ AND t1.relname = 'appt_appointments'
210
+ AND t3.nspname = ANY (current_schemas(false))
211
+ ORDER BY c.conname
212
+
213
+  (3.1ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
214
+ FROM pg_constraint c
215
+ JOIN pg_class t1 ON c.conrelid = t1.oid
216
+ JOIN pg_class t2 ON c.confrelid = t2.oid
217
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
218
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
219
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
220
+ WHERE c.contype = 'f'
221
+ AND t1.relname = 'appt_blocks'
222
+ AND t3.nspname = ANY (current_schemas(false))
223
+ ORDER BY c.conname
224
+ 
225
+  (3.0ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
226
+ FROM pg_constraint c
227
+ JOIN pg_class t1 ON c.conrelid = t1.oid
228
+ JOIN pg_class t2 ON c.confrelid = t2.oid
229
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
230
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
231
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
232
+ WHERE c.contype = 'f'
233
+ AND t1.relname = 'appt_calendars'
234
+ AND t3.nspname = ANY (current_schemas(false))
235
+ ORDER BY c.conname
236
+
237
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
238
+  (0.9ms) ALTER TABLE "schema_migrations" DISABLE TRIGGER ALL;ALTER TABLE "appt_calendars" DISABLE TRIGGER ALL;ALTER TABLE "appt_blocks" DISABLE TRIGGER ALL;ALTER TABLE "appt_appointments" DISABLE TRIGGER ALL;ALTER TABLE "appt_appointment_types" DISABLE TRIGGER ALL
239
+  (0.4ms) BEGIN
240
+ Fixture Delete (0.5ms) DELETE FROM "appt_appointments"
241
+ Fixture Insert (0.7ms) INSERT INTO "appt_appointments" ("created_at", "updated_at", "id") VALUES ('2015-08-05 02:25:21', '2015-08-05 02:25:21', 980190962)
242
+ PG::NotNullViolation: ERROR: null value in column "day" violates not-null constraint
243
+ DETAIL: Failing row contains (980190962, null, null, null, null, null, null, null, null, 2015-08-05 02:25:21, 2015-08-05 02:25:21).
244
+ : INSERT INTO "appt_appointments" ("created_at", "updated_at", "id") VALUES ('2015-08-05 02:25:21', '2015-08-05 02:25:21', 980190962)
245
+  (0.4ms) ROLLBACK
246
+  (0.4ms) ALTER TABLE "schema_migrations" ENABLE TRIGGER ALL;ALTER TABLE "appt_calendars" ENABLE TRIGGER ALL;ALTER TABLE "appt_blocks" ENABLE TRIGGER ALL;ALTER TABLE "appt_appointments" ENABLE TRIGGER ALL;ALTER TABLE "appt_appointment_types" ENABLE TRIGGER ALL
247
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
248
+  (0.4ms) BEGIN
249
+ --------------------
250
+ ApptTest: test_truth
251
+ --------------------
252
+  (0.3ms) ROLLBACK
253
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
254
+  (110.2ms) DROP DATABASE IF EXISTS "dummy_test"
255
+  (282.9ms) CREATE DATABASE "dummy_test" ENCODING = 'utf8'
256
+ SQL (0.5ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
257
+  (7.7ms) CREATE TABLE "appt_appointment_types" ("id" serial primary key, "name" character varying NOT NULL, "duration_minutes" integer, "before_minutes" integer, "after_minutes" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
258
+  (6.3ms) CREATE TABLE "appt_appointments" ("id" serial primary key, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "email" character varying, "firstname" character varying, "lastname" character varying, "phone" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
259
+  (5.1ms) CREATE TABLE "appt_blocks" ("id" serial primary key, "name" character varying, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
260
+  (5.5ms) CREATE TABLE "appt_calendars" ("id" serial primary key, "name" character varying, "availability" text, "timezone_name" character varying, "resolution_minutes" integer, "min_hours" integer, "max_days" integer, "lock_hours" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
261
+  (5.3ms) CREATE TABLE "appt_external_calendars" ("id" serial primary key, "url" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL)
262
+  (3.2ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
263
+  (2.8ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
264
+  (0.5ms) SELECT version FROM "schema_migrations"
265
+  (1.0ms) INSERT INTO "schema_migrations" (version) VALUES ('20150805114046')
266
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
267
+  (5.5ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
268
+  (2.7ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
269
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
270
+ Migrating to CreateApptCalendars (20150804002016)
271
+  (0.3ms) BEGIN
272
+  (6.3ms) CREATE TABLE "appt_calendars" ("id" serial primary key, "name" character varying, "availability" text, "timezone_name" character varying, "resolution_minutes" integer, "min_hours" integer, "max_days" integer, "lock_hours" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
273
+ SQL (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804002016"]]
274
+  (0.9ms) COMMIT
275
+ Migrating to CreateApptBlocks (20150804003348)
276
+  (0.3ms) BEGIN
277
+  (4.6ms) CREATE TABLE "appt_blocks" ("id" serial primary key, "name" character varying, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
278
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804003348"]]
279
+  (1.0ms) COMMIT
280
+ Migrating to CreateApptAppointments (20150804003846)
281
+  (0.4ms) BEGIN
282
+  (6.1ms) CREATE TABLE "appt_appointments" ("id" serial primary key, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "email" character varying, "firstname" character varying, "lastname" character varying, "phone" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
283
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804003846"]]
284
+  (1.2ms) COMMIT
285
+ Migrating to CreateApptAppointmentTypes (20150804234748)
286
+  (0.3ms) BEGIN
287
+  (19.9ms) CREATE TABLE "appt_appointment_types" ("id" serial primary key, "name" character varying NOT NULL, "duration_minutes" integer, "before_minutes" integer, "after_minutes" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
288
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804234748"]]
289
+  (1.0ms) COMMIT
290
+ Migrating to CreateApptExternalCalendars (20150805114046)
291
+  (0.5ms) BEGIN
292
+  (5.1ms) CREATE TABLE "appt_external_calendars" ("id" serial primary key, "url" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
293
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150805114046"]]
294
+  (0.8ms) COMMIT
295
+ ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
296
+  (3.0ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
297
+ FROM pg_constraint c
298
+ JOIN pg_class t1 ON c.conrelid = t1.oid
299
+ JOIN pg_class t2 ON c.confrelid = t2.oid
300
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
301
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
302
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
303
+ WHERE c.contype = 'f'
304
+ AND t1.relname = 'appt_appointment_types'
305
+ AND t3.nspname = ANY (current_schemas(false))
306
+ ORDER BY c.conname
307
+ 
308
+  (2.1ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
309
+ FROM pg_constraint c
310
+ JOIN pg_class t1 ON c.conrelid = t1.oid
311
+ JOIN pg_class t2 ON c.confrelid = t2.oid
312
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
313
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
314
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
315
+ WHERE c.contype = 'f'
316
+ AND t1.relname = 'appt_appointments'
317
+ AND t3.nspname = ANY (current_schemas(false))
318
+ ORDER BY c.conname
319
+
320
+  (2.7ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
321
+ FROM pg_constraint c
322
+ JOIN pg_class t1 ON c.conrelid = t1.oid
323
+ JOIN pg_class t2 ON c.confrelid = t2.oid
324
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
325
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
326
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
327
+ WHERE c.contype = 'f'
328
+ AND t1.relname = 'appt_blocks'
329
+ AND t3.nspname = ANY (current_schemas(false))
330
+ ORDER BY c.conname
331
+ 
332
+  (2.8ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
333
+ FROM pg_constraint c
334
+ JOIN pg_class t1 ON c.conrelid = t1.oid
335
+ JOIN pg_class t2 ON c.confrelid = t2.oid
336
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
337
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
338
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
339
+ WHERE c.contype = 'f'
340
+ AND t1.relname = 'appt_calendars'
341
+ AND t3.nspname = ANY (current_schemas(false))
342
+ ORDER BY c.conname
343
+
344
+  (3.6ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
345
+ FROM pg_constraint c
346
+ JOIN pg_class t1 ON c.conrelid = t1.oid
347
+ JOIN pg_class t2 ON c.confrelid = t2.oid
348
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
349
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
350
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
351
+ WHERE c.contype = 'f'
352
+ AND t1.relname = 'appt_external_calendars'
353
+ AND t3.nspname = ANY (current_schemas(false))
354
+ ORDER BY c.conname
355
+ 
356
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
357
+  (0.4ms) BEGIN
358
+ --------------------
359
+ ApptTest: test_truth
360
+ --------------------
361
+  (0.3ms) ROLLBACK
362
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
363
+  (0.4ms) BEGIN
364
+ --------------------
365
+ ApptTest: test_truth
366
+ --------------------
367
+  (0.5ms) ROLLBACK
368
+  (4.7ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
369
+  (2.6ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
370
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
371
+ Migrating to CreateApptCalendars (20150804002016)
372
+  (0.3ms) BEGIN
373
+  (6.2ms) CREATE TABLE "appt_calendars" ("id" serial primary key, "name" character varying, "availability" text, "timezone_name" character varying, "resolution_minutes" integer, "min_hours" integer, "max_days" integer, "lock_hours" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
374
+ SQL (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804002016"]]
375
+  (0.9ms) COMMIT
376
+ Migrating to CreateApptBlocks (20150804003348)
377
+  (0.3ms) BEGIN
378
+  (4.8ms) CREATE TABLE "appt_blocks" ("id" serial primary key, "name" character varying, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "external_calendar_id" integer, "external_id" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
379
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804003348"]]
380
+  (1.0ms) COMMIT
381
+ Migrating to CreateApptAppointments (20150804003846)
382
+  (0.4ms) BEGIN
383
+  (5.2ms) CREATE TABLE "appt_appointments" ("id" serial primary key, "calendar_id" integer, "day" date NOT NULL, "start" character varying NOT NULL, "end" character varying NOT NULL, "email" character varying, "firstname" character varying, "lastname" character varying, "phone" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
384
+ SQL (0.4ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804003846"]]
385
+  (0.9ms) COMMIT
386
+ Migrating to CreateApptAppointmentTypes (20150804234748)
387
+  (0.3ms) BEGIN
388
+  (16.7ms) CREATE TABLE "appt_appointment_types" ("id" serial primary key, "name" character varying NOT NULL, "duration_minutes" integer, "before_minutes" integer, "after_minutes" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
389
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150804234748"]]
390
+  (0.9ms) COMMIT
391
+ Migrating to CreateApptExternalCalendars (20150805114046)
392
+  (0.3ms) BEGIN
393
+  (5.4ms) CREATE TABLE "appt_external_calendars" ("id" serial primary key, "url" character varying, "name" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
394
+ SQL (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150805114046"]]
395
+  (0.8ms) COMMIT
396
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
397
+  (3.3ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
398
+ FROM pg_constraint c
399
+ JOIN pg_class t1 ON c.conrelid = t1.oid
400
+ JOIN pg_class t2 ON c.confrelid = t2.oid
401
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
402
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
403
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
404
+ WHERE c.contype = 'f'
405
+ AND t1.relname = 'appt_appointment_types'
406
+ AND t3.nspname = ANY (current_schemas(false))
407
+ ORDER BY c.conname
408
+ 
409
+  (2.4ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
410
+ FROM pg_constraint c
411
+ JOIN pg_class t1 ON c.conrelid = t1.oid
412
+ JOIN pg_class t2 ON c.confrelid = t2.oid
413
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
414
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
415
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
416
+ WHERE c.contype = 'f'
417
+ AND t1.relname = 'appt_appointments'
418
+ AND t3.nspname = ANY (current_schemas(false))
419
+ ORDER BY c.conname
420
+
421
+  (2.9ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
422
+ FROM pg_constraint c
423
+ JOIN pg_class t1 ON c.conrelid = t1.oid
424
+ JOIN pg_class t2 ON c.confrelid = t2.oid
425
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
426
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
427
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
428
+ WHERE c.contype = 'f'
429
+ AND t1.relname = 'appt_blocks'
430
+ AND t3.nspname = ANY (current_schemas(false))
431
+ ORDER BY c.conname
432
+ 
433
+  (2.9ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
434
+ FROM pg_constraint c
435
+ JOIN pg_class t1 ON c.conrelid = t1.oid
436
+ JOIN pg_class t2 ON c.confrelid = t2.oid
437
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
438
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
439
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
440
+ WHERE c.contype = 'f'
441
+ AND t1.relname = 'appt_calendars'
442
+ AND t3.nspname = ANY (current_schemas(false))
443
+ ORDER BY c.conname
444
+
445
+  (3.0ms) SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
446
+ FROM pg_constraint c
447
+ JOIN pg_class t1 ON c.conrelid = t1.oid
448
+ JOIN pg_class t2 ON c.confrelid = t2.oid
449
+ JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
450
+ JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
451
+ JOIN pg_namespace t3 ON c.connamespace = t3.oid
452
+ WHERE c.contype = 'f'
453
+ AND t1.relname = 'appt_external_calendars'
454
+ AND t3.nspname = ANY (current_schemas(false))
455
+ ORDER BY c.conname
456
+ 
457
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
458
+  (0.4ms) BEGIN
459
+ --------------------------------------------------
460
+ Appt::IcalendarParserTest: test_handles_recurrence
461
+ --------------------------------------------------
462
+  (0.3ms) ROLLBACK
463
+  (0.2ms) BEGIN
464
+ --------------------
465
+ ApptTest: test_truth
466
+ --------------------
467
+  (0.2ms) ROLLBACK
468
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
469
+  (0.4ms) BEGIN
470
+ --------------------
471
+ ApptTest: test_truth
472
+ --------------------
473
+  (0.3ms) ROLLBACK
474
+  (0.3ms) BEGIN
475
+ --------------------------------------------------
476
+ Appt::IcalendarParserTest: test_handles_recurrence
477
+ --------------------------------------------------
478
+  (0.5ms) ROLLBACK
479
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
480
+  (0.4ms) BEGIN
481
+ --------------------------------------------------
482
+ Appt::IcalendarParserTest: test_handles_recurrence
483
+ --------------------------------------------------
484
+  (0.3ms) ROLLBACK
485
+  (0.3ms) BEGIN
486
+ --------------------
487
+ ApptTest: test_truth
488
+ --------------------
489
+  (0.3ms) ROLLBACK
490
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
491
+  (0.3ms) BEGIN
492
+ --------------------
493
+ ApptTest: test_truth
494
+ --------------------
495
+  (0.3ms) ROLLBACK
496
+  (0.3ms) BEGIN
497
+ --------------------------------------------------
498
+ Appt::IcalendarParserTest: test_handles_recurrence
499
+ --------------------------------------------------
500
+  (0.6ms) ROLLBACK
501
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
502
+  (0.3ms) BEGIN
503
+ --------------------------------------------------
504
+ Appt::IcalendarParserTest: test_handles_recurrence
505
+ --------------------------------------------------
506
+  (0.5ms) ROLLBACK
507
+  (0.3ms) BEGIN
508
+ --------------------
509
+ ApptTest: test_truth
510
+ --------------------
511
+  (0.3ms) ROLLBACK
512
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
513
+  (0.4ms) BEGIN
514
+ --------------------------------------------------
515
+ Appt::IcalendarParserTest: test_handles_recurrence
516
+ --------------------------------------------------
517
+  (0.4ms) ROLLBACK
518
+  (0.2ms) BEGIN
519
+ --------------------
520
+ ApptTest: test_truth
521
+ --------------------
522
+  (0.3ms) ROLLBACK
523
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
524
+  (0.4ms) BEGIN
525
+ --------------------------------------------------
526
+ Appt::IcalendarParserTest: test_handles_recurrence
527
+ --------------------------------------------------
528
+  (0.4ms) ROLLBACK
529
+  (0.2ms) BEGIN
530
+ --------------------
531
+ ApptTest: test_truth
532
+ --------------------
533
+  (0.3ms) ROLLBACK
534
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
535
+  (0.4ms) BEGIN
536
+ --------------------
537
+ ApptTest: test_truth
538
+ --------------------
539
+  (0.4ms) ROLLBACK
540
+  (0.3ms) BEGIN
541
+ --------------------------------------------------
542
+ Appt::IcalendarParserTest: test_handles_recurrence
543
+ --------------------------------------------------
544
+  (0.5ms) ROLLBACK
545
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
546
+  (0.3ms) BEGIN
547
+ --------------------
548
+ ApptTest: test_truth
549
+ --------------------
550
+  (0.3ms) ROLLBACK
551
+  (0.3ms) BEGIN
552
+ --------------------------------------------------
553
+ Appt::IcalendarParserTest: test_handles_recurrence
554
+ --------------------------------------------------
555
+  (0.3ms) ROLLBACK
556
+ ActiveRecord::SchemaMigration Load (0.8ms) SELECT "schema_migrations".* FROM "schema_migrations"
557
+  (0.4ms) BEGIN
558
+ --------------------------------------------------
559
+ Appt::IcalendarParserTest: test_handles_recurrence
560
+ --------------------------------------------------
561
+  (0.4ms) ROLLBACK
562
+  (0.3ms) BEGIN
563
+ --------------------
564
+ ApptTest: test_truth
565
+ --------------------
566
+  (0.3ms) ROLLBACK
567
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
568
+  (0.3ms) BEGIN
569
+ --------------------
570
+ ApptTest: test_truth
571
+ --------------------
572
+  (0.7ms) ROLLBACK
573
+  (0.2ms) BEGIN
574
+ --------------------------------------------------
575
+ Appt::IcalendarParserTest: test_handles_recurrence
576
+ --------------------------------------------------
577
+  (0.4ms) ROLLBACK
578
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
579
+  (0.4ms) BEGIN
580
+ --------------------------------------------------
581
+ Appt::IcalendarParserTest: test_handles_recurrence
582
+ --------------------------------------------------
583
+  (0.5ms) ROLLBACK
584
+  (0.2ms) BEGIN
585
+ --------------------
586
+ ApptTest: test_truth
587
+ --------------------
588
+  (0.3ms) ROLLBACK
589
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
590
+  (0.3ms) BEGIN
591
+ --------------------
592
+ ApptTest: test_truth
593
+ --------------------
594
+  (0.3ms) ROLLBACK
595
+  (0.3ms) BEGIN
596
+ --------------------------------------------------
597
+ Appt::IcalendarParserTest: test_handles_recurrence
598
+ --------------------------------------------------
599
+  (0.4ms) ROLLBACK
600
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
601
+  (0.4ms) BEGIN
602
+ --------------------------------------------------
603
+ Appt::IcalendarParserTest: test_handles_recurrence
604
+ --------------------------------------------------
605
+  (0.5ms) ROLLBACK
606
+  (0.3ms) BEGIN
607
+ --------------------
608
+ ApptTest: test_truth
609
+ --------------------
610
+  (0.3ms) ROLLBACK
611
+ ActiveRecord::SchemaMigration Load (1.2ms) SELECT "schema_migrations".* FROM "schema_migrations"
612
+  (0.3ms) BEGIN
613
+ --------------------------------------------------
614
+ Appt::IcalendarParserTest: test_handles_recurrence
615
+ --------------------------------------------------
616
+  (0.5ms) ROLLBACK
617
+  (0.3ms) BEGIN
618
+ --------------------
619
+ ApptTest: test_truth
620
+ --------------------
621
+  (0.2ms) ROLLBACK
622
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
623
+  (0.4ms) BEGIN
624
+ --------------------
625
+ ApptTest: test_truth
626
+ --------------------
627
+  (0.3ms) ROLLBACK
628
+  (0.3ms) BEGIN
629
+ --------------------------------------------------
630
+ Appt::IcalendarParserTest: test_handles_recurrence
631
+ --------------------------------------------------
632
+  (0.5ms) ROLLBACK
633
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
634
+  (0.4ms) BEGIN
635
+ --------------------------------------------------
636
+ Appt::IcalendarParserTest: test_handles_recurrence
637
+ --------------------------------------------------
638
+  (0.3ms) ROLLBACK
639
+  (0.2ms) BEGIN
640
+ --------------------
641
+ ApptTest: test_truth
642
+ --------------------
643
+  (0.3ms) ROLLBACK
644
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
645
+  (0.4ms) BEGIN
646
+ --------------------
647
+ ApptTest: test_truth
648
+ --------------------
649
+  (0.3ms) ROLLBACK
650
+  (0.3ms) BEGIN
651
+ --------------------------------------------------
652
+ Appt::IcalendarParserTest: test_handles_recurrence
653
+ --------------------------------------------------
654
+  (0.5ms) ROLLBACK
655
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
656
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
657
+  (0.4ms) BEGIN
658
+ --------------------------------------------------
659
+ Appt::IcalendarParserTest: test_handles_recurrence
660
+ --------------------------------------------------
661
+  (0.3ms) ROLLBACK
662
+  (0.3ms) BEGIN
663
+ --------------------
664
+ ApptTest: test_truth
665
+ --------------------
666
+  (0.3ms) ROLLBACK
667
+ ActiveRecord::SchemaMigration Load (1.0ms) SELECT "schema_migrations".* FROM "schema_migrations"
668
+  (0.4ms) BEGIN
669
+ --------------------------------------------------
670
+ Appt::IcalendarParserTest: test_handles_recurrence
671
+ --------------------------------------------------
672
+  (0.3ms) ROLLBACK
673
+  (0.3ms) BEGIN
674
+ --------------------
675
+ ApptTest: test_truth
676
+ --------------------
677
+  (0.3ms) ROLLBACK
678
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
679
+  (0.5ms) BEGIN
680
+ --------------------------------------------------
681
+ Appt::IcalendarParserTest: test_handles_recurrence
682
+ --------------------------------------------------
683
+  (0.6ms) ROLLBACK
684
+  (0.3ms) BEGIN
685
+ --------------------
686
+ ApptTest: test_truth
687
+ --------------------
688
+  (0.3ms) ROLLBACK
689
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
690
+  (0.3ms) BEGIN
691
+ -----------------------------------------------
692
+ Appt::IcalendarParserTest: test_handles_all-day
693
+ -----------------------------------------------
694
+  (0.3ms) ROLLBACK
695
+  (0.3ms) BEGIN
696
+ ------------------------------------------------------
697
+ Appt::IcalendarParserTest: test_handles_singular_event
698
+ ------------------------------------------------------
699
+  (0.3ms) ROLLBACK
700
+  (0.4ms) BEGIN
701
+ -------------------------------------------------
702
+ Appt::IcalendarParserTest: test_handles_multi-day
703
+ -------------------------------------------------
704
+ Not yet handling multi-day events!!!
705
+  (0.4ms) ROLLBACK
706
+  (0.3ms) BEGIN
707
+ --------------------------------------------------
708
+ Appt::IcalendarParserTest: test_handles_recurrence
709
+ --------------------------------------------------
710
+  (0.5ms) ROLLBACK
711
+  (0.3ms) BEGIN
712
+ --------------------
713
+ ApptTest: test_truth
714
+ --------------------
715
+  (0.3ms) ROLLBACK
716
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
717
+  (0.3ms) BEGIN
718
+ --------------------
719
+ ApptTest: test_truth
720
+ --------------------
721
+  (0.3ms) ROLLBACK
722
+  (0.3ms) BEGIN
723
+ ------------------------------------------------------
724
+ Appt::IcalendarParserTest: test_handles_singular_event
725
+ ------------------------------------------------------
726
+  (0.4ms) ROLLBACK
727
+  (0.3ms) BEGIN
728
+ -----------------------------------------------
729
+ Appt::IcalendarParserTest: test_handles_all-day
730
+ -----------------------------------------------
731
+  (0.5ms) ROLLBACK
732
+  (0.3ms) BEGIN
733
+ -------------------------------------------------
734
+ Appt::IcalendarParserTest: test_handles_multi-day
735
+ -------------------------------------------------
736
+ Not yet handling multi-day events!!!
737
+  (0.3ms) ROLLBACK
738
+  (0.3ms) BEGIN
739
+ --------------------------------------------------
740
+ Appt::IcalendarParserTest: test_handles_recurrence
741
+ --------------------------------------------------
742
+  (0.6ms) ROLLBACK
743
+ ActiveRecord::SchemaMigration Load (1.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
744
+  (0.3ms) BEGIN
745
+ --------------------
746
+ ApptTest: test_truth
747
+ --------------------
748
+  (0.3ms) ROLLBACK
749
+  (0.3ms) BEGIN
750
+ -------------------------------------------------
751
+ Appt::IcalendarParserTest: test_handles_multi-day
752
+ -------------------------------------------------
753
+ Not yet handling multi-day events!!!
754
+  (0.3ms) ROLLBACK
755
+  (0.2ms) BEGIN
756
+ ------------------------------------------------------
757
+ Appt::IcalendarParserTest: test_handles_singular_event
758
+ ------------------------------------------------------
759
+  (0.3ms) ROLLBACK
760
+  (0.3ms) BEGIN
761
+ -----------------------------------------------
762
+ Appt::IcalendarParserTest: test_handles_all-day
763
+ -----------------------------------------------
764
+  (0.3ms) ROLLBACK
765
+  (0.4ms) BEGIN
766
+ --------------------------------------------------
767
+ Appt::IcalendarParserTest: test_handles_recurrence
768
+ --------------------------------------------------
769
+  (0.5ms) ROLLBACK
770
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
771
+  (0.4ms) BEGIN
772
+ ------------------------------------------------------
773
+ Appt::IcalendarParserTest: test_handles_singular_event
774
+ ------------------------------------------------------
775
+  (0.3ms) ROLLBACK
776
+  (0.3ms) BEGIN
777
+ --------------------------------------------------
778
+ Appt::IcalendarParserTest: test_handles_recurrence
779
+ --------------------------------------------------
780
+  (0.6ms) ROLLBACK
781
+  (0.4ms) BEGIN
782
+ -----------------------------------------------
783
+ Appt::IcalendarParserTest: test_handles_all-day
784
+ -----------------------------------------------
785
+  (0.4ms) ROLLBACK
786
+  (0.3ms) BEGIN
787
+ -------------------------------------------------
788
+ Appt::IcalendarParserTest: test_handles_multi-day
789
+ -------------------------------------------------
790
+ Not yet handling multi-day events!!!
791
+  (0.3ms) ROLLBACK
792
+  (0.3ms) BEGIN
793
+ --------------------
794
+ ApptTest: test_truth
795
+ --------------------
796
+  (0.3ms) ROLLBACK
797
+ ActiveRecord::SchemaMigration Load (0.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
798
+  (0.4ms) BEGIN
799
+ --------------------
800
+ ApptTest: test_truth
801
+ --------------------
802
+  (0.4ms) ROLLBACK
803
+  (0.3ms) BEGIN
804
+ --------------------------------------------------
805
+ Appt::IcalendarParserTest: test_handles_recurrence
806
+ --------------------------------------------------
807
+  (0.6ms) ROLLBACK
808
+  (0.3ms) BEGIN
809
+ -----------------------------------------------
810
+ Appt::IcalendarParserTest: test_handles_all-day
811
+ -----------------------------------------------
812
+  (0.4ms) ROLLBACK
813
+  (0.3ms) BEGIN
814
+ -------------------------------------------------
815
+ Appt::IcalendarParserTest: test_handles_multi-day
816
+ -------------------------------------------------
817
+ Not yet handling multi-day events!!!
818
+  (0.3ms) ROLLBACK
819
+  (0.3ms) BEGIN
820
+ ------------------------------------------------------
821
+ Appt::IcalendarParserTest: test_handles_singular_event
822
+ ------------------------------------------------------
823
+  (0.3ms) ROLLBACK
824
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
825
+  (0.4ms) BEGIN
826
+ -------------------------------------------------
827
+ Appt::IcalendarParserTest: test_handles_multi-day
828
+ -------------------------------------------------
829
+ Not yet handling multi-day events!!!
830
+  (0.3ms) ROLLBACK
831
+  (0.3ms) BEGIN
832
+ ------------------------------------------------------
833
+ Appt::IcalendarParserTest: test_handles_singular_event
834
+ ------------------------------------------------------
835
+  (0.3ms) ROLLBACK
836
+  (0.3ms) BEGIN
837
+ -----------------------------------------------
838
+ Appt::IcalendarParserTest: test_handles_all-day
839
+ -----------------------------------------------
840
+ Not yet handling multi-day events!!!
841
+  (0.4ms) ROLLBACK
842
+  (0.3ms) BEGIN
843
+ --------------------------------------------------
844
+ Appt::IcalendarParserTest: test_handles_recurrence
845
+ --------------------------------------------------
846
+  (0.5ms) ROLLBACK
847
+  (0.3ms) BEGIN
848
+ --------------------
849
+ ApptTest: test_truth
850
+ --------------------
851
+  (0.2ms) ROLLBACK
852
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
853
+  (0.4ms) BEGIN
854
+ --------------------
855
+ ApptTest: test_truth
856
+ --------------------
857
+  (0.3ms) ROLLBACK
858
+  (0.2ms) BEGIN
859
+ --------------------------------------------------
860
+ Appt::IcalendarParserTest: test_handles_recurrence
861
+ --------------------------------------------------
862
+  (0.3ms) ROLLBACK
863
+  (0.3ms) BEGIN
864
+ ------------------------------------------------------
865
+ Appt::IcalendarParserTest: test_handles_singular_event
866
+ ------------------------------------------------------
867
+  (0.3ms) ROLLBACK
868
+  (0.3ms) BEGIN
869
+ -----------------------------------------------
870
+ Appt::IcalendarParserTest: test_handles_all-day
871
+ -----------------------------------------------
872
+ Not yet handling multi-day events!!!
873
+  (0.5ms) ROLLBACK
874
+  (0.3ms) BEGIN
875
+ -------------------------------------------------
876
+ Appt::IcalendarParserTest: test_handles_multi-day
877
+ -------------------------------------------------
878
+ Not yet handling multi-day events!!!
879
+  (0.4ms) ROLLBACK
880
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
881
+  (1.1ms) BEGIN
882
+ ------------------------------------------------------
883
+ Appt::IcalendarParserTest: test_handles_singular_event
884
+ ------------------------------------------------------
885
+  (0.4ms) ROLLBACK
886
+  (0.5ms) BEGIN
887
+ -------------------------------------------------
888
+ Appt::IcalendarParserTest: test_handles_multi-day
889
+ -------------------------------------------------
890
+ Not yet handling multi-day events!!!
891
+  (0.6ms) ROLLBACK
892
+  (0.2ms) BEGIN
893
+ --------------------------------------------------
894
+ Appt::IcalendarParserTest: test_handles_recurrence
895
+ --------------------------------------------------
896
+  (0.3ms) ROLLBACK
897
+  (0.2ms) BEGIN
898
+ -----------------------------------------------
899
+ Appt::IcalendarParserTest: test_handles_all-day
900
+ -----------------------------------------------
901
+ Not yet handling multi-day events!!!
902
+  (0.3ms) ROLLBACK
903
+  (0.3ms) BEGIN
904
+ --------------------
905
+ ApptTest: test_truth
906
+ --------------------
907
+  (0.3ms) ROLLBACK
908
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
909
+  (0.4ms) BEGIN
910
+ --------------------------------------------------
911
+ Appt::IcalendarParserTest: test_handles_recurrence
912
+ --------------------------------------------------
913
+  (0.6ms) ROLLBACK
914
+  (0.3ms) BEGIN
915
+ ------------------------------------------------------
916
+ Appt::IcalendarParserTest: test_handles_singular_event
917
+ ------------------------------------------------------
918
+  (0.4ms) ROLLBACK
919
+  (0.3ms) BEGIN
920
+ -----------------------------------------------
921
+ Appt::IcalendarParserTest: test_handles_all-day
922
+ -----------------------------------------------
923
+ Not yet handling multi-day events!!!
924
+  (0.4ms) ROLLBACK
925
+  (0.3ms) BEGIN
926
+ -------------------------------------------------
927
+ Appt::IcalendarParserTest: test_handles_multi-day
928
+ -------------------------------------------------
929
+ Not yet handling multi-day events!!!
930
+  (0.4ms) ROLLBACK
931
+  (0.3ms) BEGIN
932
+ --------------------
933
+ ApptTest: test_truth
934
+ --------------------
935
+  (4.0ms) ROLLBACK
936
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
937
+  (0.4ms) BEGIN
938
+ --------------------
939
+ ApptTest: test_truth
940
+ --------------------
941
+  (0.3ms) ROLLBACK
942
+  (0.3ms) BEGIN
943
+ -------------------------------------------------
944
+ Appt::IcalendarParserTest: test_handles_multi-day
945
+ -------------------------------------------------
946
+  (0.3ms) ROLLBACK
947
+  (0.3ms) BEGIN
948
+ --------------------------------------------------
949
+ Appt::IcalendarParserTest: test_handles_recurrence
950
+ --------------------------------------------------
951
+  (0.3ms) ROLLBACK
952
+  (0.3ms) BEGIN
953
+ -----------------------------------------------
954
+ Appt::IcalendarParserTest: test_handles_all-day
955
+ -----------------------------------------------
956
+  (0.3ms) ROLLBACK
957
+  (0.3ms) BEGIN
958
+ ------------------------------------------------------
959
+ Appt::IcalendarParserTest: test_handles_singular_event
960
+ ------------------------------------------------------
961
+  (0.5ms) ROLLBACK
962
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
963
+  (0.4ms) BEGIN
964
+ --------------------
965
+ ApptTest: test_truth
966
+ --------------------
967
+  (0.3ms) ROLLBACK
968
+  (0.2ms) BEGIN
969
+ --------------------------------------------------
970
+ Appt::IcalendarParserTest: test_handles_recurrence
971
+ --------------------------------------------------
972
+  (0.6ms) ROLLBACK
973
+  (0.3ms) BEGIN
974
+ ------------------------------------------------------
975
+ Appt::IcalendarParserTest: test_handles_singular_event
976
+ ------------------------------------------------------
977
+  (0.3ms) ROLLBACK
978
+  (0.4ms) BEGIN
979
+ -----------------------------------------------
980
+ Appt::IcalendarParserTest: test_handles_all-day
981
+ -----------------------------------------------
982
+  (0.3ms) ROLLBACK
983
+  (0.3ms) BEGIN
984
+ -------------------------------------------------
985
+ Appt::IcalendarParserTest: test_handles_multi-day
986
+ -------------------------------------------------
987
+  (0.3ms) ROLLBACK
988
+ ActiveRecord::SchemaMigration Load (0.8ms) SELECT "schema_migrations".* FROM "schema_migrations"
989
+  (0.3ms) BEGIN
990
+ -------------------------------------------------
991
+ Appt::IcalendarParserTest: test_handles_multi-day
992
+ -------------------------------------------------
993
+  (0.3ms) ROLLBACK
994
+  (0.3ms) BEGIN
995
+ --------------------------------------------------
996
+ Appt::IcalendarParserTest: test_handles_recurrence
997
+ --------------------------------------------------
998
+  (0.6ms) ROLLBACK
999
+  (0.3ms) BEGIN
1000
+ ------------------------------------------------------
1001
+ Appt::IcalendarParserTest: test_handles_singular_event
1002
+ ------------------------------------------------------
1003
+  (0.3ms) ROLLBACK
1004
+  (0.3ms) BEGIN
1005
+ -----------------------------------------------
1006
+ Appt::IcalendarParserTest: test_handles_all-day
1007
+ -----------------------------------------------
1008
+  (0.3ms) ROLLBACK
1009
+  (0.3ms) BEGIN
1010
+ --------------------
1011
+ ApptTest: test_truth
1012
+ --------------------
1013
+  (0.3ms) ROLLBACK
1014
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
1015
+  (0.3ms) BEGIN
1016
+ -------------------------------------------------
1017
+ Appt::IcalendarParserTest: test_handles_multi-day
1018
+ -------------------------------------------------
1019
+  (0.4ms) ROLLBACK
1020
+  (0.3ms) BEGIN
1021
+ -----------------------------------------------
1022
+ Appt::IcalendarParserTest: test_handles_all-day
1023
+ -----------------------------------------------
1024
+  (0.3ms) ROLLBACK
1025
+  (0.3ms) BEGIN
1026
+ --------------------------------------------------
1027
+ Appt::IcalendarParserTest: test_handles_recurrence
1028
+ --------------------------------------------------
1029
+  (0.6ms) ROLLBACK
1030
+  (0.3ms) BEGIN
1031
+ ------------------------------------------------------
1032
+ Appt::IcalendarParserTest: test_handles_singular_event
1033
+ ------------------------------------------------------
1034
+  (0.3ms) ROLLBACK
1035
+  (0.3ms) BEGIN
1036
+ --------------------
1037
+ ApptTest: test_truth
1038
+ --------------------
1039
+  (0.3ms) ROLLBACK
1040
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
1041
+  (0.4ms) BEGIN
1042
+ --------------------
1043
+ ApptTest: test_truth
1044
+ --------------------
1045
+  (0.3ms) ROLLBACK
1046
+  (0.3ms) BEGIN
1047
+ -------------------------------------------------
1048
+ Appt::IcalendarParserTest: test_handles_multi-day
1049
+ -------------------------------------------------
1050
+  (0.5ms) ROLLBACK
1051
+  (0.3ms) BEGIN
1052
+ ------------------------------------------------------
1053
+ Appt::IcalendarParserTest: test_handles_singular_event
1054
+ ------------------------------------------------------
1055
+  (0.3ms) ROLLBACK
1056
+  (0.3ms) BEGIN
1057
+ -----------------------------------------------
1058
+ Appt::IcalendarParserTest: test_handles_all-day
1059
+ -----------------------------------------------
1060
+  (0.4ms) ROLLBACK
1061
+  (0.3ms) BEGIN
1062
+ --------------------------------------------------
1063
+ Appt::IcalendarParserTest: test_handles_recurrence
1064
+ --------------------------------------------------
1065
+  (0.5ms) ROLLBACK
1066
+ ActiveRecord::SchemaMigration Load (1.3ms) SELECT "schema_migrations".* FROM "schema_migrations"
1067
+  (0.3ms) BEGIN
1068
+ -----------------------------------------------
1069
+ Appt::IcalendarParserTest: test_handles_all-day
1070
+ -----------------------------------------------
1071
+  (0.4ms) ROLLBACK
1072
+  (0.4ms) BEGIN
1073
+ -------------------------------------------------
1074
+ Appt::IcalendarParserTest: test_handles_multi-day
1075
+ -------------------------------------------------
1076
+  (0.3ms) ROLLBACK
1077
+  (0.3ms) BEGIN
1078
+ --------------------------------------------------
1079
+ Appt::IcalendarParserTest: test_handles_recurrence
1080
+ --------------------------------------------------
1081
+  (0.5ms) ROLLBACK
1082
+  (0.3ms) BEGIN
1083
+ ------------------------------------------------------
1084
+ Appt::IcalendarParserTest: test_handles_singular_event
1085
+ ------------------------------------------------------
1086
+  (0.3ms) ROLLBACK
1087
+  (0.3ms) BEGIN
1088
+ --------------------
1089
+ ApptTest: test_truth
1090
+ --------------------
1091
+  (0.3ms) ROLLBACK
1092
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
1093
+  (0.3ms) BEGIN
1094
+ --------------------
1095
+ ApptTest: test_truth
1096
+ --------------------
1097
+  (0.3ms) ROLLBACK
1098
+  (0.3ms) BEGIN
1099
+ -----------------------------------------------
1100
+ Appt::IcalendarParserTest: test_handles_all-day
1101
+ -----------------------------------------------
1102
+  (0.3ms) ROLLBACK
1103
+  (0.3ms) BEGIN
1104
+ -------------------------------------------------
1105
+ Appt::IcalendarParserTest: test_handles_multi-day
1106
+ -------------------------------------------------
1107
+  (0.8ms) ROLLBACK
1108
+  (0.3ms) BEGIN
1109
+ --------------------------------------------------
1110
+ Appt::IcalendarParserTest: test_handles_recurrence
1111
+ --------------------------------------------------
1112
+  (0.3ms) ROLLBACK
1113
+  (0.3ms) BEGIN
1114
+ ------------------------------------------------------
1115
+ Appt::IcalendarParserTest: test_handles_singular_event
1116
+ ------------------------------------------------------
1117
+  (12.1ms) ROLLBACK
1118
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
1119
+  (0.4ms) BEGIN
1120
+ ------------------------------------------------------
1121
+ Appt::IcalendarParserTest: test_handles_singular_event
1122
+ ------------------------------------------------------
1123
+  (0.3ms) ROLLBACK
1124
+  (0.3ms) BEGIN
1125
+ --------------------------------------------------
1126
+ Appt::IcalendarParserTest: test_handles_recurrence
1127
+ --------------------------------------------------
1128
+  (0.5ms) ROLLBACK
1129
+  (0.3ms) BEGIN
1130
+ -----------------------------------------------
1131
+ Appt::IcalendarParserTest: test_handles_all-day
1132
+ -----------------------------------------------
1133
+  (0.3ms) ROLLBACK
1134
+  (0.3ms) BEGIN
1135
+ -------------------------------------------------
1136
+ Appt::IcalendarParserTest: test_handles_multi-day
1137
+ -------------------------------------------------
1138
+  (0.4ms) ROLLBACK
1139
+  (0.4ms) BEGIN
1140
+ --------------------
1141
+ ApptTest: test_truth
1142
+ --------------------
1143
+  (0.3ms) ROLLBACK
1144
+ ActiveRecord::SchemaMigration Load (0.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
1145
+  (0.3ms) BEGIN
1146
+ ----------------------------------------------------
1147
+ Appt::IcalendarExpanderTest: test_handles_recurrence
1148
+ ----------------------------------------------------
1149
+  (0.7ms) ROLLBACK
1150
+  (0.4ms) BEGIN
1151
+ ---------------------------------------------------
1152
+ Appt::IcalendarExpanderTest: test_handles_multi-day
1153
+ ---------------------------------------------------
1154
+  (0.3ms) ROLLBACK
1155
+  (0.2ms) BEGIN
1156
+ --------------------------------------------------------
1157
+ Appt::IcalendarExpanderTest: test_handles_singular_event
1158
+ --------------------------------------------------------
1159
+  (0.3ms) ROLLBACK
1160
+  (0.4ms) BEGIN
1161
+ -------------------------------------------------
1162
+ Appt::IcalendarExpanderTest: test_handles_all-day
1163
+ -------------------------------------------------
1164
+  (0.3ms) ROLLBACK
1165
+  (0.3ms) BEGIN
1166
+ --------------------
1167
+ ApptTest: test_truth
1168
+ --------------------
1169
+  (0.3ms) ROLLBACK
1170
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
1171
+  (0.3ms) BEGIN
1172
+ ---------------------------------------------------
1173
+ Appt::IcalendarExpanderTest: test_handles_multi-day
1174
+ ---------------------------------------------------
1175
+  (0.5ms) ROLLBACK
1176
+  (0.3ms) BEGIN
1177
+ ----------------------------------------------------
1178
+ Appt::IcalendarExpanderTest: test_handles_recurrence
1179
+ ----------------------------------------------------
1180
+  (0.5ms) ROLLBACK
1181
+  (0.3ms) BEGIN
1182
+ -------------------------------------------------
1183
+ Appt::IcalendarExpanderTest: test_handles_all-day
1184
+ -------------------------------------------------
1185
+  (0.3ms) ROLLBACK
1186
+  (0.3ms) BEGIN
1187
+ --------------------------------------------------------
1188
+ Appt::IcalendarExpanderTest: test_handles_singular_event
1189
+ --------------------------------------------------------
1190
+  (0.4ms) ROLLBACK
1191
+  (0.3ms) BEGIN
1192
+ --------------------
1193
+ ApptTest: test_truth
1194
+ --------------------
1195
+  (0.8ms) ROLLBACK
1196
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
1197
+  (0.4ms) BEGIN
1198
+ --------------------
1199
+ ApptTest: test_truth
1200
+ --------------------
1201
+  (0.4ms) ROLLBACK
1202
+  (0.3ms) BEGIN
1203
+ ----------------------------------------------------
1204
+ Appt::IcalendarExpanderTest: test_handles_recurrence
1205
+ ----------------------------------------------------
1206
+  (0.4ms) ROLLBACK
1207
+  (0.3ms) BEGIN
1208
+ -------------------------------------------------
1209
+ Appt::IcalendarExpanderTest: test_handles_all-day
1210
+ -------------------------------------------------
1211
+  (0.3ms) ROLLBACK
1212
+  (0.3ms) BEGIN
1213
+ ---------------------------------------------------
1214
+ Appt::IcalendarExpanderTest: test_handles_multi-day
1215
+ ---------------------------------------------------
1216
+  (0.3ms) ROLLBACK
1217
+  (0.3ms) BEGIN
1218
+ --------------------------------------------------------
1219
+ Appt::IcalendarExpanderTest: test_handles_singular_event
1220
+ --------------------------------------------------------
1221
+  (0.3ms) ROLLBACK
1222
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
1223
+  (0.3ms) BEGIN
1224
+ -------------------------------------------------
1225
+ Appt::IcalendarExpanderTest: test_handles_all-day
1226
+ -------------------------------------------------
1227
+  (0.4ms) ROLLBACK
1228
+  (0.3ms) BEGIN
1229
+ ---------------------------------------------------
1230
+ Appt::IcalendarExpanderTest: test_handles_multi-day
1231
+ ---------------------------------------------------
1232
+  (0.3ms) ROLLBACK
1233
+  (0.4ms) BEGIN
1234
+ ----------------------------------------------------
1235
+ Appt::IcalendarExpanderTest: test_handles_recurrence
1236
+ ----------------------------------------------------
1237
+  (0.6ms) ROLLBACK
1238
+  (0.3ms) BEGIN
1239
+ --------------------------------------------------------
1240
+ Appt::IcalendarExpanderTest: test_handles_singular_event
1241
+ --------------------------------------------------------
1242
+  (0.4ms) ROLLBACK
1243
+  (0.4ms) BEGIN
1244
+ --------------------
1245
+ ApptTest: test_truth
1246
+ --------------------
1247
+  (0.4ms) ROLLBACK
1248
+ ActiveRecord::SchemaMigration Load (1.5ms) SELECT "schema_migrations".* FROM "schema_migrations"
1249
+  (0.4ms) BEGIN
1250
+ --------------------
1251
+ ApptTest: test_truth
1252
+ --------------------
1253
+  (0.3ms) ROLLBACK
1254
+  (0.3ms) BEGIN
1255
+ --------------------------------------------------------
1256
+ Appt::IcalendarExpanderTest: test_handles_singular_event
1257
+ --------------------------------------------------------
1258
+  (0.4ms) ROLLBACK
1259
+  (0.3ms) BEGIN
1260
+ -------------------------------------------------
1261
+ Appt::IcalendarExpanderTest: test_handles_all-day
1262
+ -------------------------------------------------
1263
+  (0.3ms) ROLLBACK
1264
+  (0.3ms) BEGIN
1265
+ ---------------------------------------------------
1266
+ Appt::IcalendarExpanderTest: test_handles_multi-day
1267
+ ---------------------------------------------------
1268
+  (0.3ms) ROLLBACK
1269
+  (1.0ms) BEGIN
1270
+ ----------------------------------------------------
1271
+ Appt::IcalendarExpanderTest: test_handles_recurrence
1272
+ ----------------------------------------------------
1273
+  (0.5ms) ROLLBACK
1274
+ ActiveRecord::SchemaMigration Load (0.7ms) SELECT "schema_migrations".* FROM "schema_migrations"
1275
+  (0.5ms) BEGIN
1276
+ --------------------
1277
+ ApptTest: test_truth
1278
+ --------------------
1279
+  (0.3ms) ROLLBACK
1280
+  (0.2ms) BEGIN
1281
+ -------------------------------------------------
1282
+ Appt::IcalendarExpanderTest: test_handles_all-day
1283
+ -------------------------------------------------
1284
+  (0.3ms) ROLLBACK
1285
+  (0.4ms) BEGIN
1286
+ ---------------------------------------------------
1287
+ Appt::IcalendarExpanderTest: test_handles_multi-day
1288
+ ---------------------------------------------------
1289
+  (0.3ms) ROLLBACK
1290
+  (0.3ms) BEGIN
1291
+ ----------------------------------------------------
1292
+ Appt::IcalendarExpanderTest: test_handles_recurrence
1293
+ ----------------------------------------------------
1294
+  (0.6ms) ROLLBACK
1295
+  (0.3ms) BEGIN
1296
+ --------------------------------------------------------
1297
+ Appt::IcalendarExpanderTest: test_handles_singular_event
1298
+ --------------------------------------------------------
1299
+  (0.4ms) ROLLBACK