radiant 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of radiant might be problematic. Click here for more details.

Files changed (513) hide show
  1. data/CHANGELOG +33 -1
  2. data/CONTRIBUTORS +15 -2
  3. data/INSTALL +9 -7
  4. data/README +11 -7
  5. data/app/controllers/admin/layouts_controller.rb +5 -2
  6. data/app/controllers/admin/pages_controller.rb +8 -5
  7. data/app/controllers/admin/snippets_controller.rb +5 -2
  8. data/app/controllers/application_controller.rb +7 -0
  9. data/app/helpers/admin/node_helper.rb +2 -2
  10. data/app/helpers/application_helper.rb +2 -2
  11. data/app/models/radiant/config.rb +36 -4
  12. data/app/models/standard_tags.rb +1 -1
  13. data/app/views/admin/layouts/index.html.haml +15 -12
  14. data/app/views/admin/page_parts/_page_part.html.haml +2 -2
  15. data/app/views/admin/pages/index.html.haml +1 -1
  16. data/app/views/admin/snippets/_form.html.haml +1 -1
  17. data/app/views/admin/snippets/index.html.haml +14 -10
  18. data/config/database.db2.yml +20 -0
  19. data/config/environment.rb +4 -4
  20. data/config/environments/test.rb +1 -2
  21. data/features/support/env.rb +2 -1
  22. data/lib/generators/extension/extension_generator.rb +5 -0
  23. data/lib/generators/extension/templates/RSpecRakefile +11 -8
  24. data/lib/generators/extension/templates/cucumber.yml +1 -0
  25. data/lib/generators/extension/templates/cucumber_env.rb +16 -0
  26. data/lib/generators/extension/templates/cucumber_paths.rb +14 -0
  27. data/lib/generators/extension/templates/extension.rb +1 -1
  28. data/lib/generators/instance/instance_generator.rb +1 -1
  29. data/lib/generators/instance/templates/databases/db2.yml +40 -0
  30. data/lib/generators/instance/templates/instance_environment.rb +6 -6
  31. data/lib/local_time.rb +3 -9
  32. data/lib/radiant.rb +1 -1
  33. data/lib/radiant/cache.rb +10 -8
  34. data/lib/radiant/extension.rb +36 -0
  35. data/lib/radiant/extension/script.rb +1 -1
  36. data/lib/radiant/extension_loader.rb +5 -1
  37. data/lib/radiant/initializer.rb +52 -4
  38. data/lib/task_support.rb +33 -0
  39. data/lib/tasks/cucumber.rake +5 -1
  40. data/lib/tasks/radiant_config.rake +18 -0
  41. data/lib/tasks/release.rake +1 -0
  42. data/public/javascripts/admin/admin.js +1 -1
  43. data/spec/controllers/admin/layouts_controller_spec.rb +18 -12
  44. data/spec/controllers/admin/pages_controller_spec.rb +35 -29
  45. data/spec/controllers/admin/snippets_controller_spec.rb +11 -5
  46. data/spec/controllers/admin/welcome_controller_spec.rb +1 -1
  47. data/spec/controllers/application_controller_spec.rb +18 -0
  48. data/spec/fixtures/radiant_config.yml +10 -0
  49. data/spec/generators/extension_generator_spec.rb +12 -0
  50. data/spec/helpers/admin/node_helper_spec.rb +6 -0
  51. data/spec/helpers/application_helper_spec.rb +1 -1
  52. data/spec/lib/radiant/extension_loader_spec.rb +17 -0
  53. data/spec/lib/radiant/extension_spec.rb +28 -0
  54. data/spec/lib/radiant/initializer_spec.rb +34 -0
  55. data/spec/lib/task_support_spec.rb +42 -0
  56. data/spec/models/page_spec.rb +6 -2
  57. data/spec/models/radiant/config_spec.rb +42 -1
  58. data/spec/models/standard_tags_spec.rb +2 -2
  59. data/test/fixtures/extensions/01_basic/app/metal/basic_metal.rb +9 -0
  60. data/test/fixtures/extensions/02_overriding/app/metal/basic_metal.rb +9 -0
  61. data/vendor/extensions/textile_filter/textile.html +2 -2
  62. data/vendor/plugins/dataset/CHANGELOG +2 -1
  63. data/vendor/plugins/dataset/Rakefile +3 -0
  64. data/vendor/plugins/dataset/VERSION.yml +2 -2
  65. data/vendor/plugins/dataset/dataset.gemspec +9 -3
  66. data/vendor/plugins/dataset/lib/dataset.rb +3 -0
  67. data/vendor/radius/lib/radius.rb +5 -0
  68. data/vendor/radius/test/radius_test.rb +6 -0
  69. data/vendor/rails/actionmailer/CHANGELOG +8 -0
  70. data/vendor/rails/actionmailer/Rakefile +3 -2
  71. data/vendor/rails/actionmailer/lib/action_mailer/base.rb +2 -1
  72. data/vendor/rails/actionmailer/lib/action_mailer/version.rb +1 -1
  73. data/vendor/rails/actionmailer/test/abstract_unit.rb +0 -3
  74. data/vendor/rails/actionmailer/test/mail_service_test.rb +3 -2
  75. data/vendor/rails/actionpack/CHANGELOG +16 -0
  76. data/vendor/rails/actionpack/Rakefile +5 -3
  77. data/vendor/rails/actionpack/lib/action_controller.rb +2 -7
  78. data/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb +13 -3
  79. data/vendor/rails/actionpack/lib/action_controller/base.rb +12 -3
  80. data/vendor/rails/actionpack/lib/action_controller/caching.rb +1 -1
  81. data/vendor/rails/actionpack/lib/action_controller/caching/actions.rb +9 -1
  82. data/vendor/rails/actionpack/lib/action_controller/caching/sweeper.rb +45 -0
  83. data/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb +0 -42
  84. data/vendor/rails/actionpack/lib/action_controller/cookies.rb +1 -1
  85. data/vendor/rails/actionpack/lib/action_controller/dispatcher.rb +21 -6
  86. data/vendor/rails/actionpack/lib/action_controller/failsafe.rb +40 -6
  87. data/vendor/rails/actionpack/lib/action_controller/flash.rb +11 -3
  88. data/vendor/rails/actionpack/lib/action_controller/http_authentication.rb +7 -3
  89. data/vendor/rails/actionpack/lib/action_controller/integration.rb +5 -12
  90. data/vendor/rails/actionpack/lib/action_controller/middlewares.rb +0 -1
  91. data/vendor/rails/actionpack/lib/action_controller/params_parser.rb +6 -0
  92. data/vendor/rails/actionpack/lib/action_controller/reloader.rb +47 -7
  93. data/vendor/rails/actionpack/lib/action_controller/request.rb +6 -2
  94. data/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb +2 -1
  95. data/vendor/rails/actionpack/lib/action_controller/resources.rb +17 -13
  96. data/vendor/rails/actionpack/lib/action_controller/response.rb +8 -2
  97. data/vendor/rails/actionpack/lib/action_controller/routing.rb +3 -0
  98. data/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb +20 -6
  99. data/vendor/rails/actionpack/lib/action_controller/streaming.rb +4 -2
  100. data/vendor/rails/actionpack/lib/action_controller/test_process.rb +9 -1
  101. data/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb +1 -1
  102. data/vendor/rails/actionpack/lib/action_pack/version.rb +1 -1
  103. data/vendor/rails/actionpack/lib/action_view/helpers.rb +1 -1
  104. data/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb +21 -9
  105. data/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb +1 -1
  106. data/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb +2 -2
  107. data/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb +26 -12
  108. data/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb +71 -1
  109. data/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb +10 -4
  110. data/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb +1 -1
  111. data/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb +7 -7
  112. data/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb +5 -5
  113. data/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb +1 -1
  114. data/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb +23 -14
  115. data/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb +2 -2
  116. data/vendor/rails/actionpack/lib/action_view/locale/en.yml +4 -0
  117. data/vendor/rails/actionpack/lib/action_view/paths.rb +1 -1
  118. data/vendor/rails/actionpack/lib/action_view/template.rb +22 -33
  119. data/vendor/rails/actionpack/test/abstract_unit.rb +17 -1
  120. data/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb +3 -3
  121. data/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb +27 -0
  122. data/vendor/rails/actionpack/test/controller/caching_test.rb +40 -1
  123. data/vendor/rails/actionpack/test/controller/cookie_test.rb +16 -0
  124. data/vendor/rails/actionpack/test/controller/dispatcher_test.rb +59 -18
  125. data/vendor/rails/actionpack/test/controller/failsafe_test.rb +60 -0
  126. data/vendor/rails/actionpack/test/controller/filter_params_test.rb +3 -1
  127. data/vendor/rails/actionpack/test/controller/flash_test.rb +6 -1
  128. data/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb +25 -0
  129. data/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb +63 -9
  130. data/vendor/rails/actionpack/test/controller/integration_test.rb +31 -3
  131. data/vendor/rails/actionpack/test/controller/rack_test.rb +18 -1
  132. data/vendor/rails/actionpack/test/controller/redirect_test.rb +4 -1
  133. data/vendor/rails/actionpack/test/controller/reloader_test.rb +124 -0
  134. data/vendor/rails/actionpack/test/controller/render_test.rb +19 -9
  135. data/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb +24 -4
  136. data/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb +1 -62
  137. data/vendor/rails/actionpack/test/controller/request/test_request_test.rb +35 -0
  138. data/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb +0 -38
  139. data/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb +15 -0
  140. data/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb +6 -5
  141. data/vendor/rails/actionpack/test/controller/request_test.rb +218 -230
  142. data/vendor/rails/actionpack/test/controller/resources_test.rb +52 -0
  143. data/vendor/rails/actionpack/test/controller/routing_test.rb +28 -2
  144. data/vendor/rails/actionpack/test/controller/send_file_test.rb +12 -2
  145. data/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb +9 -32
  146. data/vendor/rails/actionpack/test/controller/test_test.rb +8 -0
  147. data/vendor/rails/actionpack/test/controller/url_rewriter_test.rb +29 -3
  148. data/vendor/rails/actionpack/test/fixtures/failsafe/500.html +1 -0
  149. data/vendor/rails/actionpack/test/fixtures/public/absolute/test.css +23 -0
  150. data/vendor/rails/actionpack/test/fixtures/public/absolute/test.js +63 -0
  151. data/vendor/rails/actionpack/test/template/active_record_helper_test.rb +1 -1
  152. data/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb +46 -0
  153. data/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb +29 -0
  154. data/vendor/rails/actionpack/test/template/form_helper_test.rb +143 -6
  155. data/vendor/rails/actionpack/test/template/form_options_helper_i18n_test.rb +27 -0
  156. data/vendor/rails/actionpack/test/template/form_options_helper_test.rb +56 -0
  157. data/vendor/rails/actionpack/test/template/form_tag_helper_test.rb +23 -6
  158. data/vendor/rails/actionpack/test/template/prototype_helper_test.rb +11 -11
  159. data/vendor/rails/actionpack/test/template/template_test.rb +32 -0
  160. data/vendor/rails/actionpack/test/template/text_helper_test.rb +23 -0
  161. data/vendor/rails/actionpack/test/template/url_helper_test.rb +8 -0
  162. data/vendor/rails/activerecord/CHANGELOG +18 -0
  163. data/vendor/rails/activerecord/Rakefile +26 -9
  164. data/vendor/rails/activerecord/examples/performance.rb +162 -0
  165. data/vendor/rails/activerecord/lib/active_record/associations.rb +104 -35
  166. data/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb +10 -5
  167. data/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb +2 -2
  168. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb +22 -4
  169. data/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb +5 -1
  170. data/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb +16 -0
  171. data/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb +1 -0
  172. data/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb +13 -3
  173. data/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb +15 -9
  174. data/vendor/rails/activerecord/lib/active_record/autosave_association.rb +15 -9
  175. data/vendor/rails/activerecord/lib/active_record/base.rb +34 -31
  176. data/vendor/rails/activerecord/lib/active_record/batches.rb +23 -15
  177. data/vendor/rails/activerecord/lib/active_record/calculations.rb +7 -13
  178. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +16 -2
  179. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +2 -2
  180. data/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +7 -0
  181. data/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +17 -8
  182. data/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +98 -35
  183. data/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb +15 -0
  184. data/vendor/rails/activerecord/lib/active_record/dirty.rb +1 -1
  185. data/vendor/rails/activerecord/lib/active_record/fixtures.rb +14 -11
  186. data/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb +1 -1
  187. data/vendor/rails/activerecord/lib/active_record/locale/en.yml +4 -0
  188. data/vendor/rails/activerecord/lib/active_record/named_scope.rb +3 -8
  189. data/vendor/rails/activerecord/lib/active_record/reflection.rb +1 -1
  190. data/vendor/rails/activerecord/lib/active_record/schema_dumper.rb +6 -3
  191. data/vendor/rails/activerecord/lib/active_record/serialization.rb +3 -2
  192. data/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb +10 -18
  193. data/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb +6 -2
  194. data/vendor/rails/activerecord/lib/active_record/session_store.rb +9 -1
  195. data/vendor/rails/activerecord/lib/active_record/timestamp.rb +39 -9
  196. data/vendor/rails/activerecord/lib/active_record/validations.rb +149 -80
  197. data/vendor/rails/activerecord/lib/active_record/version.rb +1 -1
  198. data/vendor/rails/activerecord/test/cases/adapter_test.rb +12 -0
  199. data/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb +102 -22
  200. data/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb +5 -5
  201. data/vendor/rails/activerecord/test/cases/associations/eager_test.rb +12 -0
  202. data/vendor/rails/activerecord/test/cases/associations/habtm_join_table_test.rb +56 -0
  203. data/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb +62 -2
  204. data/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb +46 -1
  205. data/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb +18 -1
  206. data/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb +5 -0
  207. data/vendor/rails/activerecord/test/cases/associations/join_model_test.rb +4 -4
  208. data/vendor/rails/activerecord/test/cases/autosave_association_test.rb +22 -0
  209. data/vendor/rails/activerecord/test/cases/base_test.rb +51 -6
  210. data/vendor/rails/activerecord/test/cases/calculations_test.rb +14 -14
  211. data/vendor/rails/activerecord/test/cases/column_definition_test.rb +34 -0
  212. data/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb +5 -5
  213. data/vendor/rails/activerecord/test/cases/dirty_test.rb +10 -0
  214. data/vendor/rails/activerecord/test/cases/finder_test.rb +21 -50
  215. data/vendor/rails/activerecord/test/cases/fixtures_test.rb +6 -1
  216. data/vendor/rails/activerecord/test/cases/helper.rb +1 -2
  217. data/vendor/rails/activerecord/test/cases/i18n_test.rb +5 -0
  218. data/vendor/rails/activerecord/test/cases/json_serialization_test.rb +57 -57
  219. data/vendor/rails/activerecord/test/cases/method_scoping_test.rb +14 -4
  220. data/vendor/rails/activerecord/test/cases/migration_test.rb +39 -11
  221. data/vendor/rails/activerecord/test/cases/modules_test.rb +42 -0
  222. data/vendor/rails/activerecord/test/cases/named_scope_test.rb +6 -4
  223. data/vendor/rails/activerecord/test/cases/pk_test.rb +18 -0
  224. data/vendor/rails/activerecord/test/cases/reflection_test.rb +7 -7
  225. data/vendor/rails/activerecord/test/cases/schema_dumper_test.rb +35 -7
  226. data/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb +76 -0
  227. data/vendor/rails/activerecord/test/cases/timestamp_test.rb +75 -0
  228. data/vendor/rails/activerecord/test/cases/validations_i18n_test.rb +656 -624
  229. data/vendor/rails/activerecord/test/cases/validations_test.rb +12 -2
  230. data/vendor/rails/activerecord/test/cases/xml_serialization_test.rb +20 -0
  231. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite +0 -0
  232. data/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite3 +0 -0
  233. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite +0 -0
  234. data/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite3 +0 -0
  235. data/vendor/rails/activerecord/test/fixtures/posts.yml +3 -0
  236. data/vendor/rails/activerecord/test/models/author.rb +5 -0
  237. data/vendor/rails/activerecord/test/models/comment.rb +5 -1
  238. data/vendor/rails/activerecord/test/models/company.rb +9 -7
  239. data/vendor/rails/activerecord/test/models/company_in_module.rb +1 -1
  240. data/vendor/rails/activerecord/test/models/contract.rb +5 -0
  241. data/vendor/rails/activerecord/test/models/developer.rb +10 -0
  242. data/vendor/rails/activerecord/test/models/essay.rb +3 -0
  243. data/vendor/rails/activerecord/test/models/organization.rb +2 -0
  244. data/vendor/rails/activerecord/test/models/pet.rb +1 -1
  245. data/vendor/rails/activerecord/test/models/project.rb +1 -1
  246. data/vendor/rails/activerecord/test/models/reply.rb +2 -1
  247. data/vendor/rails/activerecord/test/models/topic.rb +1 -2
  248. data/vendor/rails/activerecord/test/models/toy.rb +2 -0
  249. data/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb +13 -2
  250. data/vendor/rails/activerecord/test/schema/schema.rb +19 -0
  251. data/vendor/rails/activeresource/CHANGELOG +16 -0
  252. data/vendor/rails/activeresource/Rakefile +3 -2
  253. data/vendor/rails/activeresource/lib/active_resource/base.rb +89 -9
  254. data/vendor/rails/activeresource/lib/active_resource/connection.rb +73 -8
  255. data/vendor/rails/activeresource/lib/active_resource/exceptions.rb +66 -0
  256. data/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb +2 -2
  257. data/vendor/rails/activeresource/lib/active_resource/validations.rb +20 -4
  258. data/vendor/rails/activeresource/lib/active_resource/version.rb +1 -1
  259. data/vendor/rails/activeresource/test/abstract_unit.rb +1 -3
  260. data/vendor/rails/activeresource/test/base/load_test.rb +16 -1
  261. data/vendor/rails/activeresource/test/base_errors_test.rb +56 -19
  262. data/vendor/rails/activeresource/test/base_test.rb +147 -0
  263. data/vendor/rails/activeresource/test/connection_test.rb +42 -0
  264. data/vendor/rails/activeresource/test/debug.log +7974 -0
  265. data/vendor/rails/activeresource/test/fixtures/proxy.rb +4 -0
  266. data/vendor/rails/activesupport/CHANGELOG +13 -0
  267. data/vendor/rails/activesupport/lib/active_support/all.rb +8 -0
  268. data/vendor/rails/activesupport/lib/active_support/cache.rb +14 -1
  269. data/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb +16 -10
  270. data/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb +1 -1
  271. data/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb +1 -0
  272. data/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb +2 -1
  273. data/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb +2 -4
  274. data/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb +14 -4
  275. data/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb +4 -2
  276. data/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb +2 -0
  277. data/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb +19 -5
  278. data/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb +8 -6
  279. data/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb +15 -9
  280. data/vendor/rails/activesupport/lib/active_support/core_ext/string.rb +1 -0
  281. data/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb +29 -5
  282. data/vendor/rails/activesupport/lib/active_support/core_ext/string/bytesize.rb +5 -0
  283. data/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb +7 -7
  284. data/vendor/rails/activesupport/lib/active_support/deprecation.rb +9 -9
  285. data/vendor/rails/activesupport/lib/active_support/duration.rb +4 -2
  286. data/vendor/rails/activesupport/lib/active_support/json.rb +1 -22
  287. data/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb +38 -0
  288. data/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb +88 -0
  289. data/vendor/rails/activesupport/lib/active_support/json/decoding.rb +23 -72
  290. data/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb +9 -8
  291. data/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb +9 -8
  292. data/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb +14 -9
  293. data/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb +4 -2
  294. data/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb +21 -11
  295. data/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb +4 -2
  296. data/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb +16 -0
  297. data/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb +6 -2
  298. data/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb +4 -0
  299. data/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb +5 -32
  300. data/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb +2 -2
  301. data/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb +9 -8
  302. data/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb +4 -2
  303. data/vendor/rails/activesupport/lib/active_support/json/encoding.rb +80 -9
  304. data/vendor/rails/activesupport/lib/active_support/memoizable.rb +1 -1
  305. data/vendor/rails/activesupport/lib/active_support/message_verifier.rb +16 -3
  306. data/vendor/rails/activesupport/lib/active_support/multibyte.rb +30 -6
  307. data/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb +23 -17
  308. data/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb +61 -0
  309. data/vendor/rails/activesupport/lib/active_support/ordered_hash.rb +28 -0
  310. data/vendor/rails/activesupport/lib/active_support/test_case.rb +9 -8
  311. data/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb +2 -0
  312. data/vendor/rails/activesupport/lib/active_support/time_with_zone.rb +9 -8
  313. data/vendor/rails/activesupport/lib/active_support/vendor.rb +6 -7
  314. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -1
  315. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -1
  316. data/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -1
  317. data/vendor/rails/activesupport/lib/active_support/vendor/{memcache-client-1.6.5 → memcache-client-1.7.4}/memcache.rb +242 -70
  318. data/vendor/rails/activesupport/lib/active_support/version.rb +1 -1
  319. data/vendor/rails/activesupport/lib/active_support/xml_mini/jdom.rb +162 -0
  320. data/vendor/rails/railties/CHANGELOG +10 -0
  321. data/vendor/rails/railties/Rakefile +13 -9
  322. data/vendor/rails/railties/bin/about +2 -2
  323. data/vendor/rails/railties/bin/console +1 -1
  324. data/vendor/rails/railties/bin/dbconsole +1 -1
  325. data/vendor/rails/railties/bin/destroy +1 -1
  326. data/vendor/rails/railties/bin/generate +1 -1
  327. data/vendor/rails/railties/bin/performance/benchmarker +1 -1
  328. data/vendor/rails/railties/bin/performance/profiler +1 -1
  329. data/vendor/rails/railties/bin/plugin +1 -1
  330. data/vendor/rails/railties/bin/runner +1 -1
  331. data/vendor/rails/railties/bin/server +1 -1
  332. data/vendor/rails/railties/builtin/rails_info/rails/info.rb +4 -2
  333. data/vendor/rails/railties/configs/initializers/new_rails_defaults.rb +2 -0
  334. data/vendor/rails/railties/configs/routes.rb +1 -1
  335. data/vendor/rails/railties/configs/seeds.rb +7 -0
  336. data/vendor/rails/railties/environments/boot.rb +1 -1
  337. data/vendor/rails/railties/guides/files/javascripts/code_highlighter.js +188 -0
  338. data/vendor/rails/railties/guides/files/javascripts/guides.js +8 -0
  339. data/vendor/rails/railties/guides/files/javascripts/highlighters.js +90 -0
  340. data/vendor/rails/railties/guides/files/stylesheets/main.css +441 -0
  341. data/vendor/rails/railties/guides/files/stylesheets/print.css +52 -0
  342. data/vendor/rails/railties/guides/files/stylesheets/reset.css +43 -0
  343. data/vendor/rails/railties/guides/files/stylesheets/style.css +13 -0
  344. data/vendor/rails/railties/guides/files/stylesheets/syntax.css +31 -0
  345. data/vendor/rails/railties/guides/images/belongs_to.png +0 -0
  346. data/vendor/rails/railties/guides/images/book_icon.gif +0 -0
  347. data/vendor/rails/railties/guides/images/bullet.gif +0 -0
  348. data/vendor/rails/railties/guides/images/chapters_icon.gif +0 -0
  349. data/vendor/rails/railties/guides/images/check_bullet.gif +0 -0
  350. data/vendor/rails/railties/guides/images/credits_pic_blank.gif +0 -0
  351. data/vendor/rails/railties/guides/images/csrf.png +0 -0
  352. data/vendor/rails/railties/guides/images/customized_error_messages.png +0 -0
  353. data/vendor/rails/railties/guides/images/error_messages.png +0 -0
  354. data/vendor/rails/railties/guides/images/feature_tile.gif +0 -0
  355. data/vendor/rails/railties/guides/images/footer_tile.gif +0 -0
  356. data/vendor/rails/railties/guides/images/fxn.jpg +0 -0
  357. data/vendor/rails/railties/guides/images/grey_bullet.gif +0 -0
  358. data/vendor/rails/railties/guides/images/habtm.png +0 -0
  359. data/vendor/rails/railties/guides/images/has_many.png +0 -0
  360. data/vendor/rails/railties/guides/images/has_many_through.png +0 -0
  361. data/vendor/rails/railties/guides/images/has_one.png +0 -0
  362. data/vendor/rails/railties/guides/images/has_one_through.png +0 -0
  363. data/vendor/rails/railties/guides/images/header_backdrop.png +0 -0
  364. data/vendor/rails/railties/guides/images/header_tile.gif +0 -0
  365. data/vendor/rails/railties/guides/images/i18n/demo_localized_pirate.png +0 -0
  366. data/vendor/rails/railties/guides/images/i18n/demo_translated_en.png +0 -0
  367. data/vendor/rails/railties/guides/images/i18n/demo_translated_pirate.png +0 -0
  368. data/vendor/rails/railties/guides/images/i18n/demo_translation_missing.png +0 -0
  369. data/vendor/rails/railties/guides/images/i18n/demo_untranslated.png +0 -0
  370. data/vendor/rails/railties/guides/images/icons/README +5 -0
  371. data/vendor/rails/railties/guides/images/icons/callouts/1.png +0 -0
  372. data/vendor/rails/railties/guides/images/icons/callouts/10.png +0 -0
  373. data/vendor/rails/railties/guides/images/icons/callouts/11.png +0 -0
  374. data/vendor/rails/railties/guides/images/icons/callouts/12.png +0 -0
  375. data/vendor/rails/railties/guides/images/icons/callouts/13.png +0 -0
  376. data/vendor/rails/railties/guides/images/icons/callouts/14.png +0 -0
  377. data/vendor/rails/railties/guides/images/icons/callouts/15.png +0 -0
  378. data/vendor/rails/railties/guides/images/icons/callouts/2.png +0 -0
  379. data/vendor/rails/railties/guides/images/icons/callouts/3.png +0 -0
  380. data/vendor/rails/railties/guides/images/icons/callouts/4.png +0 -0
  381. data/vendor/rails/railties/guides/images/icons/callouts/5.png +0 -0
  382. data/vendor/rails/railties/guides/images/icons/callouts/6.png +0 -0
  383. data/vendor/rails/railties/guides/images/icons/callouts/7.png +0 -0
  384. data/vendor/rails/railties/guides/images/icons/callouts/8.png +0 -0
  385. data/vendor/rails/railties/guides/images/icons/callouts/9.png +0 -0
  386. data/vendor/rails/railties/guides/images/icons/caution.png +0 -0
  387. data/vendor/rails/railties/guides/images/icons/example.png +0 -0
  388. data/vendor/rails/railties/guides/images/icons/home.png +0 -0
  389. data/vendor/rails/railties/guides/images/icons/important.png +0 -0
  390. data/vendor/rails/railties/guides/images/icons/next.png +0 -0
  391. data/vendor/rails/railties/guides/images/icons/note.png +0 -0
  392. data/vendor/rails/railties/guides/images/icons/prev.png +0 -0
  393. data/vendor/rails/railties/guides/images/icons/tip.png +0 -0
  394. data/vendor/rails/railties/guides/images/icons/up.png +0 -0
  395. data/vendor/rails/railties/guides/images/icons/warning.png +0 -0
  396. data/vendor/rails/railties/guides/images/nav_arrow.gif +0 -0
  397. data/vendor/rails/railties/guides/images/polymorphic.png +0 -0
  398. data/vendor/rails/railties/guides/images/posts_index.png +0 -0
  399. data/vendor/rails/railties/guides/images/rails_guides_logo.gif +0 -0
  400. data/vendor/rails/railties/guides/images/rails_logo_remix.gif +0 -0
  401. data/vendor/rails/railties/guides/images/rails_welcome.png +0 -0
  402. data/vendor/rails/railties/guides/images/session_fixation.png +0 -0
  403. data/vendor/rails/railties/guides/images/tab_grey.gif +0 -0
  404. data/vendor/rails/railties/guides/images/tab_info.gif +0 -0
  405. data/vendor/rails/railties/guides/images/tab_note.gif +0 -0
  406. data/vendor/rails/railties/guides/images/tab_red.gif +0 -0
  407. data/vendor/rails/railties/guides/images/tab_yellow.gif +0 -0
  408. data/vendor/rails/railties/guides/images/tab_yellow.png +0 -0
  409. data/vendor/rails/railties/guides/images/validation_error_messages.png +0 -0
  410. data/vendor/rails/railties/guides/rails_guides.rb +42 -0
  411. data/vendor/rails/railties/guides/rails_guides/generator.rb +138 -0
  412. data/vendor/rails/railties/guides/rails_guides/helpers.rb +34 -0
  413. data/vendor/rails/railties/guides/rails_guides/indexer.rb +55 -0
  414. data/vendor/rails/railties/guides/rails_guides/textile_extensions.rb +41 -0
  415. data/vendor/rails/railties/guides/source/2_2_release_notes.textile +422 -0
  416. data/vendor/rails/railties/guides/source/2_3_release_notes.textile +610 -0
  417. data/vendor/rails/railties/guides/source/action_controller_overview.textile +776 -0
  418. data/vendor/rails/railties/guides/source/action_mailer_basics.textile +424 -0
  419. data/vendor/rails/railties/guides/source/active_record_basics.textile +135 -0
  420. data/vendor/rails/railties/guides/source/active_record_querying.textile +969 -0
  421. data/vendor/rails/railties/guides/source/activerecord_validations_callbacks.textile +1086 -0
  422. data/vendor/rails/railties/guides/source/association_basics.textile +1781 -0
  423. data/vendor/rails/railties/guides/source/caching_with_rails.textile +524 -0
  424. data/vendor/rails/railties/guides/source/command_line.textile +589 -0
  425. data/vendor/rails/railties/guides/source/configuring.textile +234 -0
  426. data/vendor/rails/railties/guides/source/contribute.textile +71 -0
  427. data/vendor/rails/railties/guides/source/contributing_to_rails.textile +239 -0
  428. data/vendor/rails/railties/guides/source/credits.erb.textile +52 -0
  429. data/vendor/rails/railties/guides/source/debugging_rails_applications.textile +709 -0
  430. data/vendor/rails/railties/guides/source/form_helpers.textile +766 -0
  431. data/vendor/rails/railties/guides/source/getting_started.textile +1297 -0
  432. data/vendor/rails/railties/guides/source/i18n.textile +912 -0
  433. data/vendor/rails/railties/guides/source/index.erb.textile +124 -0
  434. data/vendor/rails/railties/guides/source/layout.html.erb +103 -0
  435. data/vendor/rails/railties/guides/source/layouts_and_rendering.textile +979 -0
  436. data/vendor/rails/railties/guides/source/migrations.textile +591 -0
  437. data/vendor/rails/railties/guides/source/nested_model_forms.textile +222 -0
  438. data/vendor/rails/railties/guides/source/performance_testing.textile +531 -0
  439. data/vendor/rails/railties/guides/source/plugins.textile +1512 -0
  440. data/vendor/rails/railties/guides/source/rails_on_rack.textile +309 -0
  441. data/vendor/rails/railties/guides/source/routing.textile +903 -0
  442. data/vendor/rails/railties/guides/source/security.textile +986 -0
  443. data/vendor/rails/railties/guides/source/testing.textile +951 -0
  444. data/vendor/rails/railties/lib/commands/dbconsole.rb +8 -4
  445. data/vendor/rails/railties/lib/commands/performance/profiler.rb +1 -1
  446. data/vendor/rails/railties/lib/initializer.rb +27 -4
  447. data/vendor/rails/railties/lib/rails/gem_dependency.rb +35 -6
  448. data/vendor/rails/railties/lib/rails/plugin.rb +12 -0
  449. data/vendor/rails/railties/lib/rails/plugin/loader.rb +7 -0
  450. data/vendor/rails/railties/lib/rails/rack/metal.rb +1 -1
  451. data/vendor/rails/railties/lib/rails/version.rb +1 -1
  452. data/vendor/rails/railties/lib/rails_generator/base.rb +1 -1
  453. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb +5 -0
  454. data/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb +1 -1
  455. data/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb +9 -2
  456. data/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +1 -0
  457. data/vendor/rails/railties/lib/tasks/databases.rake +17 -4
  458. data/vendor/rails/railties/lib/tasks/gems.rake +19 -6
  459. data/vendor/rails/railties/lib/tasks/routes.rake +4 -3
  460. data/vendor/rails/railties/lib/test_help.rb +4 -1
  461. metadata +158 -58
  462. data/spec/lib/local_time_spec.rb +0 -40
  463. data/vendor/rails/actionpack/lib/action_controller/rewindable_input.rb +0 -28
  464. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack.rb +0 -89
  465. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/adapter/camping.rb +0 -22
  466. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/abstract/handler.rb +0 -37
  467. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/abstract/request.rb +0 -37
  468. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/basic.rb +0 -58
  469. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/md5.rb +0 -124
  470. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/nonce.rb +0 -51
  471. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/params.rb +0 -55
  472. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/digest/request.rb +0 -40
  473. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/auth/openid.rb +0 -480
  474. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/builder.rb +0 -63
  475. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/cascade.rb +0 -36
  476. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/chunked.rb +0 -49
  477. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/commonlogger.rb +0 -61
  478. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/conditionalget.rb +0 -45
  479. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/content_length.rb +0 -29
  480. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/content_type.rb +0 -23
  481. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/deflater.rb +0 -85
  482. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/directory.rb +0 -153
  483. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/file.rb +0 -88
  484. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler.rb +0 -48
  485. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/cgi.rb +0 -61
  486. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/evented_mongrel.rb +0 -8
  487. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/fastcgi.rb +0 -89
  488. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/lsws.rb +0 -55
  489. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/mongrel.rb +0 -84
  490. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/scgi.rb +0 -59
  491. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/swiftiplied_mongrel.rb +0 -8
  492. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/thin.rb +0 -18
  493. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb +0 -67
  494. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/head.rb +0 -19
  495. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lint.rb +0 -462
  496. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lobster.rb +0 -65
  497. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/lock.rb +0 -16
  498. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb +0 -27
  499. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/mime.rb +0 -204
  500. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/mock.rb +0 -160
  501. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/recursive.rb +0 -57
  502. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/reloader.rb +0 -64
  503. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/request.rb +0 -241
  504. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/response.rb +0 -179
  505. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/abstract/id.rb +0 -142
  506. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/cookie.rb +0 -91
  507. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/memcache.rb +0 -109
  508. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/session/pool.rb +0 -100
  509. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/showexceptions.rb +0 -349
  510. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/showstatus.rb +0 -106
  511. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/static.rb +0 -38
  512. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb +0 -55
  513. data/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb +0 -392
