ruby-ext 0.2.16 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (616) hide show
  1. data/.git/index +0 -0
  2. data/.git/logs/HEAD +36 -0
  3. data/.git/logs/refs/heads/master +36 -0
  4. data/.git/logs/refs/remotes/origin/master +33 -0
  5. data/.git/objects/00/2395889decffa8e2f966a9db6451ff2a067e4c +2 -0
  6. data/.git/objects/00/783d209bd74ed88bbb205e61efa721be254b3f +0 -0
  7. data/.git/objects/00/e6d4f08f77d9fc0e56caeb27a249f31af0ab82 +0 -0
  8. data/.git/objects/01/61235e67eb14a9abb5799d9650e77e67ff0941 +0 -0
  9. data/.git/objects/01/6b92e94406bee1ac6cde06fc810e40568824b2 +0 -0
  10. data/.git/objects/01/c6f78396141742cf35ae0a956c224caecc485d +0 -0
  11. data/.git/objects/02/65d004380614194aaee78c2560633b592bf8a6 +0 -0
  12. data/.git/objects/02/88cf0d4884e142f8123f06bf4c210c58aa7cdd +0 -0
  13. data/.git/objects/03/674b6e06fb6d27e046b7b4eaeec4e2febf6ebb +0 -0
  14. data/.git/objects/03/c1321c9540ad8118be74a6d11096690f1548d0 +0 -0
  15. data/.git/objects/04/29a67e784d9cec94ef150df604895edb0d2018 +4 -0
  16. data/.git/objects/04/75ecb3debe8e5053ed55d441cdee799e8afee1 +0 -0
  17. data/.git/objects/05/aacf33ae50839effadf2babcfc1f4fd6d08a15 +0 -0
  18. data/.git/objects/06/efb0cc1682bab5eb690049fafa4eeb2f79a720 +0 -0
  19. data/.git/objects/08/c38295129c52a13171ee5c67152ffc3ae88779 +0 -0
  20. data/.git/objects/09/813024ff69db4e52ae4af7dc03c540ca80c448 +0 -0
  21. data/.git/objects/09/c1f25defbf97c1dc012d5ff7217da0900bb49d +0 -0
  22. data/.git/objects/0b/5519c74c16e3cbdbbebc30331399f3e2fc36e6 +0 -0
  23. data/.git/objects/0b/dcfeab6c8984d8e515cf9791143356f85d5aed +0 -0
  24. data/.git/objects/0c/4b7a2d4a0bec764483c81cc8f399f7eacddbd5 +0 -0
  25. data/.git/objects/0c/d5795c41ba574247b9a05816e50b4d01fd0305 +0 -0
  26. data/.git/objects/0d/af478beef086240a99ba1122c38ee9b170a10d +2 -0
  27. data/.git/objects/0d/bc72100165f3fbf8d88f846ed0e703a2a2a9cd +0 -0
  28. data/.git/objects/0e/296af571e4b971c56965d2be4cd563db794100 +0 -0
  29. data/.git/objects/0f/1fd03c9c66b0e2f58202521c1f8d2bb7c53dff +0 -0
  30. data/.git/objects/10/c8ec3898e9083187ccba174895068019b4f040 +2 -0
  31. data/.git/objects/11/0a11503cfc9ed68f9d2f38568557292c932270 +0 -0
  32. data/.git/objects/11/b38272b070023b03dd0696972d34393ba74536 +0 -0
  33. data/.git/objects/11/ff8a1e9de6105099627111e67a98bfeb208193 +0 -0
  34. data/.git/objects/13/1ff84e0d05d761ca379285ea7a1744590da1c1 +2 -0
  35. data/.git/objects/13/20a0b7bb07b70f3e91471b9720bdd5bcc8c472 +0 -0
  36. data/.git/objects/13/29c391135e092a94b368ca45fff11e85c39e96 +0 -0
  37. data/.git/objects/13/b1eb398251029d27a8eb8d402ee7e66875837c +0 -0
  38. data/.git/objects/13/d19faa3555469f790ef0e2a21c539f62cac04b +0 -0
  39. data/.git/objects/14/71a79b1cc8fdc9f952723341b00b112918da00 +0 -0
  40. data/.git/objects/15/31b175045c5c6ac72d0cf12601ea8ecf5ade18 +0 -0
  41. data/.git/objects/15/4906607b72c66c2702e6e63c45e0dcb320c275 +0 -0
  42. data/.git/objects/15/6f06ce1407f4adaabfb82554aaf2b6018afd50 +0 -0
  43. data/.git/objects/16/02b1e190c92777f724dd05b1cb9037ac87d5f8 +0 -0
  44. data/.git/objects/16/128d763653b006473637b027696d77355872a7 +0 -0
  45. data/.git/objects/16/bb5d24f5fd69a6ed0ceba5c0528152b28d94a8 +0 -0
  46. data/.git/objects/18/24d479dd5d75665a0e8035c7a47e87654c6a08 +0 -0
  47. data/.git/objects/18/59e8bb8adc0a1cf0d1735d63a0379d18b93835 +3 -0
  48. data/.git/objects/19/21e3d8b05e3a56117cbf85891f567492e92b39 +0 -0
  49. data/.git/objects/19/951524d55fb896cfc6f44f172033ea19d5aa08 +0 -0
  50. data/.git/objects/19/d2fdc76396cb8661785999ab1ee732d9558c5d +0 -0
  51. data/.git/objects/1a/0c05f9a424f7d10071399b511fe6aa101febbc +0 -0
  52. data/.git/objects/1a/68ed1743d2edd34630f022cccf6afd9fc34af1 +0 -0
  53. data/.git/objects/1a/d7e4f94f9fee3195472491ea40c3fb7dfe16c5 +0 -0
  54. data/.git/objects/1b/ca46c925970a70b46dbddc6041fca2482ef823 +0 -0
  55. data/.git/objects/1c/965138c39db8428557f7391ecfe0fca63502f1 +0 -0
  56. data/.git/objects/1c/fdf496e64ac7ab688c6c8fe9830d02bf5b3f5f +0 -0
  57. data/.git/objects/1d/cf384e74e185fa2b829203355e5282917b5f98 +0 -0
  58. data/.git/objects/1d/eefbc4a9e2de8f572f026089904ce1e2c91491 +2 -0
  59. data/.git/objects/20/5cc137dfb0d30965876f195293976957f79d65 +0 -0
  60. data/.git/objects/20/aec72f1b46da2322a6f6c77ae20be88d48e3c7 +4 -0
  61. data/.git/objects/22/004bda6693173daf8eea9224ae8b9cf76d7e97 +0 -0
  62. data/.git/objects/22/46e31e797496649b8799b3f1314af642f0122b +0 -0
  63. data/.git/objects/22/608165b9efee46360f68989e79e9857e883834 +0 -0
  64. data/.git/objects/22/ada36413c466ed845d411cc4e7c0cfdb5f18b1 +0 -0
  65. data/.git/objects/22/b92c4acb45df858694a9ab184a0ccf544f28cb +0 -0
  66. data/.git/objects/22/e64ac60d9587c20706a6e154a4d7b89fb568bf +0 -0
  67. data/.git/objects/23/885f54b5a082bc24ec62c4b9599fac0b0f179c +2 -0
  68. data/.git/objects/24/08e2735e2a4756aee56584f88ef4f383d214a7 +0 -0
  69. data/.git/objects/24/c0f7b637927b05bfb06ac13e221f59d4bafa9c +0 -0
  70. data/.git/objects/24/d431eba3f275f890bb257498392d0b0649a359 +0 -0
  71. data/.git/objects/25/5d96e353b85d55c41175394e4f99a3eff070ae +0 -0
  72. data/.git/objects/26/480787c05f71fe4544fead943e5648cb18d28e +0 -0
  73. data/.git/objects/26/c4c565f15f40a27250c582eee874799845f6c0 +0 -0
  74. data/.git/objects/27/46f3d9c904c3fa058729c3367ca14d2c259f9a +0 -0
  75. data/.git/objects/27/b2e628b4d1d3f987fefc1b3ba16fcf643f03dd +0 -0
  76. data/.git/objects/27/e56ec8917bb87069501f71537902abe42e994f +3 -0
  77. data/.git/objects/28/5f925dab06d7097ef7954b97a42e676d48ef96 +0 -0
  78. data/.git/objects/29/6c2091e4216ea4a0224eac65b0604e8f23d402 +0 -0
  79. data/.git/objects/29/83ca4cb4b3229723573079c9a7cc9a7e447896 +0 -0
  80. data/.git/objects/2a/1185a3d833a8876061db02236779cdbebc29aa +0 -0
  81. data/.git/objects/2a/2e599c60b30e2d46c17ae38a53441031d64690 +0 -0
  82. data/.git/objects/2a/5d31a3363268dd26fcb8357504bbada90212a4 +0 -0
  83. data/.git/objects/2a/d8aca540b6ffefffda29d9a13327b126914351 +0 -0
  84. data/.git/objects/2b/503e9e8690b5bc4364e51f8e81759cbdc84def +0 -0
  85. data/.git/objects/2b/d08f6aabd811cab4aedb878193b787a72757b8 +0 -0
  86. data/.git/objects/2c/ec937c20d2ad8b71090cbed7a4032dc837780b +0 -0
  87. data/.git/objects/2f/6ddc78c51e75dbbd6b2f34df530c3c7c026dc7 +0 -0
  88. data/.git/objects/2f/d2e4defd7e79c0c934d699cd90172a23b8fc07 +0 -0
  89. data/.git/objects/2f/f274ad8f36d75193f0537e0483da474fce4866 +0 -0
  90. data/.git/objects/2f/f972ca2ff463e86495eaafa63e77fe5a7a16a2 +0 -0
  91. data/.git/objects/30/df06dbb17d66f4f8c13b1c9646b41b279b1376 +0 -0
  92. data/.git/objects/31/6a0e7fbf1b6f23512cfc577940bdaa2e6fdeb6 +0 -0
  93. data/.git/objects/31/89bac6be07ebe9728a9c6e62c55a5f98965226 +0 -0
  94. data/.git/objects/32/647582700acc284c165f2a113736b28a77ff72 +0 -0
  95. data/.git/objects/33/04252c226db20d326993fdd121dd03402d4906 +0 -0
  96. data/.git/objects/34/98fd0067b73453b31c9164524487209dc0e1e6 +1 -0
  97. data/.git/objects/34/dafbffc72f89b92b509449e48da5ab4310ff2f +1 -0
  98. data/.git/objects/35/626d6c352f1a5e9f6749a4c5a4ce60aed28600 +0 -0
  99. data/.git/objects/36/177800b67cf9bb915bc4f4ba9a4b4fd92056cc +1 -0
  100. data/.git/objects/36/53e0d6b1aae1f02af2c2d698b4315c891e2f68 +1 -0
  101. data/.git/objects/36/9ed7f4472a7a569d09988186956afd7c88c1f8 +0 -0
  102. data/.git/objects/36/e54fc97e224630e5f4f3258178a909ff617080 +0 -0
  103. data/.git/objects/36/f4057662f0795571de97ae8377a48c596851f1 +0 -0
  104. data/.git/objects/37/6e70083ab152345d4ae538d69242966c0994c4 +0 -0
  105. data/.git/objects/37/7095c206380fcf736ab4ae96199745057285af +0 -0
  106. data/.git/objects/37/cd592dbceb2694501839c6065524cee16bd2ab +0 -0
  107. data/.git/objects/37/eb4b9671aa4e45483810ba55f3fba92c606618 +0 -0
  108. data/.git/objects/38/299bbcc74f3594f672580bcbe66002e1d58e4c +2 -0
  109. data/.git/objects/38/abd4bf7e081a659a4e783ad2e0c4a72762fc88 +0 -0
  110. data/.git/objects/39/443dda6227c5fd0f08fadb4e9bee475a5aca7d +0 -0
  111. data/.git/objects/39/8020887b76f9dd0789bb032c32703833e691fb +0 -0
  112. data/.git/objects/3a/174d1fefdf90c51ff7eb36834d6a46f2592fa2 +3 -0
  113. data/.git/objects/3a/ea0ed9dad193bcb93b37f2a6f02c92e61b17f9 +2 -0
  114. data/.git/objects/3d/3a9be3f69fb8c1b7aef4437bfc47f347fe9f6b +0 -0
  115. data/.git/objects/3d/8fa720fbf5eddd135fab612536279a64f0ac48 +0 -0
  116. data/.git/objects/3d/954e208978d7996b6f622c1842bd1e47a466e6 +0 -0
  117. data/.git/objects/3e/19b85d49127c7b91cdb61a507aa7f7c0cf4dc7 +0 -0
  118. data/.git/objects/3e/2b9ddb78ac842398b8bb092cd6305dba185d01 +0 -0
  119. data/.git/objects/3f/66c1d1ca300014ab42aa9489fe9d2ff7cbf8fb +0 -0
  120. data/.git/objects/3f/703e030267e729f2f9c3cb7ec2b008b4e9c4b5 +3 -0
  121. data/.git/objects/3f/d056af3e4d56ac85ead91443b3ecfcd6b2fa0c +2 -0
  122. data/.git/objects/3f/da21367599e5caba4a6cba57c1b2f85b1251ed +0 -0
  123. data/.git/objects/40/0d127d8143efa8a0d156124c558d342091b916 +2 -0
  124. data/.git/objects/40/6e1e346c8569903d82c348073e48c3aea0a932 +0 -0
  125. data/.git/objects/40/f8edcdabeec285ae413f69d3cf0649df9eaf38 +0 -0
  126. data/.git/objects/41/6e7fd23311bfbd610d18ae235b69deade7a27d +0 -0
  127. data/.git/objects/41/79f8469ad3d07ad097da200f6a3e05f465afd7 +0 -0
  128. data/.git/objects/41/9ff8f692c7a107cc73d25f2e19e5fad977a4a4 +0 -0
  129. data/.git/objects/41/f8e0203895e7cfd746291e57e9e7a943711761 +0 -0
  130. data/.git/objects/42/26317b0bb7af4768e6c088e7a5a2c286b5dcc7 +0 -0
  131. data/.git/objects/42/6a4fbc3e4a4e757777dbe89e7db29f67f43343 +0 -0
  132. data/.git/objects/42/7ccb78c37e2b50cea65c879047198dcdd6689b +0 -0
  133. data/.git/objects/42/932de361fb9939ac4292c321a8d9b9a7142cd3 +0 -0
  134. data/.git/objects/43/e7a15a14091001b28e2565617da2c2cd22c772 +0 -0
  135. data/.git/objects/44/715cc276e6bb8f1e7a5064bc318d603d0f5197 +0 -0
  136. data/.git/objects/47/eab9c539b21df5ef90ee7b2b55905cf66206fb +3 -0
  137. data/.git/objects/48/d4c36611a846694e2b317482d5cd25bea72879 +0 -0
  138. data/.git/objects/49/81d483e72c44d35bbafdc01ca21226b8cfba6b +0 -0
  139. data/.git/objects/4a/1d9c3e8260c032446bd9a057e1696f1b9a132d +0 -0
  140. data/.git/objects/4b/14e21e771891a7224ec81237f0f9ab53f8037e +0 -0
  141. data/.git/objects/4b/5f03ae737b4ddccee88e19fe01f778192b3278 +0 -0
  142. data/.git/objects/4b/b2eb5b0c2b60af9d14397ed5109dcdf420340e +0 -0
  143. data/.git/objects/4c/4af52f665eefb1d25654a371f7e6d6f4dbafb3 +0 -0
  144. data/.git/objects/4c/7d74b030d3650dff3d92cd5bfeaed8012f9062 +0 -0
  145. data/.git/objects/4c/f44376dde3b2019a85599531be21c7733943ca +0 -0
  146. data/.git/objects/4d/7e667fda6963209113f84594e404354cc582e8 +0 -0
  147. data/.git/objects/4d/9704955df155e2bfd5ac13017b1a3b01ccd6d3 +0 -0
  148. data/.git/objects/4d/a90d051a87ade6d172109cebba451ef76b90f0 +0 -0
  149. data/.git/objects/4e/21425b0845de1de7bd9f7e4ffd22fe28251898 +0 -0
  150. data/.git/objects/4f/99473eac64408d4d6709502ba8039304214d6c +0 -0
  151. data/.git/objects/4f/a066bf0a5599a8c04fbc240585a4e9716b9b5a +0 -0
  152. data/.git/objects/50/4efb663b698b26f3f044f4104d765c67133b15 +0 -0
  153. data/.git/objects/50/9ed21cbf85f55529619386471bba93e33da0bb +0 -0
  154. data/.git/objects/50/b6f2b0538eb1f31cc7aa3b29c195ba240e4637 +0 -0
  155. data/.git/objects/50/e4e4d6346229f05230a0e45599592a0787e714 +0 -0
  156. data/.git/objects/51/74e5d98750d1e3d7a4f8975740f195a3e2a27e +0 -0
  157. data/.git/objects/51/cdd46a3cc31fd350d00e6308dc45170fc791cb +0 -0
  158. data/.git/objects/52/60eb6439791d94f701893589dea79d4b50ccb7 +0 -0
  159. data/.git/objects/52/77d84ef7a006d1b4010d5af312fd60a2b6b602 +0 -0
  160. data/.git/objects/53/266f4e50d068848d24bb34440be7f6743b5c4b +0 -0
  161. data/.git/objects/53/431e1487c092e9a3ce9fca540279fa066470c8 +0 -0
  162. data/.git/objects/53/e9aa232e38e27dc1abd0359d81bd987184dcb3 +0 -0
  163. data/.git/objects/53/f93583e2d0aacf6851202f3134b78558178fd2 +0 -0
  164. data/.git/objects/54/5e89999b8afe2212bc1e7c19474ef4c7c43f59 +0 -0
  165. data/.git/objects/55/e3bc6fa8cc93f73c18d5d1e9e6fd618ef3ac76 +0 -0
  166. data/.git/objects/56/5ccaaab0b368dde5c76d1bafe626dc1e59070f +0 -0
  167. data/.git/objects/57/376202dbbcdd513e0db5588a577a6aee50a9fc +0 -0
  168. data/.git/objects/57/a44ff03d32887503db58f17f7741346713b3e2 +0 -0
  169. data/.git/objects/57/e7d31d34637a1d876ed5276a658e5a23716f30 +0 -0
  170. data/.git/objects/58/0f333667fb854facba0d4f239fca57f9d9f653 +0 -0
  171. data/.git/objects/59/39e265e8a76bda368fa4164eb9e7a552789cf2 +2 -0
  172. data/.git/objects/59/8b67f4d802b2efe9a92362ee37cf144d1d9faf +0 -0
  173. data/.git/objects/5b/07e74a5e0c6da543b53be0d3b05516ce3941fd +0 -0
  174. data/.git/objects/5b/18a3b14623f9440cf82c7efe1b5cde6af597d7 +0 -0
  175. data/.git/objects/5c/ebd3382a5f7f19a0659cb39dbcea9ad88ba1c2 +0 -0
  176. data/.git/objects/5d/4ae7c60a4cc1d3e2a6d282f235a1e9096f0bfe +0 -0
  177. data/.git/objects/5d/64bbca2c6c2e2aff30527ec4674061fa53fde0 +0 -0
  178. data/.git/objects/5d/d46ad92a7f9d81da7435bc5c83aec86c1be948 +0 -0
  179. data/.git/objects/5d/e88423ea237716e86b9bd27db09a569b0fc20f +0 -0
  180. data/.git/objects/5d/e8f2a6d724595ebbc29008a2edb6cce473918d +0 -0
  181. data/.git/objects/5e/62a3357c8e74a7904d7e706efb6b8fe63357a7 +0 -0
  182. data/.git/objects/60/cdc9a04b2b9e08289f23796ce482d798e2db92 +0 -0
  183. data/.git/objects/61/3424f453546d8a1f8fc2b0be1c4c95ff53ecb7 +0 -0
  184. data/.git/objects/63/00ee0a2a016d6b0794048aff55d3433be039c4 +0 -0
  185. data/.git/objects/63/6e394aa325e47db0eed342bf2e12aa399c3098 +2 -0
  186. data/.git/objects/63/ebf3d1a2749e3f057a1072f06eaa930bf5ad75 +0 -0
  187. data/.git/objects/64/5b3c75e715ddbb661f801c06b3adabf6a3e066 +0 -0
  188. data/.git/objects/64/dfc70de62efd6ea7541be7b5a36bacb1198fa0 +0 -0
  189. data/.git/objects/65/a0fb1b9e455b2b2cba0e8731de87280ac8aa22 +3 -0
  190. data/.git/objects/65/ba9692cf1899a03942d1b02d5c93e33821974d +0 -0
  191. data/.git/objects/66/b7e33bcc5622621035bff8a82bc171d664982f +0 -0
  192. data/.git/objects/67/00a716ad87fe78ead9713be45f5e0b1266cc21 +0 -0
  193. data/.git/objects/67/ce97268fbb33b735f807dde1a8efd1501c030e +3 -0
  194. data/.git/objects/67/df417008b64d7d72b6163ba474761aa6a17380 +0 -0
  195. data/.git/objects/69/2dccf75e84c9794b9797aaccd6320c6ea0ba37 +0 -0
  196. data/.git/objects/69/7d992ebcebbc881951b38eb500672675c5e7f8 +0 -0
  197. data/.git/objects/6a/a0dc813d71bb8347c94db948bf2aabd2c1f790 +0 -0
  198. data/.git/objects/6b/295f9cd0ff1efdd429d871c64209a5544cec7c +0 -0
  199. data/.git/objects/6b/86b6c9798979d6226bcaed7e873ac1afaad209 +0 -0
  200. data/.git/objects/6c/170abbcd3a502a378baf97bda2fa1e707c020d +0 -0
  201. data/.git/objects/6c/92bc7f0be37bc7f4a566ac14ee870a82a409d9 +0 -0
  202. data/.git/objects/6c/99771605f20f2378447e65628b05a84756545c +0 -0
  203. data/.git/objects/6c/a688550c1244cd6948f4a1c40deaa3b86cacd5 +0 -0
  204. data/.git/objects/6e/3f8cb98de3f9d1512044a7daa76f7d19e84f57 +0 -0
  205. data/.git/objects/6f/21816af73d7f191bc6eb9717410fe617e7bcfa +0 -0
  206. data/.git/objects/6f/407981eb856f527e3caeda4809ac7afc7e830f +0 -0
  207. data/.git/objects/6f/60f0227a959183eed086ad16d79046084a9776 +2 -0
  208. data/.git/objects/6f/e0bb96c78fd55fb4f3b358b42c667e153d10f6 +0 -0
  209. data/.git/objects/6f/e7881e6f0825bcb1f1d6de177800a2ef5b9b51 +0 -0
  210. data/.git/objects/70/c7e15fa85f591d6d8889b0f2b2844b95053ad1 +0 -0
  211. data/.git/objects/70/f2390dc75f65e3cf9362ab3010a9325b29d5d8 +0 -0
  212. data/.git/objects/71/11f95beb0111cec9893e69671dccae58edf2bc +0 -0
  213. data/.git/objects/71/3459b19870171e76cbc28d03fa18581c85325a +0 -0
  214. data/.git/objects/71/3e733cc5591ada03111aed97f6fc14e1932710 +0 -0
  215. data/.git/objects/71/4b0bd487c6ca2b251788e7534c5819bbc33412 +0 -0
  216. data/.git/objects/73/8c6a50e47be1e016fb14e2bb52d86c898e83a6 +1 -0
  217. data/.git/objects/75/320c6ecfa5be14e781e1b6ad2cd7d11b01c478 +0 -0
  218. data/.git/objects/75/90312a8b03581357866e73fa1054e056fb5462 +0 -0
  219. data/.git/objects/76/17d2a15c06e8fbf937cb47808ee5ceac6b5b2d +0 -0
  220. data/.git/objects/76/e7244dc60d80236145f7812c55f5d39cde3e7f +0 -0
  221. data/.git/objects/76/f7c6537295f713e4329fc66a2a63ce6e6ef72f +0 -0
  222. data/.git/objects/77/8e5e76c4ec22c489f12397d3b6ccde3349e07e +0 -0
  223. data/.git/objects/78/53a4c9e6ad7bd44cdd3fb1a6ed8cd2573adc9e +0 -0
  224. data/.git/objects/78/78c54fbccbe5c0e50e7a36ee6fa312193a024a +0 -0
  225. data/.git/objects/78/7be253e082c7109e7a8c808cd41fba1b3bf5a1 +0 -0
  226. data/.git/objects/78/97c1eeca4d2195c88c7c84ce96d3da7d13e562 +0 -0
  227. data/.git/objects/78/a8376298347629997530845ee1833f0fa5e6f4 +2 -0
  228. data/.git/objects/79/305ea902691c2cbf364486e4127f14846cebc9 +0 -0
  229. data/.git/objects/79/5e70e003f8503fb7a9c44f1c238288e1e4c3a7 +0 -0
  230. data/.git/objects/79/aae79039ff078fd48577bfca8fe531a8cad34a +0 -0
  231. data/.git/objects/7a/1d4924a53eec1daf12f305e689a71362a2752e +0 -0
  232. data/.git/objects/7b/0f7e086863f46eb752bd84e3c65b2fdd450e69 +0 -0
  233. data/.git/objects/7b/3ece1f51ecab91d56ebc756ca8a12683be4c28 +0 -0
  234. data/.git/objects/7b/8a8a6d109dc02f0157c8b057197084c1e31ae3 +2 -0
  235. data/.git/objects/7b/a8ad9999a890a0717d80d29151ca0ea6b7d911 +0 -0
  236. data/.git/objects/7b/ffce55d6b304f39415478d5964f7690b155094 +0 -0
  237. data/.git/objects/7c/1c5c24874f7408d7fc8e6487ae2ca8f8c4dc46 +0 -0
  238. data/.git/objects/7c/d89e5386c46610a9874e4c91ad564df3d30d22 +0 -0
  239. data/.git/objects/7e/1bb64631912de70ca18a342bd366a0761f7027 +3 -0
  240. data/.git/objects/7e/69f5cdac8d896357c005cf50f7fef9365ac5b7 +0 -0
  241. data/.git/objects/7e/9ed5afec22056a1d62b2ac620fc568726654dd +0 -0
  242. data/.git/objects/80/a1777bd32df0d8168596e67764bea543e364b6 +0 -0
  243. data/.git/objects/81/6b4d885daad51e09fe28f6fd15641a9f59a69a +0 -0
  244. data/.git/objects/83/126f3a04822d71b0b0e73654da341545ae9bce +0 -0
  245. data/.git/objects/83/4e09ad5a2489d3f0a3e87dbbd3597a1edffd5b +0 -0
  246. data/.git/objects/84/49fd043cf7a34eeb2c7f32a704143d48352b3a +0 -0
  247. data/.git/objects/84/70d095caf8bfac04f3e55c68cc894ec400aa7c +1 -0
  248. data/.git/objects/85/c92dd2c409f8f9c122e210c61382abdff455fb +0 -0
  249. data/.git/objects/86/9f87619de0aa96c1e07d6f78e0ee813158d0b6 +0 -0
  250. data/.git/objects/87/635d93bcdbafec9c80137643eb532cf983d6cb +0 -0
  251. data/.git/objects/88/1e5e54da73d7732f40ec61bcbcc40dfdfa6a32 +0 -0
  252. data/.git/objects/88/323db633ec2dcb8c8aa69e7b057811c518aa2e +0 -0
  253. data/.git/objects/88/777e3e8f9b98245b6ac25b35867968fa35de9b +0 -0
  254. data/.git/objects/89/2b4e8c0e692c60352e42e58c561f9260cf64f3 +0 -0
  255. data/.git/objects/8a/0cb85400031c1ca6586278360277b0eedd9b17 +4 -0
  256. data/.git/objects/8a/3ad66a857a353ec8731e137a7e8d084e311342 +0 -0
  257. data/.git/objects/8a/785b8373e204bddcb5b81dbef9e51bc03c50c8 +0 -0
  258. data/.git/objects/8a/c1a112440be65dbf997d0a4672256a22de26a4 +0 -0
  259. data/.git/objects/8b/04c172bd5eb0dc99e90171cc198f66d001c036 +3 -0
  260. data/.git/objects/8b/5d65b4902079ad03086e9df352e09e02811ba1 +0 -0
  261. data/.git/objects/8b/863d5cf4d837ea12203c7acce48e53722a8a98 +0 -0
  262. data/.git/objects/8b/d24176c9898f97a9fdcc5dff5d2247e1a84ec9 +0 -0
  263. data/.git/objects/8c/1b8b280ab3f2a7d75df63cf9c427328824960e +0 -0
  264. data/.git/objects/8c/828a466da87606833098e4e25cd15bffda090a +2 -0
  265. data/.git/objects/8d/6ff005fd51f6b3fd01378fb2c5b7648d1c216a +0 -0
  266. data/.git/objects/8d/79a728f42fca3b5439dccbd37cfa697d73dcec +0 -0
  267. data/.git/objects/8d/c03482a05fa309478eef762bb66875d215839d +4 -0
  268. data/.git/objects/8e/3765090e2352071d06dae581444322c5cd1c7f +0 -0
  269. data/.git/objects/90/359907f370a92516fc2324278c19fae8ee7d10 +0 -0
  270. data/.git/objects/91/1236dbd46fca67a4dfe398ba57a00a0d52ba87 +0 -0
  271. data/.git/objects/91/c98e89dad41640efcd127dd48c4f1e7a4b8a3d +0 -0
  272. data/.git/objects/92/9662b659f468e6a33942bad2bd18542e23c01f +0 -0
  273. data/.git/objects/93/f4b074b8b8487dea84b3e99f5a21d2f8fd8184 +0 -0
  274. data/.git/objects/94/1b2b78eec40959dc4dd2d17daef5928d083ced +0 -0
  275. data/.git/objects/95/a584fd118d43b5c6ab1fc39a0586f347bee687 +0 -0
  276. data/.git/objects/95/cde2fb622eb202b29721023e6841c4c2399333 +0 -0
  277. data/.git/objects/95/fa926b7fc9fac39ddeb63b00e3d5ada24587c6 +0 -0
  278. data/.git/objects/96/1b951bf21ae5bed28243e0caa0622985542ead +0 -0
  279. data/.git/objects/97/5b2d0c76a62a72bf6dbcbc5d9697a7602290b9 +0 -0
  280. data/.git/objects/97/aa57c81d9d531ba527a7d0e70751dc6e8c64f6 +0 -0
  281. data/.git/objects/97/b957c129ad40aa10e5571a63cb0ae8b481d941 +2 -0
  282. data/.git/objects/98/e552050c08e3b9603bb7427359a75cea3e353f +0 -0
  283. data/.git/objects/99/bd3a9fa19a7fdf5fc8c44a468af2f4bc077b76 +2 -0
  284. data/.git/objects/9a/ac55335e524ec8863e943ae7428fbf996c3304 +0 -0
  285. data/.git/objects/9b/062274d3658d30d62021967bebc0c6856934e6 +0 -0
  286. data/.git/objects/9b/2203d14e86a098f2c2ecef381ec59faec420cb +0 -0
  287. data/.git/objects/9b/636f6bfa8b4e8192115f52113443cf98447c88 +0 -0
  288. data/.git/objects/9b/73f7f56a1a84958578739f4be3c096d5924d74 +0 -0
  289. data/.git/objects/9c/3099d7d6ebf96b0be74f827cb0b10e3b87b672 +2 -0
  290. data/.git/objects/9c/9c0ee371afd3b0eb68f7d0226b599f08bcd482 +2 -0
  291. data/.git/objects/9d/13d10d00768f911caa8c8ca04dffa439ecf4ea +0 -0
  292. data/.git/objects/9d/e7071bd41dffb92bba3f9f86a721630fdc1aa9 +0 -0
  293. data/.git/objects/9e/3a9aec41ae84e3c06f7e4722552a0044b465b5 +0 -0
  294. data/.git/objects/9e/8afbc28b44770ae370c8b862e7aa23d7c50677 +0 -0
  295. data/.git/objects/9e/9b707e1b45892f331aab711e41cf180946eeb7 +0 -0
  296. data/.git/objects/9f/3e38fa0ab2f318dccf60deff7faa1627d786ff +0 -0
  297. data/.git/objects/9f/68c404894f1889d63149f7208fecde6a954ca6 +0 -0
  298. data/.git/objects/9f/702d060f867a0e718c358dd038cf0138aaac6a +0 -0
  299. data/.git/objects/a0/b3b3b57939fefb926ebc47cc54ce62cbdd4090 +0 -0
  300. data/.git/objects/a0/df06324014b1304ac19478e99f433d7b4418aa +0 -0
  301. data/.git/objects/a2/43f3f2f12cc3d49ba6e8a18d6b697a65e8f126 +0 -0
  302. data/.git/objects/a2/62095bd0baf1e49e213fce6ec0a0de56d853e3 +0 -0
  303. data/.git/objects/a2/856190ff943f0775766fca13349df397fa52c6 +0 -0
  304. data/.git/objects/a3/7350e946973d70cf427f9f7c3d6f6aad4c55eb +0 -0
  305. data/.git/objects/a4/e004d28e7d33b475a9103be6882829ebd2d6a3 +4 -0
  306. data/.git/objects/a6/1888b288c5e7af5c53b294d483d9070c0a7d3e +0 -0
  307. data/.git/objects/a6/94bca7ceec06c9bb79b9829071a489e9d4ebb8 +0 -0
  308. data/.git/objects/a6/a2cbb1fac2eaf774002042924b0712b26ae652 +3 -0
  309. data/.git/objects/a7/25e954ee21dca54e9f8d9b5417b3cd99ba886c +0 -0
  310. data/.git/objects/a7/87d79b2e97da0f5eb758ff025baaf511781046 +0 -0
  311. data/.git/objects/a8/b25cad8d209156ca2db13ea5bee20a2b3a05e6 +0 -0
  312. data/.git/objects/a8/dc0cd466b7c34722d897f4974c110bef836980 +0 -0
  313. data/.git/objects/a9/211499bcaf3f4fd7e2290cac12198f642d1282 +0 -0
  314. data/.git/objects/aa/6f08c49793188be786702d438987bad805766d +0 -0
  315. data/.git/objects/ab/010a868506a2d0a69bd0aed8d065d15baa69c9 +0 -0
  316. data/.git/objects/ab/c39534f0c26d68e3de8c97e34122669f18a09e +0 -0
  317. data/.git/objects/ac/2902dd65c3d61288402922a7efde1de10dd633 +0 -0
  318. data/.git/objects/ac/9c7cc8840a7cd6077296f7be3d7fb52d4466b6 +0 -0
  319. data/.git/objects/ad/413b9cae01a468afd60b971fc3d6ae86bb9361 +0 -0
  320. data/.git/objects/ae/249122582a305d1794dce9d6f6a049824b5308 +0 -0
  321. data/.git/objects/ae/ea27d8df3a106ef0525148b580a3948fef74dd +6 -0
  322. data/.git/objects/af/d8cdab71ffcf621e96e6fff93fc5ca45625127 +0 -0
  323. data/.git/objects/b0/29e153cf5218a7255551bdca19bb79feb17ea9 +0 -0
  324. data/.git/objects/b0/47fd6101725533a0fabc4b7199cfb73bc5bf9a +0 -0
  325. data/.git/objects/b0/82d678ee011d561d198665e7359ca406773159 +0 -0
  326. data/.git/objects/b0/a31881666ce8acca54c8d632bb553be1d91757 +0 -0
  327. data/.git/objects/b1/04d93a36e9f312d7b2351e5fb94eb016156f99 +0 -0
  328. data/.git/objects/b1/85f51014fec1b6c70726d4307663c924355114 +0 -0
  329. data/.git/objects/b2/84b25c437df91c282dc4820df09c4570d723ce +0 -0
  330. data/.git/objects/b2/a575826207db2d4b9d94723c1c3087f867f7e4 +0 -0
  331. data/.git/objects/b2/b137e3ca23c380a7f60fcb7bd28fe04f9441f5 +0 -0
  332. data/.git/objects/b2/f4ea4f1e671744ff14ffd56bd7d292c695d696 +3 -0
  333. data/.git/objects/b3/1de97d5075672602cb5c9fae6e95d940aaba36 +6 -0
  334. data/.git/objects/b3/35c376699feacea207abd0475cdc68b48747ee +0 -0
  335. data/.git/objects/b3/5dfc774dcf7ec444e19c9b6cc764ea5f41900c +0 -0
  336. data/.git/objects/b4/79d5a9bd49b1b8c32808f941ce65debee36139 +0 -0
  337. data/.git/objects/b4/cfb29ab1c73413ed6a6417b66a2eaae7bdf7e0 +0 -0
  338. data/.git/objects/b5/9adfc4a11c54d5f4398233e53d08267fef9b80 +0 -0
  339. data/.git/objects/b5/9d9d3446193a9692a8cccd8f562d9cf60ecaa7 +4 -0
  340. data/.git/objects/b5/b4c46e35b44660b2b93b3ef0155ecb1746a082 +0 -0
  341. data/.git/objects/b5/c8fa5ae84d212dfc0c64785882ec4cb20d85c9 +0 -0
  342. data/.git/objects/b6/dcaf42f3d422c3a8a1e0b2c18608de160548a8 +0 -0
  343. data/.git/objects/b8/1c8fa62133022e0a834c55b5815cf9cbdb9202 +0 -0
  344. data/.git/objects/b8/2384758cf98411f830df689943c0fbd674e022 +5 -0
  345. data/.git/objects/b8/a1758c0c10af63c7323e2373ac423252b99a93 +0 -0
  346. data/.git/objects/b8/b8c64cb25842612e714f22a8139cd44c65c926 +0 -0
  347. data/.git/objects/b8/ebebbca06dcb68c14ca429874b485ddf03ee27 +0 -0
  348. data/.git/objects/b9/7f88a23d0f792feefba8b5fc1e4df63b6620c8 +0 -0
  349. data/.git/objects/b9/954e8e721374701fdb776954c2f2f93a5edbe9 +0 -0
  350. data/.git/objects/b9/966ce383e367fe9b12c77ba678c4bfdc76a959 +0 -0
  351. data/.git/objects/b9/bb5e2c33bf4a5642838c20a2e35f22c40297c6 +0 -0
  352. data/.git/objects/b9/e726d4140a7131cee69472f6590c137f8521af +0 -0
  353. data/.git/objects/ba/2b4a2bc320220004708b81fc8cccef29e03fc4 +0 -0
  354. data/.git/objects/bb/2aac79cb6a0eb6566c8455bd12300d27d3343d +0 -0
  355. data/.git/objects/bb/73bf8f42ede6e354de9a590b930338f5570fa0 +1 -0
  356. data/.git/objects/bb/ae9af7f60461e20dd2d7a0f108104d9f160412 +3 -0
  357. data/.git/objects/bc/885cb5cf50501f14126dc532e6d09ac00b2238 +0 -0
  358. data/.git/objects/bc/c11e8a013ffd39fa6ed6b8bc9512bb83f67df9 +0 -0
  359. data/.git/objects/bd/efe7403bd68a2da2f387c722ff3b9ee5328523 +0 -0
  360. data/.git/objects/be/ff3b42a8ca5d75e07df86e2c17d871c1e68826 +0 -0
  361. data/.git/objects/bf/b002912c8378aa78cb0adcf50074b32bcf5ae3 +0 -0
  362. data/.git/objects/c0/9c0fbc504f6df8b9640b7d4ff87346e3144845 +0 -0
  363. data/.git/objects/c1/a3547a81cefabc98a12b5b5a50b0feae011c69 +0 -0
  364. data/.git/objects/c3/4066a76f249ccaa43fbaecb1eb557480cc3378 +0 -0
  365. data/.git/objects/c3/74191e5a1eba2d800dbf9b2c83973c6b51d713 +0 -0
  366. data/.git/objects/c3/d1e150f420d1a01ce6e2bd861934eee5e94026 +0 -0
  367. data/.git/objects/c4/7a9879b833c21e532db1b58e95e5467e418b35 +0 -0
  368. data/.git/objects/c5/57132215876f38688a4c181fe40bdd246f4c1c +0 -0
  369. data/.git/objects/c6/4f6c806b8dbd41d3db37dbbf0f6600d8f5fae3 +3 -0
  370. data/.git/objects/c6/6303e15cd2d9c32bb447bf5f7b603d726dbfc7 +0 -0
  371. data/.git/objects/c7/483a0bb0699fd9d7cfd319c0266e581f5ce915 +0 -0
  372. data/.git/objects/c7/97e471479581d0fb3be317565183cbc5f1dd5d +0 -0
  373. data/.git/objects/c8/998112ed02a9647e3938e496febdf6605ece5e +0 -0
  374. data/.git/objects/c9/eaadd36cfea47bc439959d677ae21edeab142b +0 -0
  375. data/.git/objects/ca/6d8694fa3ed50d8cd8a38b9cf034167b44e597 +0 -0
  376. data/.git/objects/cb/1329c9ec4f9e51b29f236e0e9474d986bb3da7 +0 -0
  377. data/.git/objects/cb/7c0924f9e118b2806fab38f360b7685b465289 +1 -0
  378. data/.git/objects/cb/7fbb34dc56f3d07ae17391753db4f75f19a798 +0 -0
  379. data/.git/objects/cc/63e2856effb0a8a3c6cc9fd6839be6a7b9f3a4 +0 -0
  380. data/.git/objects/cc/b7df65a08df09b5b8adce9042199d751291a94 +0 -0
  381. data/.git/objects/cd/515200225510faaa04d81008b9f43d43bd60b3 +0 -0
  382. data/.git/objects/cd/5fd0305fa6131307234aea7b47fabeddf4aaf7 +0 -0
  383. data/.git/objects/cd/9e2a04080e436522950a71722d82550113ae1e +0 -0
  384. data/.git/objects/cd/e7bd86b12df36ae8cfe3dda9f608bf494e728c +0 -0
  385. data/.git/objects/ce/34be5fc9a6c41074cc56d402931012c398ff04 +0 -0
  386. data/.git/objects/ce/d6d56c23c5d7e06f538b7a4facf45c989d86b2 +3 -0
  387. data/.git/objects/cf/76a1188f82bb08c37abc06091fdbbebeeb9718 +0 -0
  388. data/.git/objects/cf/dfef5517c784da0b43b881c567cf85370f5979 +0 -0
  389. data/.git/objects/cf/e213d32cc616dc681957a269828aa847bf5242 +4 -0
  390. data/.git/objects/d0/1b3a5d03d70a2cc152642b2917f1d80d197bd4 +0 -0
  391. data/.git/objects/d1/5b22644cd247fd073934b6133cc2bffd9fb5b5 +0 -0
  392. data/.git/objects/d1/f46a55e35c123dc75764ab31de10714bd04b1a +0 -0
  393. data/.git/objects/d2/c114c21fae06454fde660baed5d9c671e50333 +1 -0
  394. data/.git/objects/d3/6003f5eefacad8e83eb14cf84f262cb77025df +0 -0
  395. data/.git/objects/d4/716809130d42c7bef1a68aba435efcb89c4d98 +0 -0
  396. data/.git/objects/d5/b9bda062c482d8822a6ea3033f762c935e029a +0 -0
  397. data/.git/objects/d5/ca249aafdd9154263a71e910b5c622051f3b48 +0 -0
  398. data/.git/objects/d5/fab06efb5db0085e6e234a51a4793f18456572 +0 -0
  399. data/.git/objects/d6/b59131dead2efe6abc09b6cbf862b475573002 +0 -0
  400. data/.git/objects/da/1616e10e98c3f674c7b0883f1dc83ccaa2409b +0 -0
  401. data/.git/objects/db/0518a528f909980f135e069ab7bf114172bcaa +0 -0
  402. data/.git/objects/db/10ee359e46839c8c50b144adb968411046ad8d +0 -0
  403. data/.git/objects/db/3f2e650ed4862a0d41d02c6d36cd9b7f8834db +0 -0
  404. data/.git/objects/dd/53408884587bf078c70a4a14938fd9f305ea5e +0 -0
  405. data/.git/objects/dd/cfadc42bc18f6db186bfa8a1fc836c3fbbd4e8 +0 -0
  406. data/.git/objects/de/9b93fbe6acfad3b84c70e2a8b5a70b05690010 +0 -0
  407. data/.git/objects/de/ca26d2d1028d55f91623e81de3cc3466535f7d +0 -0
  408. data/.git/objects/df/116edf599e20eb744bcfe2abb2e341833c69af +0 -0
  409. data/.git/objects/e1/92debcc9cae10cb30ee20a4aa8704f00342a3a +0 -0
  410. data/.git/objects/e2/544e4579913a6b3aa2dbf2d9f109995e18c96e +0 -0
  411. data/.git/objects/e2/aeb737ec84f4242760bc415920699dc762404c +0 -0
  412. data/.git/objects/e2/fe6c652adafe350def706d7cdd94a5d8716e74 +2 -0
  413. data/.git/objects/e3/1b4da66505b8f78677ebe06c3db70b76083b0c +0 -0
  414. data/.git/objects/e3/650119a24537d22bf2bc1be4b90639bd2bee64 +0 -0
  415. data/.git/objects/e4/75098073c2c1b0fe03ef6c5e47b7eeb500ead0 +3 -0
  416. data/.git/objects/e4/833c84dbd110a660a04b1d30645cb2ff1cbffa +0 -0
  417. data/.git/objects/e4/bc2d37489ab33d7eb424068a4913bcae58488c +0 -0
  418. data/.git/objects/e5/160ab2e9f179c0558cae26a8650e3a7e7d2405 +0 -0
  419. data/.git/objects/e5/8944a7e9eec75020add195ae9a499c730ae4a5 +0 -0
  420. data/.git/objects/e5/c992394b0dd46eeaa81c43541135b8edc17937 +0 -0
  421. data/.git/objects/e6/3de9614877cf35a7f8c274dfb421cca3cdfb40 +0 -0
  422. data/.git/objects/e6/aac3b5ac998c4d7e17be35880b17abcf7542b0 +0 -0
  423. data/.git/objects/e6/f109b20ad9e989bd2ac1707a18061b35b62979 +0 -0
  424. data/.git/objects/e6/f2bb505d646d0a591b0c1585963dfa35bf73d2 +0 -0
  425. data/.git/objects/e6/fbe17ed585b0c1b887082104881b27b15c29e3 +2 -0
  426. data/.git/objects/e7/10843512f110ea8d2613c56381889b6a324e39 +0 -0
  427. data/.git/objects/e7/c2c34b04ad1d3901a7bc86ecf265d019dab705 +0 -0
  428. data/.git/objects/e8/9a2307dcbbff16a025de59b3bf26788cb23d09 +3 -0
  429. data/.git/objects/e8/c0bc7345708838fc9393a332e989a38a968d06 +0 -0
  430. data/.git/objects/ea/3941bdb32e8cb84043fc7af6b3231341325e2d +0 -0
  431. data/.git/objects/ea/d37982817997bbb8c8e8fffb4b7e98df0cf457 +0 -0
  432. data/.git/objects/ea/e0da3444fa6573864bfb7e48e9f6ba125869af +0 -0
  433. data/.git/objects/eb/153d0314b641c49d80f6dfbaf1cdc0dc8259ce +0 -0
  434. data/.git/objects/eb/9313d1f8f551d37baa1a7bad6d689a2d83f6e9 +0 -0
  435. data/.git/objects/ed/94fadd714587bb0fe351681a34372b419d0ff9 +0 -0
  436. data/.git/objects/ed/cd5f42804a33f5fb22bfa43ef1c47c9440251d +0 -0
  437. data/.git/objects/ed/ee148af9b450bc8590c372ae1ca4424fc143b7 +0 -0
  438. data/.git/objects/ed/f2eda0b5c0089e6e2c8fe1bdd839e994f8594a +0 -0
  439. data/.git/objects/ef/62ee17df4ecb637c6f13cd54aefb924eec53dc +0 -0
  440. data/.git/objects/ef/e3f3d6f4109a3548bc90e15d094d3530da5730 +0 -0
  441. data/.git/objects/f0/90346105855825e330ac497dae8d209e4570ce +0 -0
  442. data/.git/objects/f0/bd94709ad1de79406a72434884f4db615fdc43 +0 -0
  443. data/.git/objects/f0/be10fac5f4b2aed38ccd798df8d39e69e0a11b +0 -0
  444. data/.git/objects/f1/0f7f014de23ae992772585aea2be73895e651e +0 -0
  445. data/.git/objects/f1/4ea6e4fda79975aaa557562b76d7fd19066545 +0 -0
  446. data/.git/objects/f1/de5765db125e7aec2efaf7bb88e8ab4c1e6c77 +0 -0
  447. data/.git/objects/f1/f3ed0c35c329be28b20ea049b27f521867f3f5 +0 -0
  448. data/.git/objects/f2/e7a1aa43e1b62a11f49bede698eadb400695fd +0 -0
  449. data/.git/objects/f2/eb800dc21014ab10c68de7944dabdd4ae757f6 +0 -0
  450. data/.git/objects/f3/4c438428d2157177a3b3ee56d74fb8fa04727b +0 -0
  451. data/.git/objects/f4/9bea33da8b585c3b154be37a1a34520d275ce1 +0 -0
  452. data/.git/objects/f4/b0e30205ce1070a1cb715688e57312a0db0dfd +0 -0
  453. data/.git/objects/f4/b80886a90899ff86d844fd56e3bbf925664b19 +5 -0
  454. data/.git/objects/f5/1d1d64a22609cdeea03d5a2029a1c8fdf33317 +0 -0
  455. data/.git/objects/f5/7a5c8702ddaf9365b8a464d1f2ba30ba39682f +0 -0
  456. data/.git/objects/f6/07258715a85337f25171ca7ccc5eda10c4f4e4 +0 -0
  457. data/.git/objects/f7/623557748a510a7bc20a609dc24e71292a568f +0 -0
  458. data/.git/objects/f7/6da87c06061278e529eeb4d102f15af684e912 +0 -0
  459. data/.git/objects/f8/b613e7c2c2e8a40f95a568f28ad45927ceafc3 +0 -0
  460. data/.git/objects/fa/d2dc0d2e9eeafbfe4885ee062a134e633c0fda +0 -0
  461. data/.git/objects/fb/459110cdbd4084743451394a8bf4c90791d724 +0 -0
  462. data/.git/objects/fb/92a236a378b1216ae18b4c35cc4b26333a81bb +0 -0
  463. data/.git/objects/fb/dcc9a131a7386c62d92b7fb00492108ff87223 +0 -0
  464. data/.git/objects/fc/2bd57e5586210bc0906acd8aa1c19c22ad540a +0 -0
  465. data/.git/objects/fc/46a539285ca9be06d78d006fc3a2c7d56f5af6 +0 -0
  466. data/.git/objects/fc/5b6d94dedb958442689e3ebd17ac4bb40f6687 +0 -0
  467. data/.git/objects/fc/ca0d2385304e5e3649eaf1ef23737a03ac4313 +0 -0
  468. data/.git/objects/fe/32d1a12b7456f9424fb35c2937256d7bdd5e35 +0 -0
  469. data/.git/objects/fe/c5b7f532cd2e9f8e24e396a650e54fc0e572f9 +0 -0
  470. data/.git/objects/ff/16e24cd63fd0cd6109d7ce8ba8dfd8d395e950 +0 -0
  471. data/.git/objects/ff/473ca839d45f670c8a0f066f8463502e2324f5 +0 -0
  472. data/.git/objects/ff/c0240ab4c1bb4960f6927119f628d9524f12f3 +0 -0
  473. data/.git/refs/heads/master +1 -1
  474. data/.git/refs/remotes/origin/master +1 -1
  475. data/Rakefile +26 -26
  476. data/lib/micon/managed.rb +60 -0
  477. data/lib/micon/micon.rb +147 -0
  478. data/lib/micon.rb +6 -0
  479. data/lib/ruby_ext/class.rb +2 -2
  480. data/lib/ruby_ext/declarative_cache.rb +71 -68
  481. data/lib/ruby_ext/extra_blank_slate.rb +16 -0
  482. data/lib/ruby_ext/file.rb +14 -25
  483. data/lib/ruby_ext/kernel.rb +61 -18
  484. data/lib/ruby_ext/module.rb +34 -8
  485. data/lib/ruby_ext/must.rb +149 -0
  486. data/lib/ruby_ext/object.rb +3 -3
  487. data/lib/ruby_ext/observable2.rb +23 -0
  488. data/lib/ruby_ext/open_constructor.rb +49 -49
  489. data/lib/ruby_ext/prepare_arguments.rb +6 -6
  490. data/lib/ruby_ext/string.rb +23 -13
  491. data/lib/ruby_ext/symbol.rb +5 -5
  492. data/lib/ruby_ext/synchronize.rb +24 -0
  493. data/lib/ruby_ext.rb +17 -17
  494. data/lib/vresource/class_loader.rb +150 -0
  495. data/lib/vresource/file_system_provider.rb +181 -0
  496. data/lib/vresource/file_system_reloader.rb +106 -0
  497. data/lib/vresource/module.rb +24 -0
  498. data/lib/vresource/resource_extensions.rb +14 -0
  499. data/lib/vresource/vresource.rb +153 -0
  500. data/lib/vresource.rb +12 -0
  501. data/old/README +1 -1
  502. data/old/declarative_cache_rem.rb +172 -0
  503. data/old/declarative_cache_spec_rem.rb +98 -0
  504. data/old/lib/RubyExt/ImportAll.rb +7 -7
  505. data/old/lib/RubyExt/Localization/Module.rb +5 -5
  506. data/old/lib/RubyExt/Localization/Object.rb +17 -17
  507. data/old/lib/RubyExt/Localization.rb +6 -6
  508. data/old/lib/RubyExt/Log.config.sample +25 -25
  509. data/old/lib/RubyExt/Log.rb +51 -51
  510. data/old/lib/RubyExt/Path.rb +89 -89
  511. data/old/lib/RubyExt/array.rb +22 -22
  512. data/old/lib/RubyExt/debug.rb +66 -66
  513. data/old/lib/RubyExt/false_class.rb +3 -3
  514. data/old/lib/RubyExt/nil_class.rb +3 -3
  515. data/old/lib/RubyExt/true_class.rb +3 -3
  516. data/old/old_concurrency_spec.rb +79 -0
  517. data/old/old_custom_scope_spec.rb +181 -0
  518. data/old/old_general_spec.rb +108 -0
  519. data/old/spec/RubyExt/ForKernel/Raise2.rb +3 -3
  520. data/old/spec/RubyExt/ForKernel/RaiseWithoutSelf.rb +7 -7
  521. data/old/spec/RubyExt/ForModule/NS2/A.rb +1 -1
  522. data/old/spec/RubyExt/ForModule/NS2/B.rb +1 -1
  523. data/old/spec/RubyExt/ForModule/NS2/M.rb +1 -1
  524. data/old/spec/array_spec.rb +21 -21
  525. data/old/spec/import_all_spec.rb +14 -14
  526. data/old/spec/localization_spec.rb +43 -43
  527. data/old/spec/object_spec.rb +3 -3
  528. data/old/spec/path_spec.rb +164 -164
  529. data/old/spec/state_machine_spec.rb +196 -196
  530. data/readme.md +102 -0
  531. data/spec/micon/custom_scope_spec.rb +72 -0
  532. data/spec/micon/managed_spec.rb +47 -0
  533. data/spec/micon/static_scope_spec.rb +61 -0
  534. data/spec/micon_spec_helper.rb +8 -0
  535. data/spec/ruby_ext/declarative_cache_spec.rb +115 -0
  536. data/spec/ruby_ext/kernel_spec/TheNamespace/ClassA.rb +7 -0
  537. data/spec/ruby_ext/kernel_spec/another_class.rb +5 -0
  538. data/spec/ruby_ext/kernel_spec/the_namespace/class_b.rb +11 -0
  539. data/spec/ruby_ext/kernel_spec.rb +53 -0
  540. data/spec/ruby_ext/module_spec.rb +128 -0
  541. data/spec/ruby_ext/must_spec.rb +23 -0
  542. data/spec/ruby_ext/observable2_spec.rb +42 -0
  543. data/spec/ruby_ext/open_constructor_spec.rb +36 -0
  544. data/spec/{prepare_arguments_spec.rb → ruby_ext/prepare_arguments_spec.rb} +2 -6
  545. data/spec/ruby_ext/should_spec.rb +24 -0
  546. data/spec/ruby_ext/synchronize_spec.rb +80 -0
  547. data/spec/ruby_ext_spec_helper.rb +17 -0
  548. data/spec/vresource/class_loader_spec.rb +101 -0
  549. data/spec/vresource/class_loader_spec_data/ClassA.rb +4 -0
  550. data/{old/spec/RubyExt/ForClassLoader → spec/vresource/class_loader_spec_data}/LoadCount.rb +0 -0
  551. data/{old/spec/RubyExt/ForClassLoader → spec/vresource/class_loader_spec_data}/ModuleA/ClassB.rb +0 -0
  552. data/{old/spec/RubyExt/ForClassLoader → spec/vresource/class_loader_spec_data}/ModuleA/ClassInsideAnonymousClass.rb +1 -1
  553. data/{old/spec/RubyExt/ForClassLoader → spec/vresource/class_loader_spec_data}/ModuleA/InfinityLoop.rb +1 -1
  554. data/spec/vresource/class_loader_spec_data/ModuleA/ModuleB/ClassC.rb +3 -0
  555. data/{old/spec/RubyExt/ForClassLoader → spec/vresource/class_loader_spec_data}/ModuleA/SameName/SomeClass.rb +0 -0
  556. data/{old/spec/RubyExt/ForClassLoader → spec/vresource/class_loader_spec_data}/ModuleA/SameName.rb +0 -0
  557. data/{old/spec/RubyExt/ForClassLoader/Scope → spec/vresource/class_loader_spec_data/ScopeA}/ScopeA1.rb +1 -1
  558. data/spec/vresource/class_loader_spec_data/ScopeA/ScopeB1.rb +5 -0
  559. data/spec/vresource/module_spec.rb +39 -0
  560. data/spec/vresource/module_spec_data/NS1/A.data +1 -0
  561. data/spec/vresource/module_spec_data/NS1/A.rb +1 -0
  562. data/spec/vresource/module_spec_data/NS1/A2.rb +1 -0
  563. data/spec/vresource/module_spec_data/NS1/B.rb +2 -0
  564. data/spec/vresource/module_spec_data/NS1/B2.rb +1 -0
  565. data/spec/vresource/module_spec_data/NS1.data +1 -0
  566. data/spec/vresource/module_spec_data/NS2/A.data +1 -0
  567. data/spec/vresource/module_spec_data/NS2/A.rb +3 -0
  568. data/spec/vresource/module_spec_data/NS2/B.rb +3 -0
  569. data/spec/vresource/module_spec_data/NS2/M.data +1 -0
  570. data/spec/vresource/module_spec_data/NS2/M.rb +3 -0
  571. data/spec/vresource/vresource_spec.rb +137 -0
  572. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ChangedClass.rb +0 -0
  573. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ChangedClass.res/Text.txt +0 -0
  574. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ChangedClass.txt +0 -0
  575. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ResourceExtension.rb +0 -0
  576. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ResourceTest/Test.rb +0 -0
  577. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ResourceTest/Test.res/Data.txt +0 -0
  578. data/{old/spec/RubyExt/ForResource → spec/vresource/vresource_spec_data}/ResourceTest/Test.res/txt +0 -0
  579. data/spec/vresource/vresource_spec_data/provider_chaining/provider_a_dir/ChainTest.rb +3 -0
  580. data/{old/spec/RubyExt/ForResource/ProviderChaining/ProviderABaseDir → spec/vresource/vresource_spec_data/provider_chaining/provider_a_dir}/ChainTest.resource +0 -0
  581. data/{old/spec/RubyExt/ForResource/ProviderChaining/ProviderABaseDir → spec/vresource/vresource_spec_data/provider_chaining/provider_a_dir}/ClassExistOnlyInProviderA.rb +1 -1
  582. data/spec/vresource/vresource_spec_data/provider_chaining/provider_b_dir/ChainTest.rb +3 -0
  583. data/{old/spec/RubyExt/ForResource/ProviderChaining/ProviderBBaseDir → spec/vresource/vresource_spec_data/provider_chaining/provider_b_dir}/ChainTest.resource +0 -0
  584. data/spec/vresource_spec_helper.rb +9 -0
  585. metadata +564 -58
  586. data/README.rdoc +0 -3
  587. data/lib/ruby_ext/declarative_cache_rem.rb +0 -172
  588. data/lib/ruby_ext/synchronizer.rb +0 -31
  589. data/old/lib/RubyExt/ClassLoader.rb +0 -142
  590. data/old/lib/RubyExt/ExtraBlankSlate.rb +0 -14
  591. data/old/lib/RubyExt/Resource/file_system_provider.rb +0 -273
  592. data/old/lib/RubyExt/class.rb +0 -0
  593. data/old/lib/RubyExt/kernel.rb +0 -3
  594. data/old/lib/RubyExt/module.rb +0 -26
  595. data/old/lib/RubyExt/observable.rb +0 -25
  596. data/old/lib/RubyExt/resource.rb +0 -172
  597. data/old/rakefile +0 -52
  598. data/old/spec/RubyExt/ForClassLoader/ClassA.rb +0 -4
  599. data/old/spec/RubyExt/ForClassLoader/ModuleA/ModuleB/ClassC.rb +0 -3
  600. data/old/spec/RubyExt/ForClassLoader/Scope/ScopeB1.rb +0 -5
  601. data/old/spec/RubyExt/ForResource/ProviderChaining/ProviderABaseDir/ChainTest.rb +0 -3
  602. data/old/spec/RubyExt/ForResource/ProviderChaining/ProviderBBaseDir/ChainTest.rb +0 -3
  603. data/old/spec/RubyExt/ForResource/ResourceExtension.res/Data.yaml +0 -2
  604. data/old/spec/class_loader_spec.rb +0 -94
  605. data/old/spec/kernel_spec.rb +0 -29
  606. data/old/spec/module_spec.rb +0 -14
  607. data/old/spec/observable_spec.rb +0 -44
  608. data/old/spec/resource_spec.rb +0 -136
  609. data/spec/declarative_cache_rem.rb +0 -98
  610. data/spec/declarative_cache_spec.rb +0 -100
  611. data/spec/kernel_spec.rb +0 -16
  612. data/spec/module_spec.rb +0 -127
  613. data/spec/open_constructor_spec.rb +0 -39
  614. data/spec/should_spec.rb +0 -27
  615. data/spec/spec_require.rb +0 -10
  616. data/spec/synchronizer_spec.rb +0 -69
