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,23 @@
1
+ module Observable2
2
+ def add_observer observer
3
+ @observable_observers ||= []
4
+ @observable_observers << observer unless @observable_observers.include? observer
5
+ end
6
+
7
+ def notify_observers method, *args
8
+ raise "Invalid usage, method must be Symbol or String!" unless method.is_a?(Symbol) or method.is_a?(String)
9
+ @observable_observers.each{|observer| observer.respond_to method, *args} if @observable_observers
10
+ end
11
+
12
+ def delete_observer observer
13
+ @observable_observers.delete observer if @observable_observers
14
+ end
15
+
16
+ def delete_observers
17
+ @observable_observers.clear if @observable_observers
18
+ end
19
+
20
+ def observers_count
21
+ @observable_observers ? @observable_observers.size : 0
22
+ end
23
+ end
@@ -1,51 +1,51 @@
1
1
  module OpenConstructor
2
- def set values, list = nil
3
- unless list
4
- if values.is_a? Hash
5
- values.each do |k, v|
6
- self.respond_to k.to_writer, v
7
- end
8
- else
9
- values.instance_variables.each do |name|
10
- accessor = name[1..name.size].to_writer
11
- if self.respond_to? accessor
12
- self.send accessor, values.instance_variable_get(name)
13
- end
14
- end
15
- end
16
- else
17
- if values.is_a? Hash
18
- values.each do |k, v|
19
- self.respond_to k.to_writer, v if list.include? k
20
- end
21
- else
22
- values.instance_variables.each do |name|
23
- accessor = name[1..name.size]
24
- if list.include?(accessor.to_sym)
25
- accessor = accessor.to_writer
26
- if self.respond_to?(accessor)
27
- self.send accessor, values.instance_variable_get(name)
28
- end
29
- end
30
- end
31
- end
32
- end
33
- return self
34
- end
35
-
36
- def set_with_check values
37
- values.each do |k, v|
38
- self.send k.to_writer, v
39
- end
40
- return self
41
- end
42
- alias_method :set!, :set_with_check
43
-
44
- def to_hash
45
- hash = {}
46
- instance_variables.each do |name|
47
- hash[name[1..name.size].to_sym] = instance_variable_get name
48
- end
49
- return hash
50
- end
2
+ def set values, list = nil
3
+ unless list
4
+ if values.is_a? Hash
5
+ values.each do |k, v|
6
+ self.respond_to k.to_writer, v
7
+ end
8
+ else
9
+ values.instance_variables.each do |name|
10
+ accessor = name[1..name.size].to_writer
11
+ if self.respond_to? accessor
12
+ self.send accessor, values.instance_variable_get(name)
13
+ end
14
+ end
15
+ end
16
+ else
17
+ if values.is_a? Hash
18
+ values.each do |k, v|
19
+ self.respond_to k.to_writer, v if list.include? k
20
+ end
21
+ else
22
+ values.instance_variables.each do |name|
23
+ accessor = name[1..name.size]
24
+ if list.include?(accessor.to_sym)
25
+ accessor = accessor.to_writer
26
+ if self.respond_to?(accessor)
27
+ self.send accessor, values.instance_variable_get(name)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ return self
34
+ end
35
+
36
+ def set_with_check values
37
+ values.each do |k, v|
38
+ self.send k.to_writer, v
39
+ end
40
+ return self
41
+ end
42
+ alias_method :set!, :set_with_check
43
+
44
+ def to_hash
45
+ hash = {}
46
+ instance_variables.each do |name|
47
+ hash[name[1..name.size].to_sym] = instance_variable_get name
48
+ end
49
+ return hash
50
+ end
51
51
  end
@@ -3,7 +3,7 @@ class ArgumentsParser
3
3
  def register method, arguments
4
4
  # check and prepare metadata
5
5
  arguments.collect!{|meta| meta.is_a?(Hash) ? meta : {:type => meta}}
6
- arguments.each{|meta| meta.should! :include, :type}
6
+ arguments.each{|meta| meta.must.include :type}
7
7
 
8
8
  # register
9
9
  @registry ||= {}
@@ -16,7 +16,7 @@ class ArgumentsParser
16
16
  parsed_args = metadata.collect do |options|
17
17
  send options[:type], args, block, options, index, (index == metadata.size - 1)
18
18
  end