@@ -41,6 +41,34 @@ describe Radiant::Extension do
41
41
  Radiant::Extension.route_definitions.first.should == my_block
42
42
  end
43
43
 
44
+ it "should expose configuration object" do
45
+ SuperExtension.extension_config do |config|
46
+ config.should eql(Rails.configuration)
47
+ end
48
+ end
49
+
50
+ describe ".extension_enabled?" do
51
+ it "should be false if extension does not exist" do
52
+ BasicExtension.extension_enabled?(:bogus).should be_false
53
+ end
54
+
55
+ it "should be false if extension is inactive" do
56
+ OverridingExtension.active = false
57
+ BasicExtension.extension_enabled?(:overriding).should be_false
58
+ end
59
+
60
+ it "should be false if extension is not migrated" do
61
+ UpgradingExtension.migrator.new(:up, UpgradingExtension.migrations_path).pending_migrations.should_not be_empty # sanity check
62
+ BasicExtension.extension_enabled?(:upgrading).should be_false
63
+ end
64
+
65
+ it "should be true if extension is defined and migrated" do
66
+ ActiveRecord::Migration.suppress_messages do
67
+ UpgradingExtension.migrator.migrate
68
+ end
69
+ BasicExtension.extension_enabled?(:upgrading).should be_true
70
+ end
71
+ end
44
72
  end