@@ -0,0 +1,147 @@
1
+ # Predefined scopes are: :application | :session | :thread | :instance | :"custom_name"
2
+ #
3
+ # Micons :"custom_name" are managed by 'scope_begin' / 'scope_end' methods
4
+ #
5
+ # :"custom_name" can't be nested (it will destroy old and start new one) and always should be explicitly started!.
6
+
7
+ class Micon
8
+ REGISTRY_SYNC = Monitor.new
9
+ APPLILCATION_SYNC = Monitor.new
10
+
11
+ @application, @registry = {}, {}
12
+
13
+ class << self
14
+ #
15
+ # Scope Management
16
+ #
17
+ def activate scope, container, &block
18
+ raise_without_self "Only custom scopes can be activated!" if scope == :application or scope == :instance
19
+ container.must_be.a Hash
20
+
21
+ scope_with_prefix = add_prefix(scope)
22
+ raise_without_self "Scope '#{scope}' already active!" if Thread.current[scope_with_prefix]
23
+
24
+ if block
25
+ begin
26
+ Thread.current[scope_with_prefix] = container
27
+ block.call
28
+ ensure
29
+ deactivate scope
30
+ end
31
+ else
32
+ Thread.current[scope_with_prefix] = container
33
+ end
34
+ end
35
+
36
+ def deactivate scope
37
+ raise_without_self "Only custom scopes can be deactivated!" if scope == :application or scope == :instance
38
+
39
+ scope_with_prefix = add_prefix(scope)
40
+ raise_without_self "Scope '#{scope}' not active!" unless container = Thread.current[scope_with_prefix]
41
+
42
+ Thread.current[scope_with_prefix] = nil
43
+ container
44
+ end
45
+
46
+ def active? scope
47
+ if scope == :application or scope == :instance
48
+ true
49
+ else
50
+ Thread.current.key?(add_prefix(scope))
51
+ end
52
+ end
53
+
54
+ def clear
55
+ APPLILCATION_SYNC.synchronize{@application.clear}
56
+ Thread.current.keys.each do |key|
57
+ Thread.current[key] = nil if key.to_s =~ /^mc_/
58
+ end
59
+ end
60
+
61
+
62
+ #
63
+ # Object Management
64
+ #
65
+ def [] key
66
+ scope, initializer = nil
67
+ REGISTRY_SYNC.synchronize{scope, initializer = @registry[key]}
68
+
69
+ case scope
70
+ when nil
71
+ raise_without_self "The '#{key}' Name is not Managed!", Micon
72
+ when :instance
73
+ return initializer.call
74
+ when :application
75
+ APPLILCATION_SYNC.synchronize do
76
+ o = @application[key]
77
+ unless o
78
+ o = initializer.call
79
+ @application[key] = o
80
+ end
81
+ return o
82
+ end
83
+ else # custom
84
+ container = Thread.current[scope]
85
+ raise_without_self "Scope '#{scope}' not started!" unless container
86
+ o = container[key]
87
+ unless o
88
+ o = initializer.call
89
+ container[key] = o
90
+ end
91
+ return o
92
+ end
93
+ end
94
+
95
+ def []= key, value
96
+ scope = nil
97
+ REGISTRY_SYNC.synchronize{scope, initializer = @registry[key]}
98
+
99
+ case scope
100
+ when nil
101
+ raise_without_self "The '#{key}' Name is not Managed!", Micon
102
+ when :instance
103
+ raise_without_self "You can't outject variable with the 'instance' scope!"
104
+ when :application
105
+ APPLILCATION_SYNC.synchronize{@application[key] = value}
106
+ else # Custom
107
+ container = Thread.current[scope]
108
+ raise_without_self "Scope '#{scope}' not started!" unless container
109
+ container[key] = value
110
+ end
111
+ end
112
+
113
+
114
+ #
115
+ # Registry
116
+ #
117
+ def clear_registry
118
+ REGISTRY_SYNC.synchronize{@registry.clear}
119
+ end
120
+
121
+ def register key, scope, &initializer
122
+ key.must_not_be.nil
123
+ scope.must_not_be.nil
124
+ scope = add_prefix(scope) unless scope == :application or scope == :instance
125
+ REGISTRY_SYNC.synchronize do
126
+ @registry[key] = [scope, (initializer || lambda{nil})]
127
+ end
128
+ end
129
+
130
+ def unregister key
131
+ REGISTRY_SYNC.synchronize{@registry.delete key}
132
+ end
133
+
134
+ def registry_get key
135
+ REGISTRY_SYNC.synchronize{@registry[key]}
136
+ end
137
+
138
+ def include? key
139
+ REGISTRY_SYNC.synchronize{@registry.include? key}
140
+ end
141
+
142
+ protected
143
+ def add_prefix scope
144
+ :"mc_#{scope}"
145
+ end
146
+ end
147
+ end
data/lib/micon.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'ruby_ext'
2
+
3
+ %w{
4
+ micon
5
+ managed
6
+ }.each{|f| require "micon/#{f}"}
@@ -1,8 +1,8 @@
1
1
  Class.class_eval do
