rad_core 0.0.13 → 0.0.14

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 (330) hide show
  1. data/Rakefile +4 -3
  2. data/lib/components/config.rb +6 -0
  3. data/lib/components/controller.rb +5 -0
  4. data/lib/components/controller.yml +3 -0
  5. data/lib/components/conveyors.rb +7 -0
  6. data/lib/components/environment.rb +5 -0
  7. data/lib/components/environment.yml +3 -0
  8. data/lib/components/flash.rb +5 -0
  9. data/lib/components/html.rb +4 -0
  10. data/lib/components/html.yml +3 -0
  11. data/lib/components/http.rb +6 -0
  12. data/lib/components/http.yml +13 -0
  13. data/lib/components/logger.rb +5 -0
  14. data/lib/components/mailer.rb +9 -0
  15. data/lib/components/remote.rb +4 -0
  16. data/lib/components/router.rb +13 -0
  17. data/lib/components/router.yml +2 -0
  18. data/lib/components/template.rb +8 -0
  19. data/lib/components/template.yml +1 -0
  20. data/lib/components/web.rb +8 -0
  21. data/lib/components/workspace.rb +1 -0
  22. data/lib/rad/{support → _support}/active_support/locales/en/actionpack.yml +0 -0
  23. data/lib/rad/{support → _support}/active_support/locales/en/activesupport.yml +0 -0
  24. data/lib/rad/_support/active_support/locales/ru/actionview.yml +162 -0
  25. data/lib/rad/_support/active_support/locales/ru/activesupport.yml +16 -0
  26. data/lib/rad/_support/active_support/locales/ru/datetime.yml +49 -0
  27. data/lib/rad/{support → _support}/active_support/micelaneous.rb +0 -0
  28. data/lib/rad/{support → _support}/active_support/time.rb +0 -0
  29. data/lib/rad/{support → _support}/active_support.rb +14 -2
  30. data/lib/rad/{support → _support}/addressable.rb +0 -0
  31. data/lib/rad/_support/callbacks.rb +166 -0
  32. data/lib/rad/_support/class_loader.rb +9 -0
  33. data/lib/rad/_support/encoding.rb +3 -0
  34. data/lib/rad/_support/exception.rb +45 -0
  35. data/lib/rad/_support/extensions.rb +20 -0
  36. data/lib/rad/_support/filters.rb +32 -0
  37. data/lib/rad/{support → _support}/hacks_and_fixes.rb +0 -0
  38. data/lib/rad/{support → _support}/mime.rb +6 -0
  39. data/lib/rad/{support → _support}/module.rb +7 -9
  40. data/lib/rad/_support/require.rb +62 -0
  41. data/lib/rad/{support → _support}/rson.rb +0 -0
  42. data/lib/rad/{support → _support}/ruby_ext_with_active_support.rb +0 -0
  43. data/lib/rad/{support → _support}/string.rb +9 -1
  44. data/lib/rad/controller/_abstract/micelaneous.rb +27 -0
  45. data/lib/rad/controller/_abstract/render.rb +159 -0
  46. data/lib/rad/controller/_abstract/responder.rb +13 -0
  47. data/lib/rad/controller/_abstract.rb +37 -0
  48. data/lib/rad/controller/_context.rb +15 -0
  49. data/lib/rad/controller/_http.rb +50 -0
  50. data/lib/rad/controller/_require.rb +19 -0
  51. data/lib/rad/controller/abstract.rb +1 -0
  52. data/lib/rad/controller/context.rb +1 -0
  53. data/lib/rad/controller/http.rb +1 -0
  54. data/lib/rad/controller/processors/controller_caller.rb +22 -24
  55. data/lib/rad/controller/processors/controller_error_handling.rb +46 -48
  56. data/lib/rad/controller/processors/controller_logger.rb +7 -9
  57. data/lib/rad/controller.rb +1 -28
  58. data/lib/rad/conveyors/_conveyor.rb +73 -0
  59. data/lib/rad/conveyors/_conveyors.rb +19 -0
  60. data/lib/rad/conveyors/_params.rb +10 -0
  61. data/lib/rad/conveyors/_processor.rb +13 -0
  62. data/lib/rad/conveyors/_require.rb +10 -0
  63. data/lib/rad/conveyors/_workspace.rb +34 -0
  64. data/lib/rad/conveyors/params.rb +1 -0
  65. data/lib/rad/conveyors/processor.rb +1 -0
  66. data/lib/rad/conveyors/processors/conveyor_logger.rb +23 -0
  67. data/lib/rad/conveyors/workspace.rb +1 -0
  68. data/lib/rad/conveyors.rb +1 -0
  69. data/lib/rad/core_web/_controller_micelaneous_helper.rb +17 -0
  70. data/lib/rad/core_web/_require.rb +25 -0
  71. data/lib/rad/core_web/_router/abstract_routing_helper.rb +20 -0
  72. data/lib/rad/core_web/_router/controller_routing_helper.rb +56 -0
  73. data/lib/rad/core_web/_router/view_routing_helper.rb +57 -0
  74. data/lib/rad/environment/_config.rb +27 -0
  75. data/lib/rad/environment/_environment.rb +17 -0
  76. data/lib/rad/environment/_files_helper.rb +55 -0
  77. data/lib/rad/environment/_logger.rb +53 -0
  78. data/lib/rad/environment/_require.rb +24 -0
  79. data/lib/rad/environment/config.rb +1 -111
  80. data/lib/rad/environment.rb +1 -55
  81. data/lib/{rad_core → rad}/gems.rb +2 -3
  82. data/lib/rad/html/_flash.rb +40 -0
  83. data/lib/rad/html/_helpers/basic_html_helper.rb +72 -0
  84. data/lib/rad/html/_helpers/flash_helper.rb +3 -0
  85. data/lib/rad/html/_helpers/form_helper.rb +114 -0
  86. data/lib/rad/html/_helpers/html_helper.rb +3 -0
  87. data/lib/rad/html/_helpers/javascript_helper.rb +27 -0
  88. data/lib/rad/html/_helpers/model_helper.rb +143 -0
  89. data/lib/rad/html/_require.rb +15 -0
  90. data/lib/rad/html/processors/prepare_flash.rb +22 -23
  91. data/lib/rad/html/processors/scoped_params.rb +18 -21
  92. data/lib/rad/html.rb +1 -26
  93. data/lib/rad/http/_http.rb +11 -0
  94. data/lib/rad/http/_http_adapter.rb +44 -0
  95. data/lib/rad/http/_request.rb +50 -0
  96. data/lib/rad/http/_require.rb +33 -0
  97. data/lib/rad/http/_response.rb +84 -0
  98. data/lib/rad/http/{support → _support}/rack/fixes.rb +0 -0
  99. data/lib/rad/http/_support/rack/rack_adapter.rb +57 -0
  100. data/lib/rad/http/processors/evaluate_format.rb +16 -19
  101. data/lib/rad/http/processors/http_logger.rb +10 -12
  102. data/lib/rad/http/processors/http_writer.rb +24 -26
  103. data/lib/rad/http/processors/prepare_params.rb +19 -18
  104. data/lib/rad/http/request.rb +1 -0
  105. data/lib/rad/http/response.rb +1 -0
  106. data/lib/rad/http.rb +1 -48
  107. data/lib/rad/mailer/_letter.rb +28 -0
  108. data/lib/rad/mailer/_mailer.rb +13 -0
  109. data/lib/rad/mailer/_mailer_controller.rb +38 -0
  110. data/lib/rad/mailer/_require.rb +7 -0
  111. data/lib/rad/mailer/mailer_controller.rb +1 -0
  112. data/lib/rad/mailer/processors/letter_builder.rb +34 -0
  113. data/lib/rad/mailer.rb +1 -0
  114. data/lib/rad/profiles/mailer.rb +5 -0
  115. data/lib/rad/profiles/web.rb +29 -52
  116. data/lib/rad/remote/_remote_controller.rb +9 -0
  117. data/lib/rad/remote/_require.rb +6 -0
  118. data/lib/rad/remote/processors/remote_caller.rb +44 -46
  119. data/lib/rad/remote/processors/remote_logger.rb +8 -10
  120. data/lib/rad/remote/remote_controller.rb +1 -0
  121. data/lib/rad/remote.rb +1 -9
  122. data/lib/rad/router/_abstract_router.rb +50 -0
  123. data/lib/rad/router/_alias_router.rb +124 -0
  124. data/lib/rad/router/_basic_router.rb +72 -0
  125. data/lib/rad/router/_configurator.rb +19 -0
  126. data/lib/rad/router/_core_routing_helper.rb +39 -0
  127. data/lib/rad/router/_default_format_processor.rb +10 -0
  128. data/lib/rad/router/_object_router.rb +184 -0
  129. data/lib/rad/router/_require.rb +31 -0
  130. data/lib/rad/router/_restful_router.rb +124 -0
  131. data/lib/rad/router/_router.rb +294 -0
  132. data/lib/rad/router/_simple_router.rb +21 -0
  133. data/lib/rad/router/abstract_router.rb +1 -0
  134. data/lib/rad/router/alias_router.rb +1 -0
  135. data/lib/rad/router/configurator.rb +1 -0
  136. data/lib/rad/router/micelaneous_router.rb +1 -0
  137. data/lib/rad/router/object_router.rb +1 -0
  138. data/lib/rad/router/processors/router.rb +23 -0
  139. data/lib/rad/router/restful_router.rb +1 -0
  140. data/lib/rad/{html/include_into_controller.rb → router/simple_router.rb} +0 -0
  141. data/lib/rad/router.rb +1 -29
  142. data/lib/rad/spec/controller.rb +20 -11
  143. data/lib/rad/spec/environment.rb +22 -38
  144. data/lib/rad/spec/http.rb +13 -86
  145. data/lib/rad/spec/http_controller.rb +105 -0
  146. data/lib/rad/spec/mailer.rb +27 -0
  147. data/lib/rad/spec/remote.rb +2 -2
  148. data/lib/rad/spec/router.rb +9 -11
  149. data/lib/rad/spec/template.rb +8 -2
  150. data/lib/rad/spec/xhtml.rb +0 -2
  151. data/lib/rad/spec.rb +4 -2
  152. data/lib/rad/template/_context.rb +92 -0
  153. data/lib/rad/template/_relative_path_resolver.rb +8 -0
  154. data/lib/rad/template/_require.rb +15 -0
  155. data/lib/rad/template/{support → _support}/tilt.rb +0 -0
  156. data/lib/rad/template/{support → _support}/tilt_fixes.rb +0 -0
  157. data/lib/rad/template/_template.rb +175 -0
  158. data/lib/rad/template/template_context.rb +1 -62
  159. data/lib/rad/template.rb +1 -25
  160. data/lib/rad.rb +8 -0
  161. data/readme.md +40 -12
  162. data/spec/controller/{abstract_controller_spec → abstract_spec}/views/OperationsOrderSpec/action.erb +0 -0
  163. data/spec/controller/{abstract_controller_spec → abstract_spec}/views/ViewVariablesSpec/action.erb +0 -0
  164. data/spec/controller/abstract_spec.rb +126 -0
  165. data/spec/controller/{controller_context_spec/views/ItemSpec → context_spec/views/NamespaceSpec/ClassSpec}/show.erb +0 -0
  166. data/spec/controller/{controller_context_spec/views/ItemSpec → context_spec/views/item_spec}/actions.erb +0 -0
  167. data/spec/controller/{controller_context_spec/views/NamespaceSpec/ClassSpec → context_spec/views/item_spec}/show.erb +0 -0
  168. data/spec/controller/{controller_context_spec/views/ItemSpec → context_spec/views/item_spec}/update.erb +0 -0
  169. data/spec/controller/{controller_context_spec → context_spec}/views/namespace_spec/class_spec/update.erb +0 -0
  170. data/spec/controller/{controller_context_spec/views/PageSpec → context_spec/views/page_spec}/actions.erb +0 -0
  171. data/spec/controller/{controller_context_spec/views/PageSpec → context_spec/views/page_spec}/show.erb +0 -0
  172. data/spec/controller/context_spec.rb +123 -0
  173. data/spec/controller/error_handling_spec.rb +21 -27
  174. data/spec/controller/{controller_helper_spec → helper_spec}/views/HelperMethodSpec/action.erb +0 -0
  175. data/spec/controller/{controller_helper_spec → helper_spec}/views/HelperSpec/action.erb +0 -0
  176. data/spec/controller/{controller_helper_spec.rb → helper_spec.rb} +7 -13
  177. data/spec/controller/{http_controller_spec.rb → http_spec.rb} +17 -23
  178. data/spec/controller/{controller_render_spec/views/AlreadyRenderedSpec → render_spec/views/already_rendered_spec}/action.erb +0 -0
  179. data/spec/controller/{controller_render_spec/views/AlreadyRenderedSpec → render_spec/views/already_rendered_spec}/custom_template.erb +0 -0
  180. data/spec/controller/{controller_render_spec/views/AnotherActionSpec → render_spec/views/another_action_spec}/another_action.erb +0 -0
  181. data/spec/controller/{controller_render_spec/views/AnotherLayout → render_spec/views/another_layout}/action.erb +0 -0
  182. data/spec/controller/{controller_render_spec/views/ForbidPartialAsActionSpec → render_spec/views/forbid_partial_as_action_spec}/_action.erb +0 -0
  183. data/spec/controller/{controller_render_spec/views/FormatSpec → render_spec/views/format_spec}/action.html.erb +0 -0
  184. data/spec/controller/{controller_render_spec/views/FormatSpec → render_spec/views/format_spec}/action.js.erb +0 -0
  185. data/spec/controller/{controller_render_spec/views/LayoutFiltersSpec → render_spec/views/layout_filters_spec}/action_with_layout.erb +0 -0
  186. data/spec/controller/{controller_render_spec/views/LayoutFiltersSpec → render_spec/views/layout_filters_spec}/action_without_layout.erb +0 -0
  187. data/spec/controller/{controller_render_spec/views/LayoutSpec → render_spec/views/layout_spec}/action.erb +0 -0
  188. data/spec/controller/{controller_render_spec → render_spec}/views/layouts/admin.erb +0 -0
  189. data/spec/controller/{controller_render_spec → render_spec}/views/layouts/app.html.erb +0 -0
  190. data/spec/controller/{controller_render_spec → render_spec}/views/layouts/app.js.erb +0 -0
  191. data/spec/controller/{controller_render_spec/views/MultipleActions → render_spec/views/multiple_actions}/actions.haml +0 -0
  192. data/spec/controller/render_spec/views/relative_spec/a/form.erb +1 -0
  193. data/spec/controller/render_spec/views/relative_spec/a/show.erb +1 -0
  194. data/spec/controller/render_spec/views/relative_spec/b/form.erb +1 -0
  195. data/spec/controller/{controller_render_spec → render_spec}/views/some_template.erb +0 -0
  196. data/spec/controller/{controller_render_spec → render_spec}/views/standalone.html.erb +0 -0
  197. data/spec/controller/{controller_render_spec.rb → render_spec.rb} +37 -27
  198. data/spec/{conveyor/conveyor_spec.rb → conveyors/conveyors_spec.rb} +36 -14
  199. data/spec/environment/config_spec.rb +13 -21
  200. data/spec/environment/environment_spec.rb +14 -41
  201. data/spec/environment/logger_spec.rb +4 -13
  202. data/spec/environment/minimal_app_spec/app.rb +1 -1
  203. data/spec/environment/minimal_app_spec.rb +12 -14
  204. data/spec/environment/standard_app_spec/app/lib/app/init.rb +1 -1
  205. data/spec/environment/standard_app_spec/plugin_a/lib/plugin_a/init.rb +1 -1
  206. data/spec/environment/standard_app_spec.rb +17 -25
  207. data/spec/html/basic_html_helper_spec.rb +7 -4
  208. data/spec/html/form_helper_spec.rb +5 -5
  209. data/spec/html/javascript_helper_spec.rb +9 -5
  210. data/spec/html/model_helper_spec.rb +9 -6
  211. data/spec/html/scoped_params_spec.rb +2 -2
  212. data/spec/html/spec_helper.rb +16 -24
  213. data/spec/http/http_spec.rb +14 -35
  214. data/spec/http/micelaneous_spec.rb +3 -3
  215. data/spec/{mail → mailer}/mail_controller_spec/views/body_template_spec/signup.erb +0 -0
  216. data/spec/{mail → mailer}/mail_controller_spec.rb +36 -12
  217. data/spec/mailer/spec_helper.rb +5 -0
  218. data/spec/remote/remote_spec.rb +23 -8
  219. data/spec/router/alias_router_spec.rb +29 -30
  220. data/spec/router/basic_router_spec.rb +44 -0
  221. data/spec/router/configurator_spec.rb +9 -6
  222. data/spec/router/integration_spec.rb +10 -7
  223. data/spec/router/object_router_spec.rb +186 -0
  224. data/spec/router/persistent_params_spec.rb +4 -4
  225. data/spec/router/restful_router_spec.rb +61 -53
  226. data/spec/router/{basic_spec.rb → router_spec.rb} +26 -23
  227. data/spec/router/routing_helper_spec.rb +5 -6
  228. data/spec/spec_helper.rb +4 -0
  229. data/spec/support/callbacks_spec.rb +1 -1
  230. data/spec/support/filters_spec.rb +2 -2
  231. data/spec/support/spec_helper.rb +1 -1
  232. data/spec/template/template_spec/views/format_for_partials/dialog.js.erb +1 -1
  233. data/spec/template/template_spec/views/nested/format/a.erb +1 -1
  234. data/spec/template/template_spec/views/nested/format/b.js.erb +1 -0
  235. data/spec/template/template_spec/views/nesting_format/dialog.js.erb +1 -1
  236. data/spec/template/template_spec.rb +62 -48
  237. data/spec/template/tilt_spec/views/concat_and_capture.erb +1 -1
  238. data/spec/template/tilt_spec/views/concat_and_capture.haml +1 -1
  239. data/spec/template/tilt_spec.rb +17 -19
  240. data/spec/{integration → web}/basic_spec/views/smoke_test_spec/action.erb +0 -0
  241. data/spec/{integration → web}/basic_spec.rb +31 -12
  242. data/spec/{integration → web}/controller_routing_helper_spec.rb +13 -11
  243. data/spec/{integration → web}/flash_spec.rb +57 -42
  244. data/spec/{integration → web}/spec_helper_spec.rb +11 -10
  245. data/spec/{integration → web}/view_routing_helper_spec.rb +44 -36
  246. metadata +338 -318
  247. data/lib/rad/controller/abstract_controller/micelaneous.rb +0 -31
  248. data/lib/rad/controller/abstract_controller/render.rb +0 -160
  249. data/lib/rad/controller/abstract_controller/responder.rb +0 -17
  250. data/lib/rad/controller/abstract_controller.rb +0 -64
  251. data/lib/rad/controller/controller_context.rb +0 -15
  252. data/lib/rad/controller/http_controller.rb +0 -48
  253. data/lib/rad/conveyor/conveyor.rb +0 -74
  254. data/lib/rad/conveyor/conveyors.rb +0 -20
  255. data/lib/rad/conveyor/params.rb +0 -14
  256. data/lib/rad/conveyor/processor.rb +0 -68
  257. data/lib/rad/conveyor/processors/conveyor_logger.rb +0 -25
  258. data/lib/rad/conveyor/workspace.rb +0 -36
  259. data/lib/rad/conveyor.rb +0 -29
  260. data/lib/rad/environment/dependency_resolver.rb +0 -107
  261. data/lib/rad/environment/environment.rb +0 -29
  262. data/lib/rad/environment/files_helper.rb +0 -55
  263. data/lib/rad/environment/logger.rb +0 -21
  264. data/lib/rad/html/flash.rb +0 -42
  265. data/lib/rad/html/helpers/basic_html_helper.rb +0 -83
  266. data/lib/rad/html/helpers/flash_helper.rb +0 -5
  267. data/lib/rad/html/helpers/form_helper.rb +0 -115
  268. data/lib/rad/html/helpers/html_helper.rb +0 -5
  269. data/lib/rad/html/helpers/javascript_helper.rb +0 -18
  270. data/lib/rad/html/helpers/model_helper.rb +0 -135
  271. data/lib/rad/http/http.rb +0 -21
  272. data/lib/rad/http/http_adapter.rb +0 -36
  273. data/lib/rad/http/middleware/static_files.rb +0 -21
  274. data/lib/rad/http/support/rack/rack_adapter.rb +0 -67
  275. data/lib/rad/http/support/rack/request.rb +0 -42
  276. data/lib/rad/http/support/rack/response.rb +0 -86
  277. data/lib/rad/integration/controller_micelaneous_helper.rb +0 -19
  278. data/lib/rad/integration/router/abstract_routing_helper.rb +0 -22
  279. data/lib/rad/integration/router/controller_routing_helper.rb +0 -58
  280. data/lib/rad/integration/router/view_routing_helper.rb +0 -104
  281. data/lib/rad/integration.rb +0 -30
  282. data/lib/rad/mail/letter.rb +0 -30
  283. data/lib/rad/mail/mail_controller.rb +0 -31
  284. data/lib/rad/mail/mailer.rb +0 -23
  285. data/lib/rad/mail/processors/letter_builder.rb +0 -36
  286. data/lib/rad/mail.rb +0 -15
  287. data/lib/rad/profiles/mail.rb +0 -16
  288. data/lib/rad/profiles/web_require.rb +0 -5
  289. data/lib/rad/remote/remote.rb +0 -15
  290. data/lib/rad/router/core/configurator.rb +0 -25
  291. data/lib/rad/router/core/core_routing_helper.rb +0 -41
  292. data/lib/rad/router/core/default_format_processor.rb +0 -12
  293. data/lib/rad/router/core/processors/router.rb +0 -29
  294. data/lib/rad/router/core/router.rb +0 -271
  295. data/lib/rad/router/core/simple_router.rb +0 -23
  296. data/lib/rad/router/routers/abstract_router.rb +0 -62
  297. data/lib/rad/router/routers/alias_router.rb +0 -113
  298. data/lib/rad/router/routers/restful_router.rb +0 -113
  299. data/lib/rad/spec/mail.rb +0 -31
  300. data/lib/rad/spec/view.rb +0 -10
  301. data/lib/rad/support/buffered_logger.rb +0 -44
  302. data/lib/rad/support/callbacks.rb +0 -168
  303. data/lib/rad/support/exception.rb +0 -31
  304. data/lib/rad/support/filters.rb +0 -34
  305. data/lib/rad/support/format.rb +0 -17
  306. data/lib/rad/support/micon.rb +0 -13
  307. data/lib/rad/support.rb +0 -63
  308. data/lib/rad/template/template.rb +0 -250
  309. data/spec/controller/abstract_controller_spec.rb +0 -132
  310. data/spec/controller/controller_context_spec.rb +0 -123
  311. data/spec/controller/controller_render_spec/views/rem ExplicitRenderSpec/action.erb +0 -1
  312. data/spec/controller/controller_render_spec/views/rem ExplicitRenderSpec/another_action.erb +0 -1
  313. data/spec/controller/spec_helper.rb +0 -19
  314. data/spec/conveyor/spec_helper.rb +0 -3
  315. data/spec/environment/config_spec/config.default.yml +0 -3
  316. data/spec/environment/config_spec/config.development.yml +0 -3
  317. data/spec/environment/config_spec/config.yml +0 -5
  318. data/spec/environment/spec_helper.rb +0 -1
  319. data/spec/http/http_spec/app/lib/app/init.rb +0 -10
  320. data/spec/http/http_spec/app/runtime/public/emptygit +0 -0
  321. data/spec/http/http_spec/plugin_a/lib/plugin_a/init.rb +0 -0
  322. data/spec/http/http_spec/plugin_b/lib/plugin_b/init.rb +0 -5
  323. data/spec/http/http_spec/plugin_b/static/emptygit +0 -0
  324. data/spec/http/spec_helper.rb +0 -5
  325. data/spec/integration/spec_helper.rb +0 -5
  326. data/spec/mail/spec_helper.rb +0 -7
  327. data/spec/remote/spec_helper.rb +0 -17
  328. data/spec/router/spec_helper.rb +0 -20
  329. data/spec/template/spec_helper.rb +0 -6
  330. data/spec/template/template_spec/views/nested/format/b.erb +0 -1