45
73
 
46
74
  describe Radiant::Extension, "when inactive" do
@@ -47,6 +47,29 @@ describe Radiant::Configuration do
47
47
  it "should have access to the AdminUI" do
48
48
  @configuration.admin.should == Radiant::AdminUI.instance
49
49
  end
50
+
51
+ it "should initialize extension dependencies" do
52
+ @configuration.extension_dependencies.should eql([])
53
+ end
54
+
55
+ it "should add extension dependencies" do
56
+ @configuration.extension('basic')
57
+ @configuration.extension_dependencies.should eql(['basic'])
58
+ end
59
+
60
+ it "should validate dependencies" do
61
+ @configuration.extensions = [BasicExtension]
62
+ @configuration.extension('basic')
63
+ @configuration.check_extension_dependencies.should be_true
64
+ end
65
+
66
+ it "should report missing dependencies" do
67
+ @configuration.extensions = [BasicExtension]
68
+ @configuration.extension('does_not_exist')
69
+ lambda {
70
+ @configuration.check_extension_dependencies
71
+ }.should raise_error(SystemExit)
72
+ end
50
73
  end
51
74
 
52
75
  describe Radiant::Initializer do
@@ -94,4 +117,15 @@ describe Radiant::Initializer do
94
117
  it "should have access to the AdminUI" do