2
2
  def name_alias name = nil
3
3
  if name
4
- name.should! :be_a, String
5
- name.should_not_be! :blank
4
+ name.must_be.a String
5
+ name.must_not_be.blank
6
6
  @name_alias = name.to_s
7
7
  else
8
8
  @name_alias || self.name
@@ -1,79 +1,82 @@
1
1
  require 'monitor'
2
2
 
3
3
  class Module
4
- def cache! *methods
5
- DeclarativeCache.cache! self, *methods
6
- end
7
- alias_method :cache, :cache!
4
+ def cache_method *methods
5
+ DeclarativeCache.cache_method self, *methods
6
+ end
8
7
 
9
- def cache_with_params! *methods
10
- DeclarativeCache.cache_with_params! self, *methods
8
+ def cache_method_with_params *methods
9
+ DeclarativeCache.cache_method_with_params self, *methods
10
+ end
11
+ end
12
+
13
+ class Object
14
+ def clear_cache_method
15
+ instance_variables.each do |iv|
16
+ remove_instance_variable iv if iv =~ /^@cached_/
17
+ end
11
18
  end
12
- alias_method :cache_with_params, :cache_with_params!
13
19
  end
14
20
 
15
- module DeclarativeCache
16
- DISABLED = false
21
+ module DeclarativeCache
22
+ DISABLED = false
17
23
 