data/lib/rad/spec/view.rb DELETED
@@ -1,10 +0,0 @@
1
- raise 'not finished'
2
-
3
- #
4
- # Routes
5
- #
6
- rspec do
7
- def default_path
8
- rad.config.default_path!
9
- end
10
- end
@@ -1,44 +0,0 @@
1
- #
2
- # In development mode log also to STDOUT
3
- #
4
- ActiveSupport::BufferedLogger.class_eval do
5
-
6
- def flush_with_stdout
7
- STDOUT.write(buffer.join) unless buffer.empty?
8
- flush_without_stdout
9
- end
10
- rad.after :config do
11
- if rad.include?(:config) and (rad.config.development? or rad.config.stdout_logger(false))
12
- alias_method_chain :flush, :stdout
13
- end
14
- end
15
-
16
-
17
- def info_with_format obj
18
- info_without_format(obj_to_string(obj))
19
- end
20
- alias_method_chain :info, :format
21
-
22
- def warn_with_format obj
23
- warn_without_format("WARN: " + obj_to_string(obj))
24
- end
25
- alias_method_chain :warn, :format
26
-
27
- def error_with_format obj
28
- error_without_format("ERROR: " + obj_to_string(obj))
29
- end
30
- alias_method_chain :error, :format
31
-
32
- protected
33
- def obj_to_string obj
34
- if obj.is_a? Exception
35
- backtrace = (obj.backtrace && obj.backtrace.sfilter(Exception.common_filters)) || []
36
- %{\
37
- #{obj.message}
38
- #{backtrace.join("\n ")}
39
- }
40
- else
41
- obj.to_s
42
- end
43
- end
44
- end
@@ -1,168 +0,0 @@
1
- module Rad
2
- module Callbacks
3
- class AbstractCallback
4
- attr_accessor :executor, :terminator
5
- attr_reader :conditions
6
- def conditions= conditions
7
- @conditions = {}
8
- conditions.each do |k, v|
9
- @conditions[k.to_sym] = if v.is_a? Symbol
10
- v.to_s
11
- elsif v.is_a? Array
12
- v.collect{|e| e.to_s}
13
- else
14
- v
15
- end
16
- end
17
- @conditions
18
- end
19
-
20
- def terminate? target, result
21
- unless terminator.nil?
22
- if terminator.is_a? Proc
23
- terminator.call target, result
24
- else
25
- result == terminator
26
- end
27
- else
28
- false
29
- end
30
- end
31
-
32
- def run? target, inf
33
- if cond = conditions[:if]
34
- evaluate_if(cond, target, inf)
35
- elsif cond = conditions[:unless]
36
- !evaluate_if(cond, target, inf)
37
- elsif cond = conditions[:only]
38
- evaluate_only(cond, inf)
39
- elsif cond = conditions[:except]
40
- !evaluate_only(cond, inf)
41
- else
42
- true
43
- end
44
- end
45
-
46
- def add_to_chain target, inf, &the_next
47
- if run? target, inf
48
- build_block target, &the_next
49
- else
50
- the_next
51
- end
52
- end
53
-
54
- alias_method :deep_clone, :clone
55
-
56
- protected
57
- def evaluate_if cond, target, inf
58
- if cond.is_a? String
59
- target.send cond
60
- elsif cond.is_a? Proc
61
- cond.call target, inf
62
- else
63
- must_be.never_called
64
- end
65
- end
66
-
67
- def evaluate_only cond, inf
68
- method = inf[:method].to_s
69
- if cond.is_a? String
70
- cond == method
71
- elsif cond.is_a? Array
72
- cond.include? method
73
- end
74
- end
75
- end
76
-
77
- class BeforeCallback < AbstractCallback
78
- def build_block target, &the_next
79
- lambda do
80
- result = if executor.string_or_symbol?
81
- target.send executor
82
- elsif executor.is_a? Proc
83
- executor.call target
84
- else
85
- must_be.never_called
86
- end
87
-
88
- the_next.call unless terminate? target, result
89
- end
90
- end
91
- end
92
-
93
- class AroundCallback < AbstractCallback
94
- def build_block target, &the_next
95
- lambda do
96
- if executor.string_or_symbol?
97
- target.send executor, &the_next
98
- elsif executor.is_a? Proc
99
- executor.call target, the_next
100
- else
101
- must_be.never_called
102
- end
103
- end
104
- end
105
- end
106
-
107
- class AfterCallback < AbstractCallback
108
- def build_block target, &the_next
109
- lambda do
110
- result = if executor.string_or_symbol?
111
- target.send executor
112
- elsif executor.is_a? Proc
113
- executor.call target
114
- else
115
- must_be.never_called
116
- end
117
-
118
- the_next.call unless terminate? target, result
119
- end
120
- end
121
- end
122
-
123
- def run_callbacks callback_name, additional_information = {}, &block
124
- callback_name = callback_name.to_s
125
- block.must_be.defined
126
-
127
- callbacks = self.class.callbacks[callback_name]
128
- chain_head = block
129
- if callbacks and !callbacks.empty?
130
- callbacks.reverse_each do |callback|
131
- block = callback.add_to_chain self, additional_information, &chain_head
132
- chain_head = block if block
133
- end
134
- end
135
- chain_head.call
136
- end
137
-
138
- module ClassMethods
139
- inheritable_accessor :callbacks, {}
140
-
141
- def set_callback callback_name, type, *executor_or_options, &block
142
- # parsing arguments
143
- type, callback_name = type.to_s, callback_name.to_s
144
- opt = executor_or_options.extract_options!
145
- "You can't provide both method name and block for filter!" if block and !executor_or_options.empty?
146
- executor = block || executor_or_options.first
147
-
148
- type.must_be.in %w{before around after}
149
- executor.must_be.defined
150
-
151
- # creating callback
152
- callback = case type
153
- when 'before' then BeforeCallback.new
154
- when 'around' then AroundCallback.new
155
- when 'after' then AfterCallback.new
156
- end
157
-
158
- callback.executor = executor
159
- callback.terminator = opt.delete :terminator
160
- callback.conditions = opt
161
-
162
- callbacks[callback_name] ||= []
163
- callbacks[callback_name] << callback
164
- end
165
-
166
- end
167
- end
168
- end
@@ -1,31 +0,0 @@
1
- class Exception
2
- class << self
3
- attr_accessor :common_filters
4
- end
5
- end
6
- Exception.common_filters = [
7
- "/gems/haml",
8
- "/gems/tilt",
9
- "/gems/facets",
10
- "/gems/rack",
11
- "/gems/mongrel",
12
- "/gems/rspec",
13
- "/timeout.rb",
14
- "/bin/spec",
15
-
16
- "/rad/support/callbacks",
17
- "/rad/template/template",
18
- "/rad/template/support/tilt",
19
-
20
- "/abstract_inteface/lib/abstract_interface/view_builder",
21
- "/common_interface/lib/common_interface/view_helper",
22
-
23
- # "/rad/template",
24
- # "/rad/support",
25
-
26
- "/monitor",
27
- "/synchronize",
28
- "/class_loader",
29
- "/micon"
30
- ]
31
- # Exception.common_filters = []
@@ -1,34 +0,0 @@
1
- module Rad
2
- module Filters
3
- inherit Callbacks
4
-
5
- module ClassMethods
6
- def before *args, &block
7
- opt = args.extract_options!
8
- if block
9
- set_callback :action, :before, opt, &block
10
- else
11
- args.each{|executor| set_callback :action, :before, executor, opt}
12
- end
13
- end
14
-
15
- def around *args, &block
16
- opt = args.extract_options!
17
- if block
18
- set_callback :action, :around, opt, &block
19
- else
20
- args.each{|executor| set_callback :action, :around, executor, opt}
21
- end
22
- end
23
-
24
- def after *args, &block
25
- opt = args.extract_options!
26
- if block
27
- set_callback :action, :after, opt, &block
28
- else
29
- args.each{|executor| set_callback :action, :after, executor, opt}
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,17 +0,0 @@
1
- # module Rad
2
- # class Format < String
3
- # def == other
4
- # self.to_sym == other
5
- # end
6
- #
7
- # def method_missing m
8
- # m = m.to_s
9
- # super unless m[-1..-1] == '?'
10
- # self == m[0..-2].to_sym
11
- # end
12
- #
13
- # def inspect
14
- # self.to_sym.inspect
15
- # end
16
- # end
17
- # end
@@ -1,13 +0,0 @@
1
- module Rad
2
- class << self
3
- delegate :register, :[], :[]=, :before, :after, :before_scope, :after_scope, :activate, :include?, :clear, :delete, to: Micon
4
- end
5
- end
6
-
7
- def rad &block
8
- if block
9
- Rad.class_eval &block
10
- else
11
- Rad
12
- end
13
- end
data/lib/rad/support.rb DELETED
@@ -1,63 +0,0 @@
1
- #
2
- # ruby
3
- #
4
- raise 'ruby 1.9.2 or higher required!' unless RUBY_VERSION >= '1.9.2'
5
-
6
- Encoding.default_external = Encoding::UTF_8
7
- Encoding.default_internal = Encoding::UTF_8
8
- warn " default source encoding is not UTF-8, something wroing is going on!" if __ENCODING__ != Encoding::UTF_8
9
-
10
- # def ensure_utf8! string
11
- # raise "invalid encoding (#{string})!" unless string.encoding == Encoding::UTF_8
12
- # end
13
-
14
-
15
- #
16
- # gems
17
- #
18
- require 'rad_core/gems'
19
-
20
- require 'rad/support/active_support'
21
-
22
- require 'ruby_ext'
23
-
24
- require 'vfs'
25
-
26
- require 'ruby_ext/more/open_constructor'
27
- require 'rad/support/ruby_ext_with_active_support'
28
-
29
- require 'class_loader'
30
-
31
- require 'micon'
32
- require 'rad/support/micon'
33
-
34
- require 'dictionary'
35
-
36
- require 'thread'
37
- require 'time'
38
- require 'uri'
39
- require 'json'
40
-
41
-
42
- require 'addressable/uri'
43
- require 'rad/support/addressable'
44
- ::Uri = Addressable::URI
45
-
46
- #
47
- # support
48
- #
49
- require 'rad/support/hacks_and_fixes'
50
-
51
-
52
- autoload :Nokogiri, 'nokogiri'
53
-
54
- [
55
- 'module',
56
- 'buffered_logger',
57
- 'callbacks',
58
- 'filters',
59
- 'mime',
60
- 'string',
61
- 'rson',
62
- 'exception',
63
- ].each{|f| require "rad/support/#{f}"}
@@ -1,250 +0,0 @@
1
- module Rad
2
- module Template
3
- # DIRECTORY_NAME = "/views"
4
- DIRECTORY_NAME = ""
5
-
6
- class << self
7
- def paths; @paths ||= [] end
8
-
9
- inject(
10
- logger: :logger,
11
- config: :config,
12
- environment: :environment
13
- )
14
-
15
- def render *args, &block
16
- result, context = basic_render(parse_arguments(*args), &block)
17
- result
18
- end
19
-
20
- # def render_and_return_context *args, &block
21
- # basic_render(*parse_arguments(*args), &block)
22
- # end
23
-
24
- def render_layout *args
25
- options = parse_arguments(*args)
26
- options.must.include :content
27
- options.must.include :context
28
-
29
- result, context = basic_render options do |*args|
30
- if args.empty?
31
- options.content
32
- else
33
- args.size.must_be == 1
34
- variable_name = args.first.to_s
35
- self.context.content_variables[variable_name]
36
- end
37
- end
38
-
39
- result
40
- end
41
-
42
- def exist? tname, options = {}
43
- options = options.to_openobject
44
- !!find_template(tname, calculate_prefixes(options), options.format, exact_format?(options), options.current_dir)
45
- end
46
-
47
- def read tname, options = {}
48
- options = options.to_openobject
49
- file = find_template tname, calculate_prefixes(options), options.format, exact_format?(options), options.current_dir
50
- raise "No template '#{tname}'!" unless file
51
- File.read file
52
- end
53
-
54
- def template_name_with_prefix tname, prefix
55
- index = tname.rindex('/')
56
- index = index ? index + 1 : 0
57
- tname = tname.clone
58
- tname.insert index, prefix
59
- end
60
-
61
- def parse_arguments *args
62
- options = args.extract_options!.to_openobject
63
- if args.size == 1
64
- options.template = args.first
65
- else
66
- raise "Invalid input" if args.size != 0
67
- end
68
-
69
- options
70
- end
71
-
72
- def basic_render options, &block
73
- options = options.clone.to_openobject
74
-
75
- with_context options do |context|
76
- context.content_block ||= block
77
-
78
- with_scope options, context do |scope|
79
- unless file = options.file
80
- file = find_template options.template!, calculate_prefixes(options), scope.format, exact_format?(options), scope.current_dir
81
- raise "No template '#{options.template!}'!" unless file
82
- end
83
-
84
- scope.current_dir = dirname(file)
85
-
86
- template = create_tilt_template file
87
-
88
- result = with_template context, template do
89
- render_template template, options, &context.content_block
90
- end
91
-
92
- return result, context
93
- end
94
- end
95
- end
96
-
97
- protected
98
- def context
99
- Thread.current[:render_context]
100
- end
101
-
102
- def calculate_prefixes options
103
- options.action ? [''] : options.prefixes
104
- end
105
-
106
- def exact_format? options
107
- options.action? || options.exact_format?
108
- end
109
-
110
- def with_context options, &block
111
- context = Thread.current[:render_context] || options.context || create_context(options)
112
-
113
- old = Thread.current[:render_context]
114
- begin
115
- Thread.current[:render_context] = context
116
- block.call context
117
- ensure
118
- Thread.current[:render_context] = old
119
- end
120
- end
121
-
122
- def with_scope options, context, &block
123
- initial = context.scope_variables
124
-
125
- old = context.scope_variables || OpenObject.new
126
- begin
127
- context.scope_variables = {
128
- current_dir: (options.current_dir || old.current_dir),
129
- format: (options.format || old.format)
130
- # prefixes: options.prefixes || old.prefixes
131
- }.to_openobject
132
-
133
- block.call context.scope_variables
134
- ensure
135
- context.scope_variables = old if initial
136
- end
137
- end
138
-
139
- def with_template context, template, &block
140
- old = context._tilt_template
141
- begin
142
- context._tilt_template = template
143
- block.call context
144
- ensure
145
- context._tilt_template = old
146
- end
147
- end
148
-
149
- def create_context options
150
- context_class = options.context_class || TemplateContext
151
- raise "#{context_class} must inherit from TemplateContext!" unless context_class.is? TemplateContext
152
- context = context_class.new
153
-
154
- context.options = options
155
-
156
- if ivs = options.instance_variables
157
- (ivs.is_a?(Array) ? ivs : [ivs]).each do |container|
158
- if container.is_a? Hash
159
- container.each do |name, value|
160
- context.instance_variable_set("@#{name}", value)
161
- end
162
- else
163
- container.instance_variables.each do |ivname|
164
- iv = container.instance_variable_get(ivname)
165
- context.instance_variable_set(ivname, iv)
166
- end
167
- end
168
- end
169
- end
170
-
171
- context
172
- end
173
-
174
- def dirname path;
175
- File.dirname path
176
- end
177
- cache_method_with_params_in_production :dirname
178
-
179
- def find_template tname, prefixes, format, exact_format, current_dir
180
- tname.must_be.a String
181
- # splitted into two to optimize cache
182
- if tname =~ /^\//
183
- find_absolute_template tname, prefixes, format, exact_format
184
- else
185
- find_relative_template tname, prefixes, format, exact_format, current_dir
186
- end
187
- end
188
-
189
- def find_absolute_template tname, prefixes, format, exact_format
190
- prefixes = prefixes || config.default_template_prefixes!
191
- prefixes.each do |prefix|
192
- tname_with_prefix = template_name_with_prefix("#{DIRECTORY_NAME}#{tname}", prefix)
193
- file = find_file(tname_with_prefix, format, exact_format, paths) #environment.directories)
194
- return file if file
195
- end
196
- return nil
197
- end
198
- cache_method_with_params_in_production :find_absolute_template
199
-
200
- def find_relative_template tname, prefixes, format, exact_format, current_dir
201
- raise "You can't use relative template path '#{tname}' without :current_dir!" unless current_dir
202
- prefixes = prefixes || config.default_template_prefixes!
203
- prefixes.each do |prefix|
204
- tname_with_prefix = template_name_with_prefix("/#{tname}", prefix)
205
- file = find_file(tname_with_prefix, format, exact_format, [current_dir])
206
- return file if file
207
- end
208
- return nil
209
- end
210
- cache_method_with_params_in_production :find_relative_template
211
-
212
- def find_file tname, format, exact_format, directories
213
- if tname.include? '.'
214
- _find_file(tname, directories) || _find_file("#{tname}.*", directories)
215
- else
216
- if format
217
- _find_file("#{tname}.#{format}.*", directories) or
218
- _find_file("#{tname}.*", directories, exact_format)
219
- else
220
- _find_file("#{tname}.*", directories)
221
- end
222
- end
223
- end
224
-
225
- # with_one_extension - 'tname.*' matches not only 'tname.erb' but also 'tname.html.erb',
226
- # with this option enabled it will not match 'tname.html.erb', only 'tname.erb'
227
- def _find_file pattern, directories, with_one_extension = false
228
- files = environment.find_files_by_pattern_without_cache pattern, directories
229
- files = files.select{|f| f !~ /\.[^\.\/]+\.[^\.\/]+$/} if with_one_extension
230
- raise "multiple templates for '#{pattern}'!" if files.size > 1
231
- files.first
232
- end
233
-
234
- def create_tilt_template path
235
- template_options = {
236
- ugly: true,
237
- outvar: "@output"
238
- }
239
- template = Tilt.new(path, nil, template_options){|t| File.read(t.file)}
240
- end
241
-
242
- def render_template template, options, &block
243
- locals = options.locals || {}
244
- locals[:object] = options.object if options.object?
245
-
246
- template.render context, locals, &block
247
- end
248
- end
249
- end
250
- end