95
118
  @initializer.admin.should == Radiant::AdminUI.instance
96
119
  end
120
+
121
+ it "should load metal from RADIANT_ROOT and exensions" do
122
+ Rails::Rack::Metal.metal_paths.should == ["#{RADIANT_ROOT}/app/metal", "#{RADIANT_ROOT}/test/fixtures/extensions/02_overriding/app/metal", "#{RADIANT_ROOT}/test/fixtures/extensions/01_basic/app/metal"]
123
+ end
124
+
125
+ it "should check dependent extensions" do
126
+ @initializer.configuration.frameworks = [] # ActionMailer not loaded at this point
127
+ @initializer.configuration.should_receive(:check_extension_dependencies)
128
+ @initializer.after_initialize
129
+ end
130
+
97
131
  end
@@ -0,0 +1,42 @@
1
+ require File.dirname(__FILE__) + "/../spec_helper"
2
+
3
+ describe TaskSupport do
4
+ describe "self.config_export" do
5
+ before do
6
+ @yaml_file = "#{Rails.root}/tmp/config/radiant_config.yml"
7
+ FileUtils.rm_rf(File.dirname(@yaml_file))
8
+ Radiant::Config['test_data'] = 'test string'
9
+ File.exist?(@yaml_file).should be_false
10
+ end
11
+ it "should create a YAML file in config/radiant_config.yml" do
12
+ TaskSupport.config_export(@yaml_file)
13
+ File.exist?(@yaml_file).should be_true
14
+ end
15
+ it "should create YAML equal to Radiant::Config.to_hash" do
16
+ TaskSupport.config_export(@yaml_file)
17
+ YAML.load_file(@yaml_file).should == Radiant::Config.to_hash.to_yaml
18
+ end
19
+ end
20
+ describe "self.config_import" do
21
+ before do
22
+ @yaml_file = "#{RADIANT_ROOT}/spec/fixtures/radiant_config.yml"
23
+ end
24
+ it "should delete all Radiant::Config when the clear parameter is set to true" do
25
+ Radiant::Config['testing_clear'] = 'true'
26
+ TaskSupport.config_import(@yaml_file, true)
27
+ Radiant::Config['testing_clear'].should be_nil
28
+ end
29
+ it "should load from the given YAML path" do
30
+ @yaml = "--- \ndefaults.page.parts: body, extended\n"
31
+ @hash = {}
32
+ YAML.stub!(:load_file).and_return(@yaml)
33
+ YAML.should_receive(:load).with(@yaml).and_return(@hash)
34
+ TaskSupport.config_import(@yaml_file)
35
+ end
36
+ it "should update Radiant::Config with the settings from the given YAML" do
37
+ Radiant::Config.delete_all
38
+ TaskSupport.config_import(@yaml_file)
39
+ Radiant::Config.to_hash.should == YAML.load(YAML.load_file(@yaml_file))
40
+ end
41
+ end
42
+ end
@@ -184,7 +184,7 @@ describe Page do
184
184
  @page.status_id = Status[:published].id