18
- warn "CASHE DISABLED" if DISABLED
24
+ warn "CASHE DISABLED" if DISABLED
19
25
  unless DISABLED
20
- class << self
21
- def alias_counter
22
- @alias_counter ||= 0
23
- @alias_counter += 1
24
- return "cached_method_#{@alias_counter}"
25
- end
26
-
27
- def cache! klass, *methods
28
- methods.each do |method|
29
- klass.class_eval do
30
- als = (method.to_s =~ /^[_a-zA-Z0-9]+$/) ? "cached_#{method}" : DeclarativeCache.alias_counter.to_sym
31
- iv_check = "@#{als}_check"
32
- iv = "@#{als}"
33
-
34
- alias_method als, method
35
-
36
- define_method method do |*args|
37
- args.should! :be_empty
38
- unless cached = instance_variable_get(iv)
39
- unless check = instance_variable_get(iv_check)
40
- cached = send als
41
- instance_variable_set iv, cached
42
- instance_variable_set iv_check, true
43
- end
44
- end
45
- cached
46
- end
47
- end
48
- end
49
- end
50
- alias_method :cache, :cache!
51
-
52
- def cache_with_params! klass, *methods
53
- methods.each do |method|
54
- klass.class_eval do
55
- als = (method.to_s =~ /^[_a-zA-Z0-9]+$/) ? "cached_#{method}" : DeclarativeCache.alias_counter.to_sym
56
- iv = "@#{als}"
57
-
58
- alias_method als, method
59
-
60
- define_method method do |*args|
61
- unless results = instance_variable_get(iv)
62
- results = {}
63
- instance_variable_set iv, results
64
- end
65
-
66
- unless results.include? args
67
- results[args] = send als, *args
68
- end
69
-
70
- results[args]
71
- end
72
- end
73
- end
74
- end
75
- alias_method :cache_with_params, :cache_with_params!
76
-
77
- end
26
+ class << self
27
+
28
+ def cache_method klass, *methods
29
+ methods.each do |method|
30
+ klass.class_eval do
31
+ als = "cached_#{escape_method(method)}"
32
+ iv_check = "@#{als}_check"
33
+ iv = "@#{als}"
34
+
35
+ raise "Can't cache the #{method} twice!" if instance_methods.include?(als)
36
+
37
+ alias_method als, method
38
+
39
+ define_method method do |*args|
40
+ raise "You tried to use cache without params for method with params (use 'cache_method_with_params' instead)!" unless args.empty?
41
+ unless cached = instance_variable_get(iv)
42
+ unless check = instance_variable_get(iv_check)
43
+ cached = send als
44
+ instance_variable_set iv, cached
45
+ instance_variable_set iv_check, true
46
+ end
47
+ end
48
+ cached
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ def cache_method_with_params klass, *methods
55
+ methods.each do |method|
56
+ klass.class_eval do
57
+ als = "cached_#{escape_method(method)}"
58
+ iv = "@#{als}"
59
+
60
+ raise "Can't cache the '#{method}' twice!" if instance_methods.include?(als)
61
+
62
+ alias_method als, method
63
+
64
+ define_method method do |*args|
65
+ unless results = instance_variable_get(iv)
66
+ results = {}
67
+ instance_variable_set iv, results
68
+ end
69
+
70
+ unless results.include? args
71
+ results[args] = send als, *args
72
+ end
73
+
74
+ results[args]
75
+ end
76
+ end
77
+ end
78
+ end
79
+
80
+ end
78
81
  end
