ruby-ext 0.2.16 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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