185
185
  @page.save
186
186
  @page.published_at.should_not be_nil
187
- @page.published_at.day.should == Time.now.day
187
+ @page.published_at.utc.day.should == Time.now.utc.day
188
188
  end
189
189
 
190
190
  it 'should not update published_at when already published' do
@@ -514,7 +514,7 @@ describe Page, "class which is applied to a page but not defined" do
514
514
  dataset :pages
515
515
 
516
516
  before :each do
517
- eval(%Q{class ClassNotDefinedPage < Page; def self.missing?; false end end}, TOPLEVEL_BINDING)
517
+ Object.send(:const_set, :ClassNotDefinedPage, Class.new(Page){ def self.missing?; false end })
518
518
  create_page "Class Not Defined", :class_name => "ClassNotDefinedPage"
519
519
  Object.send(:remove_const, :ClassNotDefinedPage)
520
520
  Page.load_subclasses
@@ -531,6 +531,10 @@ describe Page, "class which is applied to a page but not defined" do
531
531
  it "should adjust the display name to indicate that the page type is not installed" do
532
532
  ClassNotDefinedPage.display_name.should match(/not installed/)
533
533
  end
534
+
535
+ after :each do
536
+ Object.send(:remove_const, :ClassNotDefinedPage)
537
+ end
534
538
  end