79
82
  end
@@ -0,0 +1,16 @@
1
+ class ExtraBlankSlate
2
+ instance_methods.each { |m| undef_method m unless m =~ /^__/ }
3
+
4
+ CUSTOM_UNDEFINE = [:p, :select, :puts]
5
+
6
+ undefine = Kernel.instance_methods + Object.instance_methods + CUSTOM_UNDEFINE
7
+ ExtraBlankSlate.instance_methods.each{|m| undefine.delete m}
8
+
9
+ undefine.each do |m|
10
+ script = %{\
11
+ def #{m} *p, &b
12
+ method_missing :#{m}, *p, &b
13
+ end}
14
+ class_eval script, __FILE__, __LINE__
15
+ end
16
+ end
data/lib/ruby_ext/file.rb CHANGED
@@ -1,31 +1,20 @@
1
1
  require 'fileutils'
2
2
 
3
3
  File.class_eval do
4
- class << self
5
-
6
- # There is similar methods in ActiveSupport, that takes also second paramether buffer
7
- # these methods 'as is' will broken rails app with passenger in production.
8
- #
9
- # def write(path, data)
10
- # File.open(path, "wb") do |file|
11
- # return file.write(data)
12
- # end
13
- # end
14
- #
15
- # def read(path)
16
- # File.open(path, "rb") do |file|
17
- # return file.read
18
- # end
19
- # end
4
+ class << self
20
5
 