19
- args.should_be! :empty
19
+ args.must_be.empty
20
20
  return parsed_args
21
21
  end
22
22
 
@@ -34,7 +34,7 @@ class ArgumentsParser
34
34
  args.shift
35
35
  end
36
36
  else
37
- should! :be_never_called
37
+ must_be.never_called
38
38
  end
39
39
  else
40
40
  args.shift
@@ -59,7 +59,7 @@ class ArgumentsParser
59
59
  tmp
60
60
  end
61
61
  else
62
- should! :be_never_called
62
+ must_be.never_called
63
63
  end
64
64
  else
65
65
  args.shift
@@ -73,12 +73,12 @@ class ArgumentsParser
73
73
 
74
74
  def hash args, block, options, index, last
75
75
  a = object(args, block, options, index, last) || {}
76
- a.should! :be_a, Hash
76
+ a.must_be.a Hash
77
77
  a
78
78
  end
79
79
 
80
80
  def _common_options a, options
81
- a.should_not! :be_nil if options[:require]
81
+ a.must_not_be.nil if options[:require]
82
82
  if (default = options[:default]) and a.eql?(nil)
83
83
  a = default
84
84
  end
@@ -1,18 +1,18 @@
1
1
  String.class_eval do
2
- def to_reader
3
- self.to_sym
4
- end
5
-
6
- def to_writer
7
- "#{self}=".to_sym
8
- end
9
-
10
- def to_iv
11
- "@#{self}"
12
- end
13
-
2
+ def to_reader
3
+ self.to_sym
4
+ end
5
+
6
+ def to_writer
7
+ "#{self}=".to_sym
8
+ end
9
+
10
+ def to_iv
11
+ "@#{self}"
12
+ end
13
+
14
14
  def interpolate binding