535
539
 
536
540
  describe Page, "class find_by_url" do
@@ -2,10 +2,14 @@ require File.dirname(__FILE__) + "/../../spec_helper"
2
2
 
3
3
  describe Radiant::Config do
4
4
  before :each do
5
+ Radiant::Config.initialize_cache
5
6
  @config = Radiant::Config
6
7
  set('test', 'cool')
7
8
  set('foo', 'bar')
8
9
  end
10
+ after :each do
11
+ Radiant::Cache.clear
12
+ end
9
13
 
10
14
  describe "before the table exists, as in case of before bootstrap" do
11
15
  before :each do
@@ -22,6 +26,43 @@ describe Radiant::Config do
22
26
  @config['test'] = 'cool'
23
27
  end
24
28
  end
29
+
30
+ it "should create a cache of all records in a hash with Radiant::Config.initialize_cache" do
31
+ Rails.cache.read('Radiant::Config').should == Radiant::Config.to_hash
32
+ end
33
+
34
+ it "should recreate the cache after a record is saved" do
35
+ Radiant::Config.create!(:key => 'cache', :value => 'true')
36
+ Rails.cache.read('Radiant::Config').should == Radiant::Config.to_hash
37
+ end
38
+
39
+ it "should update the mtime on the cache file after a record is saved" do
40
+ FileUtils.should_receive(:mkpath).with("#{Rails.root}/tmp").at_least(:once)
41
+ FileUtils.should_receive(:touch).with(Rails.cache.read('Radiant.cache_file'))
42
+ Radiant::Config['mtime'] = 'now'
43
+ end
44
+
45
+ it "should record the cache file mtime when the cache is initialized" do
46
+ Radiant::Config.initialize_cache
47
+ Rails.cache.read('Radiant.cache_mtime').should == File.mtime(Rails.cache.fetch('Radiant.cache_file'))
48
+ end
49
+
50
+ it "should create a cache file when initializing the cache" do
51
+ Radiant::Cache.clear
52
+ cache_file = File.join(Rails.root,'tmp','radiant_config_cache.txt')
53
+ FileUtils.rm_rf(cache_file) if File.exist?(cache_file)
54
+ Radiant::Config.initialize_cache
55
+ File.file?(cache_file).should be_true
56
+ end
57
+
58
+ it "should find the value in the cache with []" do
59
+ Radiant::Config['test'].should === Rails.cache.read('Radiant::Config')['test']
60
+ end
61
+
62
+ it "should set the value in the database with []=" do
63
+ Radiant::Config['new-db-key'] = 'db-value'
64
+ Radiant::Config.find_by_key('new-db-key').value.should == 'db-value'
65
+ end
25
66
 