6
+ def write(path, data)
7
+ File.open(path, "wb") do |file|
8
+ return file.write(data)
9
+ end
10
+ end
21
11
 
22
-
23
- def create_directory dir
24
- FileUtils.mkdir_p dir unless File.exist? dir
25
- end
26
-
27
- def delete_directory dir
28
- FileUtils.rm_r dir, :force => true if File.exist? dir
29
- end
30
- end
12
+ def create_directory dir
13
+ FileUtils.mkdir_p dir unless File.exist? dir
14
+ end
15
+
16
+ def delete_directory dir
17
+ FileUtils.rm_r dir, :force => true if File.exist? dir
18
+ end
19
+ end
31
20
  end
@@ -1,21 +1,64 @@
1
1
  Kernel.class_eval do
2
2
  def respond_to sym, *args
3
- return nil if not respond_to? sym
4
- send sym, *args
5
- end
6
-
7
- # def _ &b
8
- # raise "Block isn't provided!" unless b
9
- # return b
10
- # end
11
-
12
- def singleton_class(&block)
13
- if block_given?
14
- (class << self; self; end).class_eval(&block)
15
- self
16
- else
17
- (class << self; self; end)
18
- end
19
- end
20
- alias_method :metaclass, :singleton_class
3
+ return nil if not respond_to? sym
4
+ send sym, *args
5
+ end
6
+
7
+ # def _ &b
8
+ # raise "Block isn't provided!" unless b
9
+ # return b
10
+ # end
11
+
12
+ def singleton_class(&block)
13
+ if block_given?
14
+ (class << self; self; end).class_eval(&block)
15
+ self
16
+ else
17
+ (class << self; self; end)
18
+ end
19
+ end
20
+ alias_method :metaclass, :singleton_class
21
+
22
+ # Removes the namespace (exact match and underscored) of given class (or self) from stacktrace
23
+ def raise_without_self *args
24
+ error, message, klasses = nil
25
+ if args.size == 1
26
+ error = RuntimeError
27
+ message = args[0]
28
+ klasses = [self]
29
+ elsif args.size == 2
30
+ message, klasses = args
31
+ error = RuntimeError
32
+
33
+ klasses = Array(klasses)
34
+ klasses << self
35
+ elsif args.size == 3
36
+ error, message, klasses = args
37
+
38
+ klasses = Array(klasses)
39
+ klasses << self
40
+ else
41
+ raise RuntimeError, "Invalid arguments!", caller
42
+ end
43
+
44
+ klasses.collect!{|c| (c.class == Class or c.class == Module) ? c : c.class}
45
+
46
+ # obtaining the namespace of each class
47
+ klasses.collect! do |c|
48
+ c = c.namespace while c.namespace
49
+ c
50
+ end
51
+
52
+ # building regexp
53
+ skip = []
54
+ klasses.each do |c|
55
+ skip.push(/\/#{c.to_s}/) # exact match
56
+ skip.push(/\/#{c.to_s.underscore}/) # underscored
57
+ end
58
+
59
+ # cleaning stacktrace
60
+ stack = caller.select{|path| !skip.any?{|re| re =~ path}}
61
+
62
+ raise error, message, stack
63
+ end
21
64
  end
@@ -14,12 +14,12 @@ Module.class_eval do
14
14
  end
15
15
 
16
16
  def inherited_instance_methods
17
- im = Set.new
18
- ancestors.each do |a|
19
- next if a == self
20
- im.merge a.instance_methods
21
- end
22
- return im.to_a
17
+ im = Set.new
18
+ ancestors.each do |a|
19
+ next if a == self
20
+ im.merge a.instance_methods
21
+ end
22
+ return im.to_a
23
23
  end
24
24
 
25
25
  def namespace
@@ -71,8 +71,8 @@ Module.class_eval do
71
71
  include amodule
72
72
 
73
73
  processed = []
74
- amodule.ancestors.each do |a|
75
- if a.const_defined? :ClassMethods
74
+ amodule.ancestors.each do |a|
75
+ if a.const_defined? :ClassMethods
76
76
  class_methods = a.const_get :ClassMethods
77
77
  next if processed.include? class_methods
78
78
  processed << class_methods
@@ -81,4 +81,30 @@ Module.class_eval do
81
81
  end
82
82
  end
83
83
  end
84
+
85
+ raise "Internal error, it shouldn't be loaded twice!" if defined? ESCAPE_METHOD_SYMBOLS # some tricky error when runing spec with rake
86
+ ESCAPE_METHOD_SYMBOLS = [
87
+ ['==', 'assign'],
88
+ ['>', 'gt'],
89
+ ['<', 'lt'],
90
+ ['>=', 'gte'],
91
+ ['<=', 'lte'],
92
+ ['?', 'qst'],
93
+ ['!', 'imp'],
94
+ ['<=>', 'lorg'],
95
+ ['*', 'mp'],
96
+ ['+', 'add'],
97
+ ['-', 'sub'],
98
+ ['=', 'assign'],
99
+ ['**', 'pw'],
100
+ ['=~', 'sim'],
101
+ ['[]', 'sb'],
102
+ ]
103
+
104
+ def escape_method method
105
+ m = method.to_s.clone
106
+ ESCAPE_METHOD_SYMBOLS.each{|from, to| m.gsub! from, to}
107
+ raise "Invalid method name '#{method}'!" unless m =~ /^[_a-zA-Z0-9]+$/
108
+ m
109
+ end
84
110
  end
@@ -0,0 +1,149 @@
1
+ class AssertionError < RuntimeError; end
2
+
3
+ class MustAssertions < ExtraBlankSlate
4
+ def initialize obj
5
+ @obj = obj
6
+ end
7
+
8
+ def == o
9
+ @obj == o
10
+ end
11
+
12
+ def never_called
13
+ false
14
+ end
15
+
16
+ def nil
17
+ @obj.equal? nil
18
+ end
19
+
20
+ def a klass
21
+ if klass.class == Array
22
+ klass.any?{|k| @obj.is_a? k}
23
+ else
24
+ @obj.is_a? klass
25
+ end
26
+ end
27
+ alias_method :an, :a
28
+
29
+ # def be klass = nil
30
+ # if klass.class == Array
31
+ # klass.any?{|k| @obj.respond_to :is?, k}
32
+ # else
33
+ # @obj.respond_to :is?, klass
34
+ # end
35
+ # end
36
+
37
+ def include o
38
+ @obj.include? o
39
+ end
40
+
41
+ def in *enum
42
+ Array(enum).include? @obj
43
+ end
44
+
45
+ def true
46
+ !!@obj
47
+ end
48
+
49
+ def false
50
+ !@obj
51
+ end
52
+
53
+ def empty
54
+ @obj.empty?
55
+ end
56
+
57
+ def blank
58
+ @obj.blank?
59
+ end
60
+
61
+ def > o
62
+ @obj > o
63
+ end
64
+
65
+ def < o
66
+ @obj < o
67
+ end
68
+
69
+ def be
70
+ @prefix = 'be'
71
+ self
72
+ end
73
+
74
+ def have
75
+ @prefix = 'have'
76
+ self
77
+ end
78
+
79
+ def self.assertions
80
+ special = %w{be have}
81
+ instance_methods.select{|m| m !~ /^__/ and m != 'be'}
82
+ end
83
+
84
+ protected
85
+ def method_missing m, *args, &b
86
+ raise RuntimeError, "Assertion '#{m}' is unknown!", caller[1..-1]
87
+ end
88
+
89
+ def failed method, negative, *args
90
+ unless args.empty?
91
+ Kernel.raise AssertionError, "
92
+ ASSERTION FAILED (#{caller[1]}):
93
+ #{@obj.inspect} must #{'not ' if negative}#{"#{@prefix} " if @prefix}#{method} #{args.first}
94
+ ", caller[3..-1]
95
+ else
96
+ Kernel.raise AssertionError, "
97
+ ASSERTION FAILED (#{caller[1]}):
98
+ #{@obj.inspect} must #{'not ' if negative}#{"#{@prefix} " if @prefix}#{method}
99
+ ", caller[3..-1]
100
+ end
101
+ end
102
+ end
103
+
104
+ class Must < MustAssertions
105
+ assertions.each do |m|
106
+ desition = "_#{m}"
107
+ alias_method desition, m
108
+ define_method m do |*args|
109
+ failed m, false, *args unless __send__(desition, *args)
110
+ end
111
+ end
112
+ end
113
+
114
+ class MustNot < MustAssertions
115
+ assertions.each do |m|
116
+ desition = "_#{m}"
117
+ alias_method desition, m
118
+ define_method m do |*args|
119
+ failed m, true, *args if __send__(desition, *args)
120
+ end
121
+ end
122
+ end
123
+
124
+ Object.class_eval do
125
+
126
+ def must
127
+ Must.new self
128
+ end
129
+
130
+ def must_not
131
+ MustNot.new self
132
+ end
133
+
134
+ def must_be
135
+ must.be
136
+ end
137
+
138
+ def must_not_be
139
+ must_not.be
140
+ end
141
+
142
+ # def must_have
143
+ # must.have
144
+ # end
145
+ #
146
+ # def must_not_have
147
+ # must_not.have
148
+ # end
149
+ end
@@ -1,7 +1,7 @@
1
1
  Object.class_eval do
2
- def self; self end
3
-
2
+ def self; self end
3
+
4
4
  # def copy
5
- # Marshal.load(Marshal.dump self) # Stub
5
+ # Marshal.load(Marshal.dump self) # Stub
6
6
  # end
7
7
  end