15
- binding.should! :be_a, Binding
15
+ binding.must_be.a Binding
16
16
  return gsub(/\#\{.+?\}/) do |term|
17
17
  identifier = term.slice(2 .. term.size-2)
18
18
  binding.eval identifier
@@ -23,4 +23,14 @@ String.class_eval do
23
23
  original = [Time.now, (1..10).map{ rand.to_s }]
24
24
  Digest::SHA1.hexdigest(original.flatten.join('--'))
25
25
  end
26
+
27
+ def underscore
28
+ word = self.dup
29
+ word.gsub!(/::/, '/')
30
+ word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
31
+ word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
32
+ word.tr!("-", "_")
33
+ word.downcase!
34
+ word
35
+ end
26
36
  end
@@ -8,12 +8,12 @@ Symbol.class_eval do
8
8
  end
9
9
 
10
10
  def to_writer
11
- "#{self}=".to_sym
12
- end
11
+ "#{self}=".to_sym
12
+ end
13
13
 
14
- def to_iv
15
- "@#{self}"
16
- end
14
+ def to_iv
15
+ "@#{self}"
16
+ end
17
17
 
18
18
  def + other
19
19
  (self.to_s + other.to_s).to_sym
@@ -0,0 +1,24 @@
1
+ require 'monitor'
2
+
3
+ class Module
4
+ def synchronize_method *methods
5
+ methods.each do |method|
6
+ als = "sync_#{escape_method(method)}"
7
+
8
+ raise "Can't synchronize the '#{method}' twice!" if instance_methods.include?(als)
9
+
10
+ alias_method als, method
11
+ script = "\
12
+ def #{method} *p, &b
13
+ @monitor ||= Monitor.new
14
+ @monitor.synchronize{#{als} *p, &b}
15
+ end"
16
+ class_eval script, __FILE__, __LINE__
17
+ end
18
+ end
19
+
20
+ def synchronize_all_methods include_super = false
21
+ methods = self.instance_methods(include_super).collect{|m| m.to_sym}
22
+ synchronize_method *methods
23
+ end
24
+ end
data/lib/ruby_ext.rb CHANGED
@@ -1,15 +1,15 @@
1
1
  core = [
2
- 'facets/array/indexable', # Array first!, last!
3
- 'facets/enumerable/every',
4
- 'facets/enumerable/group_by',
5
- 'facets/exception/detail', # pretty print
6
- 'facets/duplicable', # false.dup(), false.clone() and so on.
7
- 'facets/blank',
8
- 'facets/numeric/round.rb', # round_at, round_to
9
- 'facets/hash',
10
- 'facets/string/interpolate',
11
- 'facets/ostruct',
12
- 'facets/openobject'
2
+ 'facets/array/indexable', # Array first!, last!
3
+ 'facets/enumerable/every',
4
+ 'facets/enumerable/group_by',
5
+ 'facets/exception/detail', # pretty print
6
+ 'facets/duplicable', # false.dup(), false.clone() and so on.
7
+ 'facets/blank',
8
+ 'facets/numeric/round.rb', # round_at, round_to
9
+ 'facets/hash',
10
+ 'facets/string/interpolate',
11
+ 'facets/ostruct',
12
+ 'facets/openobject'
13
13
  ]
14
14
 
15
15
  more = [
@@ -29,11 +29,11 @@ more = [
29
29
  string
30
30
  symbol
31
31
 
32
- should
32
+ extra_blank_slate
33
33
  declarative_cache
34
+ must
35
+ observable2
34
36
  open_constructor
35
- prepare_arguments
36
- synchronizer
37
- }.each do |f|
38
- require "#{File.dirname __FILE__}/ruby_ext/#{f}"
39
- end
37
+ prepare_arguments
38
+ synchronize
39
+ }.each{|f| require "ruby_ext/#{f}"}
@@ -0,0 +1,150 @@
1
+ module VResource
2
+ module ClassLoader
3
+ class << self
4
+ include Observable2
5
+
6
+ attr_accessor :error_on_defined_constant
7
+ def loaded_classes; @loaded_classes ||= {} end
8
+
9
+ def reload_class class_name
10
+ class_name = class_name.sub(/^::/, "")
11
+ namespace = Module.namespace_for(class_name);
12
+ name = class_name.sub(/^#{namespace}::/, "")
13
+ return load_class namespace, name, true
14
+ end
15
+ synchronize_method :reload_class
16
+
17
+
18
+ def load_class namespace, const, reload = false
19
+ namespace = nil if namespace == Object or namespace == Module
20
+ target_namespace = namespace
21
+
22
+ # Name hack (for anonymous classes)
23
+ namespace = eval "#{name_hack(namespace)}" if namespace
24
+
25
+ class_name = namespace ? "#{namespace.name}::#{const}" : const
26
+ simple_also_tried = false
27
+ begin
28
+ simple_also_tried = (namespace == nil)
29
+
30
+ if try_load(class_name, const)
31
+ defined_in_home_scope = namespace ? namespace.const_defined?(const) : Object.const_defined?(const)
32
+
33
+ unless defined_in_home_scope
34
+ msg = "Class Name '#{class_name}' doesn't correspond to File Name '#{VResource.class_to_virtual_file(class_name)}'!"
35
+ raise_without_self NameError, msg, ClassLoader
36
+ end
37
+
38
+ unless reload
39
+ if loaded_classes.include? class_name
40
+ if error_on_defined_constant
41
+ raise_without_self NameError, "Class '#{class_name}' is not defined in the '#{target_namespace}' Namespace!", ClassLoader
42
+ else
43
+ warn "Warn: Class '#{class_name}' is not defined in the '#{target_namespace}' Namespace!"
44
+ puts caller
45
+ end
46
+ end
47
+ end
48
+
49
+ result = namespace ? namespace.const_get(const) : Object.const_get(const)
50
+
51
+ loaded_classes[class_name] = target_namespace
52
+ notify_observers :update_class, result
53
+ return result
54
+ elsif namespace
55
+ namespace = Module.namespace_for(namespace.name)
56
+ class_name = namespace ? "#{namespace.name}::#{const}" : const
57
+ end
58
+ end until simple_also_tried
59
+
60
+ raise_without_self NameError, "uninitialized constant '#{class_name}'!", ClassLoader
61
+ end
62
+ synchronize_method :load_class
63
+
64
+ def wrap_inside_namespace namespace, script
65
+ nesting = []
66
+ if namespace
67
+ current_scope = ""
68
+ namespace.name.split("::").each do |level|
69
+ current_scope += "::#{level}"
70
+ type = eval current_scope, TOPLEVEL_BINDING, __FILE__, __LINE__
71
+ nesting << [level, (type.class == Module ? "module" : "class")]
72
+ end
73
+ end
74
+ begining = nesting.collect{|l, t| "#{t} #{l};"}.join(' ')
75
+ ending = nesting.collect{"end"}.join('; ')
76
+ return "#{begining}#{script} \n#{ending}"
77
+ end
78
+
79
+ def hook!
80
+ unless @hooked
81
+ ::Module.class_eval do
82
+ alias_method :cl_const_missing, :const_missing
83
+ def const_missing const
84
+ return VResource::ClassLoader.load_class self, const.to_s
85
+ end
86
+ end
87
+ @hooked = true
88
+ end
89
+ end
90
+
91
+ def unhook!
92
+ if @hooked
93
+ ::Module.class_eval do
94
+ alias_method :const_missing, :cl_const_missing
95
+ end
96
+ @hooked = false
97
+ end
98
+ end
99
+
100
+ protected
101
+
102
+ def try_load class_name, const
103
+ if VResource.class_exist? class_name
104
+ script = VResource.class_get class_name
105
+ script = wrap_inside_namespace Module.namespace_for(class_name), script
106
+ eval script, TOPLEVEL_BINDING, VResource.class_to_virtual_file(class_name)
107
+ # elsif Resource.class_namespace_exist? class_name
108
+ # script = "#{begining} module #{const}; end; #{ending}"
109
+ # eval script, TOPLEVEL_BINDING, __FILE__, __LINE__
110
+ else
111
+ return false
112
+ end
113
+ return true
114
+ end
115
+
116
+ def name_hack namespace
117
+ if namespace
118
+ namespace.to_s.gsub("#<Class:", "").gsub(">", "")
119
+ else
120
+ ""
121
+ end
122
+ # Namespace Hack description
123
+ # Module.name doesn't works correctly for Anonymous classes.
124
+ # try to execute this code:
125
+ #
126
+ #class Module
127
+ # def const_missing const
128
+ # p self.to_s
129
+ # end
130
+ #end
131
+ #
132
+ #class A
133
+ # class << self
134
+ # def a
135
+ # p self
136
+ # MissingConst
137
+ # end
138
+ # end
139
+ #end
140
+ #
141
+ #A.a
142
+ #
143
+ # the output will be:
144
+ # A
145
+ # "#<Class:A>"
146
+ #
147
+ end
148
+ end
149
+ end
150
+ end
@@ -0,0 +1,181 @@
1
+ module VResource
2
+ class FileSystemProvider
3
+ attr_accessor :directories
4
+
5
+ def initialize directories = File.expand_path('.')
6
+ @directories = Array(directories).collect{|path| File.expand_path path}
7
+ end
8
+
9
+ def class_get class_name
10
+ path = ensure_exist!(real_class_path(class_name))
11
+
12
+ if File.directory? path
13
+ "module #{File.basename(path)}; end;"
14
+ else
15
+ File.read path
16
+ end
17
+ end
18
+
19
+ # It updates existing class, if class doesn't exist it creates one in directory provided by filter
20
+ def class_set class_name, data, directory_for_class_file = nil
21
+ directory_for_class_file ||= Dir.getwd
22
+ directory_for_class_file = File.expand_path directory_for_class_file
23
+ unless directories.include? directory_for_class_file
24
+ raise "Dirctories should include '#{directory_for_class_file}'!"
25
+ end
26
+
27
+ path = real_class_path class_name
28
+ unless path
29
+ path = class_to_files(class_name).select{|f| f.include?(directory_for_class_file)}.first
30
+ dir = path.sub(/\w+\.rb/, "")
31
+ FileUtils.mkdir dir unless dir.empty? or File.exist? dir
32
+ end
33
+
34
+ length = File.write path, data
35
+
36
+ reloader.remember_file path
37
+ return length
38
+ end
39
+
40
+ def class_exist? class_name
41
+ real_class_path(class_name) != nil
42
+ end
43
+
44
+ def class_delete class_name
45
+ path = real_class_path class_name
46
+ File.delete path if path
47
+ end
48
+
49
+ # def class_namespace_exist? namespace_name
50
+ # File.exist? class_to_basefile(namespace_name)
51
+ # end
52
+
53
+ # First search for "./class_name.resource_name" files
54
+ # And then search for "./class_name.res/resource_name" files
55
+ def resource_get class_name, resource_name
56
+ path = ensure_exist!(real_resource_path(class_name, resource_name))
57
+
58
+ File.read path
59
+ end
60
+
61
+ def resource_delete class_name, resource_name
62
+ path = real_resource_path class_name, resource_name
63
+ File.delete path if path
64
+ end
65
+
66
+ # It can only update existing resource, it can't create a new one
67
+ # First search for the same resource and owerwrites it
68
+ # If such resource doesn't exists writes to
69
+ # "./class_name.res/resource_name" file.
70
+ def resource_set class_name, resource_name, data
71
+ class_path = ensure_exist!(real_class_path(class_name))
72
+
73
+ path = real_resource_path class_name, resource_name
74
+ unless path
75
+ class_path = class_path.sub(/\.rb$/, "")
76
+ dir = "#{class_path}.res"
77
+ FileUtils.mkdir dir unless File.exist? dir
78
+ path = "#{dir}/#{resource_name}"
79
+ end
80
+
81
+ length = File.write path, data
82
+ reloader.remember_file path
83
+ return length
84
+ end
85
+
86
+ def resource_exist? class_name, resource_name
87
+ class_path = ensure_exist!(real_class_path(class_name))
88
+
89
+ real_resource_path(class_name, resource_name) != nil
90
+ end
91
+
92
+ # def class_to_virtual_path class_name
93
+ # result = nil
94
+ # if @cache.include? class_name
95
+ # result = @cache[class_name]
96
+ # else
97
+ # result = nil
98
+ # path = "#{base_dir}/#{class_name.gsub("::", "/")}"
99
+ # if File.exist? path
100
+ # result = path
101
+ # else
102
+ # path2 = "#{path}.rb"
103
+ # if File.exist? path2
104
+ # result = path
105
+ # else
106
+ # path3 = "#{path}.res"
107
+ # if File.exist? path3
108
+ # result = path
109
+ # end
110
+ # end
111
+ # end
112
+ # @cache[class_name] = result
113
+ # end
114
+ #
115
+ # if result
116
+ # return result
117
+ # else
118
+ # raise Resource::NotExist, "Class '#{class_name}' doesn't Exist!"
119
+ # end
120
+ # end
121
+
122
+ # Different Providers can use different class path interpretation.
123
+ # So we return virtual path only if this path really exist.
124
+ def class_to_virtual_file class_name
125
+ path = ensure_exist!(real_class_path(class_name), "Class '#{class_name}' doesn't Exist!")
126
+ File.expand_path path
127
+ end
128
+ cache_method_with_params :class_to_virtual_file
129
+
130
+ def reloader
131
+ @reloader ||= FileSystemReloader.new directories
132
+ end
133
+
134
+ protected
135
+ def ensure_exist! path, msg = ""
136
+ raise VResource::NotExist, msg unless path
137
+ path
138
+ end
139
+
140
+ def real_class_path class_name
141
+ path = class_to_files(class_name).find{|f| File.exist? f}
142
+ path ||= class_to_basefiles(class_name).find{|f| File.exist? f}
143
+ return path
144
+ end
145
+
146
+ def real_resource_path class_name, resource_name
147
+ file = class_to_basefiles(class_name).collect{|f| "#{f}.#{resource_name}"}.find{|f| File.exist? f}
148
+ file ||= class_to_basefiles(class_name).collect{|f| "#{f}.res/#{resource_name}"}.find{|f| File.exist? f}
149
+ return file
150
+ end
151
+
152
+ def class_to_files class_name
153
+ class_to_basefiles(class_name).collect{|name| "#{name}.rb"}
154
+ end
155
+
156
+ # Different Providers can use different class path interpretation.
157
+ # So we return virtual path only if this path really exist.
158
+ def class_to_basefiles class_name
159
+ relative = class_name.gsub("::", "/")
160
+ return directories.collect{|dir| "#{dir}/#{relative}"}
161
+ end
162
+
163
+ # Doesn't make Sense for Virtual Resource System
164
+ # def resource_path class_name, resource_name
165
+ # @monitor.synchronize do
166
+ # path = "#{class_to_path(class_name)}.#{resource_name}"
167
+ # if File.exist? path
168
+ # return path
169
+ # else
170
+ # path = "#{class_to_path(class_name)}.res/#{resource_name}"
171
+ # if File.exist? path
172
+ # return path
173
+ # else
174
+ # nil
175
+ # end
176
+ # end
177
+ # end
178
+ # end
179
+
180
+ end
181
+ end