26
67
  it "should return the value of a key with the bracket accessor" do
27
68
  @config['test'].should == 'cool'
@@ -68,6 +109,6 @@ describe Radiant::Config do
68
109
  def set(key, value)
69
110
  setting = Radiant::Config.find_by_key(key)
70
111
  setting.destroy if setting
71
- Radiant::Config.new(:key => key, :value => value).save
112
+ Radiant::Config.create!(:key => key, :value => value)
72
113
  end
73
114
  end
@@ -479,8 +479,8 @@ describe "Standard Tags" do
479
479
  end
480
480
  end
481
481
 
482
- it "should use the configured local timezone" do
483
- Radiant::Config["local.timezone"] = "Tokyo"
482
+ it "should use the currently set timezone" do
483
+ Time.zone = "Tokyo"
484
484
  format = "%H:%m"
485
485
  expected = page.published_at.in_time_zone(ActiveSupport::TimeZone['Tokyo']).strftime(format)
486
486
  page.should render(%Q(<r:date format="#{format}" />) ).as(expected)
@@ -0,0 +1,9 @@
1
+ class BasicMetal
2
+ def self.call(env)
3
+ if env["PATH_INFO"] =~ /^\/basic-metal/
4
+ [200, {"Content-Type" => 'text/html'}, ['Extension with Metal!']]
5
+ else
6
+ [404, {"Content-Type" => "text/html"}, ["Not Found"]]
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class BasicMetal
2
+ def self.call(env)
3
+ if env["PATH_INFO"] =~ /^\/basic-metal/
4
+ [200, {"Content-Type" => 'text/html'}, ['Overriding Extension with Metal!']]
5
+ else
6
+ [404, {"Content-Type" => "text/html"}, ["Not Found"]]
7
+ end
8
+ end
9
+ end
@@ -1,4 +1,4 @@
1
- <p>Many people prefer <a href="http://textism.com/tools/textile/" target="_blank">Textile</a>
1
+ <p>Many people prefer <a href="http://en.wikipedia.org/wiki/Textile_(markup_language)" target="_blank">Textile</a>
2
2
  over standard HTML because it is less verbose. Textile is very similar
3
3
  to plain text, but there are a few additional enhancements to make it
4
4
  suitable for hypertext documents.</p>
@@ -111,5 +111,5 @@ Textile is nice, and so are you!</pre>
111
111
 
112
112
  <p>Advanced users may want to play around with the official
113
113
  <a href="http://textism.com/tools/textile/" target="_blank">Textile Dingus</a> or review
114
- <a href="http://hobix.com/textile/" target="_blank">Why the Lucky Stiff&#8217;s Textile
114
+ the <a href="http://redcloth.org/textile/" target="_blank">RedCloth Textile
115
115
  Reference</a>.</p>
@@ -1,12 +1,13 @@
1
1
  *1.3.0 [Rails 2.3.2] (??)
2
2
 
3
3
  * Supporting Rails 2.3.2 [mhawkins, underlog]
4
+ * Added tasks to load path so folks can require 'dataset.rake' [aiwilliams]
5
+ * Updated gemspec to include dependencies [aiwilliams]
4
6
 
5
7
  *1.2.0 [Cucumber] (April 8, 2009)
6
8
 
7
9
  * Support for cucumber [jgarber, seancribbs]
8
10
 
9
-
10
11
  *1.1.0 [STI, belongs_to] (February 14, 2009)
11
12
 
12
13
  * STI is better supported for inserting, naming and finding records [aiwilliams]
@@ -19,6 +19,9 @@ begin
19
19
  s.summary = 'A simple API for creating and finding sets of data in your database, built on ActiveRecord.'
20
20
  s.email = 'adam@thewilliams.ws'
21
21
  s.files = FileList["[A-Z]*", "{lib,tasks}/**/*", "plugit/descriptor.rb"].exclude("tmp")
22
+ s.require_paths = ["lib", "tasks"]
23
+ s.add_dependency('activesupport', '>= 2.3.0')
24
+ s.add_dependency('activerecord', '>= 2.3.0')
22
25
  s.homepage = "http://github.com/aiwilliams/dataset"
23
26
  s.description = s.summary
24
27
  s.authors = ['Adam Williams']
@@ -1,4 +1,4 @@
1
1
  ---
2
- :minor: 3
3
- :patch: 0
2
+ :patch: 1
4
3
  :major: 1
4
+ :minor: 3
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{dataset}
5
- s.version = "1.3.0"
5
+ s.version = "1.3.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Adam Williams"]
9
- s.date = %q{2009-04-14}
9
+ s.date = %q{2009-06-12}
10
10
  s.description = %q{A simple API for creating and finding sets of data in your database, built on ActiveRecord.}
11
11
  s.email = %q{adam@thewilliams.ws}
12
12
  s.files = ["CHANGELOG", "LICENSE", "Rakefile", "README", "TODO", "VERSION.yml", "lib/dataset", "lib/dataset/base.rb", "lib/dataset/collection.rb", "lib/dataset/database", "lib/dataset/database/base.rb", "lib/dataset/database/mysql.rb", "lib/dataset/database/postgresql.rb", "lib/dataset/database/sqlite3.rb", "lib/dataset/extensions", "lib/dataset/extensions/cucumber.rb", "lib/dataset/extensions/rspec.rb", "lib/dataset/extensions/test_unit.rb", "lib/dataset/instance_methods.rb", "lib/dataset/load.rb", "lib/dataset/record", "lib/dataset/record/fixture.rb", "lib/dataset/record/meta.rb", "lib/dataset/record/model.rb", "lib/dataset/resolver.rb", "lib/dataset/session.rb", "lib/dataset/session_binding.rb", "lib/dataset/version.rb", "lib/dataset.rb", "tasks/dataset.rake", "plugit/descriptor.rb"]
13
13
  s.homepage = %q{http://github.com/aiwilliams/dataset}
14
- s.require_paths = ["lib"]
14
+ s.require_paths = ["lib", "tasks"]
15
15
  s.rubygems_version = %q{1.3.1}
16
16
  s.summary = %q{A simple API for creating and finding sets of data in your database, built on ActiveRecord.}
17
17
 
@@ -20,8 +20,14 @@ Gem::Specification.new do |s|
20
20
  s.specification_version = 2
21
21
 
22
22
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
23
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.3.0"])
24
+ s.add_runtime_dependency(%q<activerecord>, [">= 2.3.0"])
23
25
  else
26
+ s.add_dependency(%q<activesupport>, [">= 2.3.0"])
27
+ s.add_dependency(%q<activerecord>, [">= 2.3.0"])
24
28
  end
25
29
  else
30
+ s.add_dependency(%q<activesupport>, [">= 2.3.0"])
31
+ s.add_dependency(%q<activerecord>, [">= 2.3.0"])
26
32
  end
27
33
  end
@@ -1,3 +1,6 @@
1
+ require 'activesupport'
2
+ require 'activerecord'
3
+
1
4
  require 'dataset/version'
2
5
  require 'dataset/instance_methods'
3
6
  require 'dataset/base'
@@ -210,6 +210,11 @@ module Radius
210
210
  def render(tag, attributes = {}, &block)
211
211
  @context.render_tag(tag, attributes, &block)
212
212
  end
213
+
214
+ # Shortcut for accessing tag.attr[key]
215
+ def [](key)
216
+ attr[key]
217
+ end
213
218
  end
214
219
 
215
220
  #
@@ -197,6 +197,12 @@ class RadiusParserTest < Test::Unit::TestCase
197
197
  define_tag('hello') { |tag| tag.render('test', tag.attr) }
198
198
  assert_parse_output 'Hello John!', '<r:hello name="John" />'
199
199
  end
200
+
201
+ def test_accessing_tag_attributes_through_tag_indexer
202
+ define_tag('test') { |tag| "Hello #{tag['name']}!" }
203
+ assert_parse_output 'Hello John!', '<r:test name="John" />'
204
+ end
205
+
200
206
  def test_parse_tag__binding_render_tag_with_block
201
207
  define_tag('test') { |tag| "Hello #{tag.expand}!" }
202
208
  define_tag('hello') { |tag| tag.render('test') { tag.expand } }
@@ -1,3 +1,11 @@
1
+ *2.3.4 (September 4, 2009)*
2
+
3
+ * Minor bug fixes.
4
+
5
+ *2.3.3 (July 12, 2009)*
6
+
7
+ * No changes, just a version bump.
8
+
1
9
  *2.3.2 [Final] (March 15, 2009)*
2
10
 
3
11
  * Fixed that ActionMailer should send correctly formatted Return-Path in MAIL FROM for SMTP #1842 [Matt Jones]
@@ -4,7 +4,6 @@ require 'rake/testtask'
4
4
  require 'rake/rdoctask'
5
5
  require 'rake/packagetask'
6
6
  require 'rake/gempackagetask'
7
- require 'rake/contrib/sshpublisher'
8
7
  require File.join(File.dirname(__FILE__), 'lib', 'action_mailer', 'version')
9
8
 
10
9
  PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
@@ -55,7 +54,7 @@ spec = Gem::Specification.new do |s|
55
54
  s.rubyforge_project = "actionmailer"
56
55
  s.homepage = "http://www.rubyonrails.org"
57
56
 
58
- s.add_dependency('actionpack', '= 2.3.2' + PKG_BUILD)
57
+ s.add_dependency('actionpack', '= 2.3.4' + PKG_BUILD)
59
58
 
60
59
  s.has_rdoc = true
61
60
  s.requirements << 'none'
@@ -76,12 +75,14 @@ end
76
75
 
77
76
  desc "Publish the API documentation"
78
77
  task :pgem => [:package] do
78
+ require 'rake/contrib/sshpublisher'
79
79
  Rake::SshFilePublisher.new("gems.rubyonrails.org", "/u/sites/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload
80
80
  `ssh gems.rubyonrails.org '/u/sites/gems/gemupdate.sh'`
81
81
  end
82
82
 
83
83
  desc "Publish the API documentation"
84
84
  task :pdoc => [:rdoc] do
85
+ require 'rake/contrib/sshpublisher'
85
86
  Rake::SshDirPublisher.new("wrath.rubyonrails.org", "public_html/am", "doc").upload
86
87
  end
87
88
 
@@ -543,6 +543,7 @@ module ActionMailer #:nodoc:
543
543
  @headers ||= {}
544
544
  @body ||= {}
545
545
  @mime_version = @@default_mime_version.dup if @@default_mime_version
546
+ @sent_on ||= Time.now
546
547
  end
547
548
 
548
549
  def render_message(method_name, body)
@@ -674,7 +675,7 @@ module ActionMailer #:nodoc:
674
675
  def perform_delivery_smtp(mail)
675
676
  destinations = mail.destinations
676
677
  mail.ready_to_send
677
- sender = (mail['return-path'] && mail['return-path'].spec) || mail.from
678
+ sender = (mail['return-path'] && mail['return-path'].spec) || mail['from']
678
679
 
679
680
  smtp = Net::SMTP.new(smtp_settings[:address], smtp_settings[:port])
680
681
  smtp.enable_starttls_auto if smtp_settings[:enable_starttls_auto] && smtp.respond_to?(:enable_starttls_auto)
@@ -2,7 +2,7 @@ module ActionMailer
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 2
4
4
  MINOR = 3
5
- TINY = 2
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,9 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'test/unit'
3
3
 
4
- gem 'mocha', '>= 0.9.5'
5
- require 'mocha'
6
-
7
4
  $:.unshift "#{File.dirname(__FILE__)}/../lib"
8
5
  $:.unshift "#{File.dirname(__FILE__)}/../../activesupport/lib"
9
6
  $:.unshift "#{File.dirname(__FILE__)}/../../actionpack/lib"