activeadmin 0.4.4 → 0.5.0.pre

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

Potentially problematic release.


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

Files changed (310) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +5 -0
  3. data/CHANGELOG.md +50 -0
  4. data/CONTRIBUTING.md +2 -4
  5. data/Gemfile +10 -4
  6. data/Guardfile +0 -1
  7. data/LICENSE +1 -1
  8. data/README.rdoc +19 -8
  9. data/Rakefile +10 -1
  10. data/activeadmin.gemspec +2 -1
  11. data/app/assets/javascripts/active_admin/application.js +3 -9
  12. data/app/assets/javascripts/active_admin/base.js +1 -0
  13. data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +64 -0
  14. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +107 -0
  15. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +100 -0
  16. data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +27 -0
  17. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
  18. data/app/assets/javascripts/active_admin/pages/application.js.coffee +13 -0
  19. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
  20. data/app/assets/stylesheets/active_admin/_base.css.scss +32 -26
  21. data/app/assets/stylesheets/active_admin/_forms.css.scss +12 -5
  22. data/app/assets/stylesheets/active_admin/_header.css.scss +1 -2
  23. data/app/assets/stylesheets/active_admin/_typography.css.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  25. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -2
  26. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  27. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +3 -3
  28. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  29. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +20 -27
  31. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +1 -0
  32. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +38 -36
  33. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +5 -5
  34. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +7 -3
  35. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +19 -17
  36. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +2 -2
  37. data/app/assets/stylesheets/active_admin/print.css.scss +290 -0
  38. data/app/views/active_admin/dashboard/index.html.arb +1 -1
  39. data/app/views/active_admin/devise/passwords/edit.html.erb +17 -14
  40. data/app/views/active_admin/devise/passwords/new.html.erb +4 -4
  41. data/app/views/active_admin/devise/sessions/new.html.erb +6 -6
  42. data/app/views/active_admin/devise/shared/_links.erb +6 -6
  43. data/app/views/active_admin/page/index.html.arb +1 -1
  44. data/app/views/active_admin/resource/edit.html.arb +1 -1
  45. data/app/views/active_admin/resource/index.csv.erb +1 -1
  46. data/app/views/active_admin/resource/index.html.arb +1 -1
  47. data/app/views/active_admin/resource/new.html.arb +1 -1
  48. data/app/views/active_admin/resource/show.html.arb +1 -1
  49. data/app/views/layouts/active_admin.html.arb +1 -1
  50. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  51. data/cucumber.yml +1 -1
  52. data/docs/0-installation.md +10 -1
  53. data/docs/{9-custom-pages.md → 10-custom-pages.md} +0 -0
  54. data/docs/2-resource-customization.md +19 -1
  55. data/docs/3-index-pages.md +31 -0
  56. data/docs/4-csv-format.md +9 -0
  57. data/docs/6-show-screens.md +1 -1
  58. data/docs/9-batch-actions.md +161 -0
  59. data/features/dashboard.feature +31 -8
  60. data/features/development_reloading.feature +1 -1
  61. data/features/edit_page.feature +3 -3
  62. data/features/i18n.feature +35 -0
  63. data/features/index/batch_actions.feature +98 -0
  64. data/features/index/filters.feature +26 -0
  65. data/features/index/format_as_csv.feature +35 -0
  66. data/features/index/index_as_table.feature +30 -2
  67. data/features/index/index_blank_slate.feature +8 -3
  68. data/features/index/index_scopes.feature +130 -24
  69. data/features/index/page_title.feature +12 -0
  70. data/features/new_page.feature +3 -3
  71. data/features/registering_pages.feature +61 -0
  72. data/features/root_to.feature +17 -0
  73. data/features/show/default_content.feature +1 -1
  74. data/features/show/page_title.feature +14 -0
  75. data/features/sidebar_sections.feature +26 -0
  76. data/features/site_title.feature +1 -1
  77. data/features/specifying_actions.feature +7 -6
  78. data/features/step_definitions/action_link_steps.rb +1 -1
  79. data/features/step_definitions/additional_web_steps.rb +7 -1
  80. data/features/step_definitions/batch_action_steps.rb +94 -0
  81. data/features/step_definitions/configuration_steps.rb +30 -8
  82. data/features/step_definitions/factory_steps.rb +12 -0
  83. data/features/step_definitions/format_steps.rb +6 -2
  84. data/features/step_definitions/i18n_steps.rb +3 -0
  85. data/features/step_definitions/table_steps.rb +114 -0
  86. data/features/step_definitions/user_steps.rb +30 -4
  87. data/features/support/env.rb +54 -15
  88. data/features/support/paths.rb +2 -0
  89. data/features/users/logging_in.feature +1 -1
  90. data/features/users/logging_out.feature +2 -1
  91. data/features/users/resetting_password.feature +34 -0
  92. data/lib/active_admin.rb +46 -7
  93. data/lib/active_admin/application.rb +30 -15
  94. data/lib/active_admin/base_controller/menu.rb +3 -3
  95. data/lib/active_admin/batch_actions.rb +17 -0
  96. data/lib/active_admin/batch_actions/controller.rb +25 -0
  97. data/lib/active_admin/batch_actions/resource_extension.rb +126 -0
  98. data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
  99. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
  100. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +63 -0
  101. data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  102. data/lib/active_admin/comments.rb +5 -2
  103. data/lib/active_admin/comments/comment.rb +4 -3
  104. data/lib/active_admin/comments/views/active_admin_comments.rb +5 -5
  105. data/lib/active_admin/component.rb +1 -18
  106. data/lib/active_admin/csv_builder.rb +8 -3
  107. data/lib/active_admin/dashboards.rb +21 -4
  108. data/lib/active_admin/dashboards/dashboard_controller.rb +1 -5
  109. data/lib/active_admin/dependency_checker.rb +1 -1
  110. data/lib/active_admin/dsl.rb +61 -4
  111. data/lib/active_admin/engine.rb +1 -1
  112. data/lib/active_admin/filters.rb +8 -0
  113. data/lib/active_admin/filters/dsl.rb +12 -0
  114. data/lib/active_admin/filters/forms.rb +93 -0
  115. data/lib/active_admin/filters/resource_extension.rb +92 -0
  116. data/lib/active_admin/form_builder.rb +88 -33
  117. data/lib/active_admin/helpers/collection.rb +23 -0
  118. data/lib/active_admin/helpers/optional_display.rb +1 -1
  119. data/lib/active_admin/inputs/filter_select_input.rb +1 -1
  120. data/lib/active_admin/locales/bg.yml +37 -1
  121. data/lib/active_admin/locales/ca.yml +36 -0
  122. data/lib/active_admin/locales/cs.yml +36 -0
  123. data/lib/active_admin/locales/da.yml +36 -0
  124. data/lib/active_admin/locales/de.yml +42 -0
  125. data/lib/active_admin/locales/en.yml +27 -2
  126. data/lib/active_admin/locales/es.yml +45 -4
  127. data/lib/active_admin/locales/fr.yml +22 -0
  128. data/lib/active_admin/locales/{he_il.yml → he.yml} +37 -2
  129. data/lib/active_admin/locales/hr.yml +49 -5
  130. data/lib/active_admin/locales/hu.yml +21 -0
  131. data/lib/active_admin/locales/it.yml +36 -1
  132. data/lib/active_admin/locales/ja.yml +36 -0
  133. data/lib/active_admin/locales/ko.yml +36 -1
  134. data/lib/active_admin/locales/lv.yml +28 -2
  135. data/lib/active_admin/locales/nl.yml +42 -1
  136. data/lib/active_admin/locales/no-NB.yml +15 -0
  137. data/lib/active_admin/locales/pl.yml +45 -1
  138. data/lib/active_admin/locales/pt-BR.yml +36 -1
  139. data/lib/active_admin/locales/ro.yml +67 -0
  140. data/lib/active_admin/locales/ru.yml +43 -3
  141. data/lib/active_admin/locales/sv-SE.yml +41 -1
  142. data/lib/active_admin/locales/tr.yml +80 -0
  143. data/lib/active_admin/locales/vi.yml +80 -0
  144. data/lib/active_admin/locales/{zh_cn.yml → zh-CN.yml} +42 -2
  145. data/lib/active_admin/locales/zh-TW.yml +36 -1
  146. data/lib/active_admin/menu.rb +55 -30
  147. data/lib/active_admin/menu_builder.rb +65 -0
  148. data/lib/active_admin/menu_item.rb +55 -14
  149. data/lib/active_admin/namespace.rb +25 -55
  150. data/lib/active_admin/page.rb +15 -10
  151. data/lib/active_admin/resource.rb +9 -0
  152. data/lib/active_admin/resource/action_items.rb +4 -4
  153. data/lib/active_admin/resource/controllers.rb +1 -1
  154. data/lib/active_admin/resource/menu.rb +19 -21
  155. data/lib/active_admin/resource/naming.rb +55 -45
  156. data/lib/active_admin/resource/sidebars.rb +0 -13
  157. data/lib/active_admin/resource_collection.rb +10 -10
  158. data/lib/active_admin/resource_controller.rb +5 -5
  159. data/lib/active_admin/resource_controller/actions.rb +2 -0
  160. data/lib/active_admin/resource_controller/collection.rb +13 -4
  161. data/lib/active_admin/resource_dsl.rb +12 -6
  162. data/lib/active_admin/router.rb +27 -8
  163. data/lib/active_admin/scope.rb +1 -0
  164. data/lib/active_admin/sidebar_section.rb +2 -6
  165. data/lib/active_admin/version.rb +1 -1
  166. data/lib/active_admin/view_factory.rb +18 -13
  167. data/lib/active_admin/view_helpers.rb +0 -2
  168. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  169. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +24 -25
  170. data/lib/active_admin/view_helpers/display_helper.rb +1 -1
  171. data/lib/active_admin/view_helpers/fields_for.rb +44 -0
  172. data/lib/active_admin/view_helpers/form_helper.rb +6 -0
  173. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
  174. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  175. data/lib/active_admin/views/components/attributes_table.rb +6 -2
  176. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  177. data/lib/active_admin/views/components/paginated_collection.rb +13 -14
  178. data/lib/active_admin/views/components/popover.rb +27 -0
  179. data/lib/active_admin/views/components/scopes.rb +8 -13
  180. data/lib/active_admin/views/components/sidebar_section.rb +1 -1
  181. data/lib/active_admin/views/components/site_title.rb +55 -0
  182. data/lib/active_admin/views/components/status_tag.rb +4 -4
  183. data/lib/active_admin/views/components/table_for.rb +18 -18
  184. data/lib/active_admin/views/dashboard_section_renderer.rb +1 -1
  185. data/lib/active_admin/views/footer.rb +18 -0
  186. data/lib/active_admin/views/header.rb +31 -0
  187. data/lib/active_admin/views/index_as_block.rb +3 -0
  188. data/lib/active_admin/views/index_as_blog.rb +4 -0
  189. data/lib/active_admin/views/index_as_grid.rb +2 -0
  190. data/lib/active_admin/views/index_as_table.rb +19 -6
  191. data/lib/active_admin/views/pages/base.rb +14 -48
  192. data/lib/active_admin/views/pages/form.rb +3 -3
  193. data/lib/active_admin/views/pages/index.rb +56 -24
  194. data/lib/active_admin/views/pages/layout.rb +2 -2
  195. data/lib/active_admin/views/pages/page.rb +10 -4
  196. data/lib/active_admin/views/pages/show.rb +11 -8
  197. data/lib/active_admin/views/tabbed_navigation.rb +3 -3
  198. data/lib/active_admin/views/title_bar.rb +50 -0
  199. data/lib/active_admin/views/utility_nav.rb +41 -0
  200. data/lib/generators/active_admin/assets/assets_generator.rb +1 -1
  201. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -0
  202. data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +26 -3
  203. data/lib/generators/active_admin/devise/devise_generator.rb +2 -2
  204. data/lib/generators/active_admin/install/install_generator.rb +10 -10
  205. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +21 -1
  206. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +20 -0
  207. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  208. data/lib/generators/active_admin/resource/templates/admin.rb +1 -1
  209. data/spec/integration/memory_spec.rb +1 -11
  210. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  211. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  212. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  213. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  214. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  215. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  216. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  217. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  218. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  219. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  220. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  221. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  222. data/spec/javascripts/support/jasmine.yml +74 -0
  223. data/spec/javascripts/support/jasmine_config.rb +23 -0
  224. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  225. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  226. data/spec/javascripts/support/jquery.min.js +4 -0
  227. data/spec/spec_helper.rb +13 -13
  228. data/spec/spec_helper_without_rails.rb +2 -3
  229. data/spec/support/detect_rails_version.rb +16 -10
  230. data/spec/support/rails_template.rb +13 -1
  231. data/spec/support/templates/admin/stores.rb +1 -0
  232. data/spec/support/templates/en.yml +6 -0
  233. data/spec/unit/action_builder_spec.rb +38 -0
  234. data/spec/unit/application_spec.rb +12 -16
  235. data/spec/unit/base_controller_shared_examples.rb +3 -6
  236. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  237. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  238. data/spec/unit/breadcrumbs_spec.rb +33 -0
  239. data/spec/unit/comments_spec.rb +6 -0
  240. data/spec/unit/config_shared_examples.rb +17 -64
  241. data/spec/unit/csv_builder_spec.rb +12 -2
  242. data/spec/unit/dashboard_controller_spec.rb +11 -5
  243. data/spec/unit/dsl_include_spec.rb +20 -0
  244. data/spec/unit/{filter_form_builder_spec.rb → filters/filter_form_builder_spec.rb} +10 -7
  245. data/spec/unit/filters/resource_spec.rb +60 -0
  246. data/spec/unit/form_builder_spec.rb +180 -28
  247. data/spec/unit/helpers/collection_spec.rb +65 -0
  248. data/spec/unit/menu_item_spec.rb +48 -53
  249. data/spec/unit/menu_spec.rb +46 -32
  250. data/spec/unit/namespace/register_page_spec.rb +0 -6
  251. data/spec/unit/namespace/register_resource_spec.rb +1 -8
  252. data/spec/unit/namespace_spec.rb +8 -2
  253. data/spec/unit/page_spec.rb +20 -8
  254. data/spec/unit/resource/naming_spec.rb +27 -26
  255. data/spec/unit/resource/sidebars_spec.rb +0 -7
  256. data/spec/unit/resource_collection_spec.rb +11 -11
  257. data/spec/unit/resource_controller/collection_spec.rb +23 -1
  258. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  259. data/spec/unit/resource_controller_spec.rb +43 -0
  260. data/spec/unit/resource_registration_spec.rb +2 -13
  261. data/spec/unit/resource_spec.rb +0 -42
  262. data/spec/unit/routing_spec.rb +60 -14
  263. data/spec/unit/scope_spec.rb +7 -0
  264. data/spec/unit/view_factory_spec.rb +9 -6
  265. data/spec/unit/view_helpers/fields_for_spec.rb +41 -0
  266. data/spec/unit/view_helpers/form_helper_spec.rb +18 -0
  267. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  268. data/spec/unit/views/components/attributes_table_spec.rb +32 -20
  269. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  270. data/spec/unit/views/components/blank_slate_spec.rb +5 -3
  271. data/spec/unit/views/components/columns_spec.rb +32 -22
  272. data/spec/unit/views/components/paginated_collection_spec.rb +54 -12
  273. data/spec/unit/views/components/panel_spec.rb +11 -6
  274. data/spec/unit/views/components/popover_spec.rb +33 -0
  275. data/spec/unit/views/components/sidebar_section_spec.rb +6 -6
  276. data/spec/unit/views/components/site_title_spec.rb +78 -0
  277. data/spec/unit/views/components/status_tag_spec.rb +17 -10
  278. data/spec/unit/views/components/table_for_spec.rb +37 -17
  279. data/spec/unit/views/pages/layout_spec.rb +51 -10
  280. data/spec/unit/views/tabbed_navigation_spec.rb +44 -23
  281. data/tasks/js.rake +32 -0
  282. data/tasks/test.rake +1 -1
  283. metadata +233 -200
  284. data/lib/active_admin/arbre.rb +0 -22
  285. data/lib/active_admin/arbre/builder.rb +0 -125
  286. data/lib/active_admin/arbre/context.rb +0 -45
  287. data/lib/active_admin/arbre/html/attributes.rb +0 -20
  288. data/lib/active_admin/arbre/html/class_list.rb +0 -24
  289. data/lib/active_admin/arbre/html/collection.rb +0 -27
  290. data/lib/active_admin/arbre/html/document.rb +0 -42
  291. data/lib/active_admin/arbre/html/element.rb +0 -161
  292. data/lib/active_admin/arbre/html/html5_elements.rb +0 -47
  293. data/lib/active_admin/arbre/html/tag.rb +0 -145
  294. data/lib/active_admin/arbre/html/text_node.rb +0 -35
  295. data/lib/active_admin/filter_form_builder.rb +0 -53
  296. data/lib/active_admin/renderer.rb +0 -87
  297. data/lib/active_admin/resource_controller/filters.rb +0 -58
  298. data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
  299. data/lib/active_admin/view_helpers/filter_form_helper.rb +0 -36
  300. data/lib/active_admin/view_helpers/renderer_helper.rb +0 -29
  301. data/lib/active_admin/views/header_renderer.rb +0 -82
  302. data/lib/generators/active_admin/assets/templates/dashboards.rb +0 -36
  303. data/lib/generators/active_admin/install/templates/dashboards.rb +0 -44
  304. data/spec/unit/arbre/context_spec.rb +0 -35
  305. data/spec/unit/arbre/html/element_finder_methods_spec.rb +0 -110
  306. data/spec/unit/arbre/html/element_spec.rb +0 -236
  307. data/spec/unit/arbre/html/tag_attributes_spec.rb +0 -61
  308. data/spec/unit/arbre/html/tag_spec.rb +0 -63
  309. data/spec/unit/arbre/html_spec.rb +0 -228
  310. data/spec/unit/renderer_spec.rb +0 -126
@@ -1,61 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Arbre::HTML::Tag, "Attributes" do
4
-
5
- setup_arbre_context!
6
-
7
- let(:tag){ Arbre::HTML::Tag.new }
8
-
9
- describe "attributes" do
10
- before { tag.build :id => "my_id" }
11
-
12
- it "should have an attributes hash" do
13
- tag.attributes.should == {:id => "my_id"}
14
- end
15
-
16
- it "should render the attributes to html" do
17
- tag.to_s.should == <<-HTML
18
- <tag id="my_id"></tag>
19
- HTML
20
- end
21
-
22
- it "should get an attribute value" do
23
- tag.attr(:id).should == "my_id"
24
- end
25
-
26
- describe "#has_attribute?" do
27
- context "when the attribute exists" do
28
- it "should return true" do
29
- tag.has_attribute?(:id).should == true
30
- end
31
- end
32
-
33
- context "when the attribute does not exist" do
34
- it "should return false" do
35
- tag.has_attribute?(:class).should == false
36
- end
37
- end
38
- end
39
-
40
- it "should remove an attribute" do
41
- tag.attributes.should == {:id => "my_id"}
42
- tag.remove_attribute(:id).should == "my_id"
43
- tag.attributes.should == {}
44
- end
45
- end
46
-
47
- describe "rendering attributes" do
48
- it "should html safe the attribute values" do
49
- tag.set_attribute(:class, "\">bad things!")
50
- tag.to_s.should == <<-HTML
51
- <tag class="&quot;&gt;bad things!"></tag>
52
- HTML
53
- end
54
- it "should should escape the attribute names" do
55
- tag.set_attribute(">bad", "things")
56
- tag.to_s.should == <<-HTML
57
- <tag &gt;bad="things"></tag>
58
- HTML
59
- end
60
- end
61
- end
@@ -1,63 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Arbre::HTML::Tag do
4
-
5
- setup_arbre_context!
6
-
7
- let(:tag){ Arbre::HTML::Tag.new }
8
-
9
- describe "building a new tag" do
10
- before { tag.build "Hello World", :id => "my_id" }
11
-
12
- it "should set the contents to a string" do
13
- tag.content.should == "Hello World"
14
- end
15
-
16
- it "should set the hash of options to the attributes" do
17
- tag.attributes.should == { :id => "my_id" }
18
- end
19
- end
20
-
21
- describe "creating a tag 'for' an object" do
22
- let(:model_name){ mock(:singular => "resource_class", :param_key => 'resource_class')}
23
- let(:resource_class){ mock(:model_name => model_name) }
24
- let(:resource){ mock(:class => resource_class, :to_key => ['5'])}
25
-
26
- before do
27
- tag.build :for => resource
28
- end
29
- it "should set the id to the type and id" do
30
- tag.id.should == "resource_class_5"
31
- end
32
- it "should add a class name" do
33
- tag.class_list.should include("resource_class")
34
- end
35
- end
36
-
37
- describe "css class names" do
38
- it "should add a class" do
39
- tag.add_class "hello_world"
40
- tag.class_names.should == "hello_world"
41
- end
42
-
43
- it "should remove_class" do
44
- tag.add_class "hello_world"
45
- tag.class_names.should == "hello_world"
46
- tag.remove_class "hello_world"
47
- tag.class_names.should == ""
48
- end
49
-
50
- it "should not add a class if it already exists" do
51
- tag.add_class "hello_world"
52
- tag.add_class "hello_world"
53
- tag.class_names.should == "hello_world"
54
- end
55
-
56
- it "should seperate classes with space" do
57
- tag.add_class "hello world"
58
- tag.class_list.size.should == 2
59
- end
60
- end
61
-
62
-
63
- end
@@ -1,228 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Arbre do
4
-
5
- setup_arbre_context!
6
-
7
- it "should render a single element" do
8
- content = span("Hello World")
9
- content.to_s.should == <<-HTML
10
- <span>Hello World</span>
11
- HTML
12
- end
13
-
14
- it "should render a child element" do
15
- content = span do
16
- span "Hello World"
17
- end
18
- content.to_s.should == <<-HTML
19
- <span>
20
- <span>Hello World</span>
21
- </span>
22
- HTML
23
- end
24
-
25
- it "should render an unordered list" do
26
- content = ul do
27
- li "First"
28
- li "Second"
29
- li "Third"
30
- end
31
- content.to_s.should == <<-HTML
32
- <ul>
33
- <li>First</li>
34
- <li>Second</li>
35
- <li>Third</li>
36
- </ul>
37
- HTML
38
- end
39
-
40
- it "should return the correct object" do
41
- list_1 = ul
42
- list_2 = li
43
- list_1.should be_instance_of(Arbre::HTML::Ul)
44
- list_2.should be_instance_of(Arbre::HTML::Li)
45
- end
46
-
47
- it "should allow local variables inside the tags" do
48
- first = "First"
49
- second = "Second"
50
- content = ul do
51
- li first
52
- li second
53
- end
54
- content.to_s.should == <<-EOS
55
- <ul>
56
- <li>First</li>
57
- <li>Second</li>
58
- </ul>
59
- EOS
60
- end
61
-
62
- it "should add children and nested" do
63
- content = div do
64
- ul
65
- li do
66
- li
67
- end
68
- end
69
- content.to_s.should == <<-HTML
70
- <div>
71
- <ul></ul>
72
- <li>
73
- <li></li>
74
- </li>
75
- </div>
76
- HTML
77
- end
78
-
79
- it "should pass the element in to the block if asked for" do
80
- content = div do |d|
81
- d.ul do
82
- li
83
- end
84
- end
85
- content.to_s.should == <<-HTML
86
- <div>
87
- <ul>
88
- <li></li>
89
- </ul>
90
- </div>
91
- HTML
92
- end
93
-
94
- it "should move content tags between parents" do
95
- content = div do
96
- span(ul(li))
97
- end
98
- content.to_s.should == <<-HTML
99
- <div>
100
- <span>
101
- <ul>
102
- <li></li>
103
- </ul>
104
- </span>
105
- </div>
106
- HTML
107
- end
108
-
109
- it "should add content to the parent if the element is passed into block" do
110
- content = div do |d|
111
- d.id = "my-tag"
112
- ul do
113
- li
114
- end
115
- end
116
- content.to_s.should == <<-HTML
117
- <div id="my-tag">
118
- <ul>
119
- <li></li>
120
- </ul>
121
- </div>
122
- HTML
123
- end
124
-
125
- it "should have the parent set on it" do
126
- item = nil
127
- list = ul do
128
- li "Hello"
129
- item = li "World"
130
- end
131
- item.parent.should == list
132
- end
133
-
134
-
135
- ["Hello World", 1, 1.5].each do |value|
136
- it "should append the return value of '#{value}' when no other children added to the DOM" do
137
- li do
138
- value
139
- end.to_s.should == "<li>#{value}</li>\n"
140
- end
141
- end
142
-
143
- ["Hello World", 1, 1.5].each do |value|
144
- it "should not append the return value of '#{value}' when children have been added to the DOM" do
145
- li do
146
- text_node("Already Added")
147
- value
148
- end.to_s.should == "<li>Already Added</li>\n"
149
- end
150
- end
151
-
152
- describe "text nodes" do
153
- it "should turn strings into text nodes" do
154
- li do
155
- "Hello World"
156
- end.children.first.should be_instance_of(Arbre::HTML::TextNode)
157
- end
158
- end
159
-
160
- describe "self-closing nodes" do
161
- it "should not self-close script tags" do
162
- tag = script :type => 'text/javascript'
163
- tag.to_s.should == <<-HTML
164
- <script type="text/javascript"></script>
165
- HTML
166
- end
167
- it "should self-close meta tags" do
168
- tag = meta :content => "text/html; charset=utf-8"
169
- tag.to_s.should == <<-HTML
170
- <meta content="text/html; charset=utf-8\"/>
171
- HTML
172
- end
173
- it "should self-close link tags" do
174
- tag = link :rel => "stylesheet"
175
- tag.to_s.should == <<-HTML
176
- <link rel="stylesheet"/>
177
- HTML
178
- end
179
- end
180
-
181
- describe "html safe" do
182
- it "should escape the contents" do
183
- span("<br />").to_s.should == <<-HTML
184
- <span>&lt;br /&gt;</span>
185
- HTML
186
- end
187
-
188
- it "should return html safe strings" do
189
- span("<br />").to_s.should be_html_safe
190
- end
191
-
192
- it "should not escape html passed in" do
193
- span(span("<br />")).to_s.should == <<-HTML
194
- <span>
195
- <span>&lt;br /&gt;</span>
196
- </span>
197
- HTML
198
- end
199
-
200
- it "should escape string contents when passed in block" do
201
- span {
202
- span {
203
- "<br />"
204
- }
205
- }.to_s.should == <<-HTML
206
- <span>
207
- <span>&lt;br /&gt;</span>
208
- </span>
209
- HTML
210
- end
211
-
212
- it "should escape the contents of attributes" do
213
- span(:class => "<br />").to_s.should == <<-HTML
214
- <span class="&lt;br /&gt;"></span>
215
- HTML
216
- end
217
- end
218
-
219
- it "should not render blank nodes" do
220
- tbody = tbody do
221
- []
222
- end
223
- tbody.to_s.should == <<-HTML
224
- <tbody></tbody>
225
- HTML
226
- end
227
-
228
- end
@@ -1,126 +0,0 @@
1
- require 'spec_helper'
2
-
3
- include ActiveAdmin
4
-
5
- describe ActiveAdmin::Renderer do
6
-
7
- context "when initiailizing from a view" do
8
- it "should have a view" do
9
- view = action_view
10
- renderer = Renderer.new(view)
11
- renderer.view.should == view
12
- end
13
-
14
- it "should assign all local variables from the view" do
15
- Renderer.new(action_view(:foo => "bar")).send(:instance_variable_get, "@foo").should == "bar"
16
- end
17
-
18
- it "should assing an instance variable to the view" do
19
- view = action_view
20
- renderer = Renderer.new(view)
21
- renderer.send :set_ivar_on_view, "@my_ivar", 'Hello World'
22
- view.instance_variable_get("@my_ivar").should == 'Hello World'
23
- end
24
- end
25
-
26
- context "when initializing from another renderer" do
27
- it "should have the view" do
28
- view = action_view
29
- renderer = Renderer.new(Renderer.new(view))
30
- renderer.view.should == view
31
- end
32
-
33
- it "should assign local variables from the renderer" do
34
- view = action_view(:foo => 'bar')
35
- renderer = Renderer.new(Renderer.new(view))
36
- renderer.send(:instance_variable_get, "@foo").should == 'bar'
37
- end
38
-
39
- it "should assing an instance variable to the view" do
40
- view = action_view
41
- renderer = Renderer.new(Renderer.new(view))
42
- renderer.send :set_ivar_on_view, "@my_ivar", 'Hello World'
43
- view.instance_variable_get("@my_ivar").should == 'Hello World'
44
- end
45
- end
46
-
47
- context "when initializing from some other object" do
48
- it "should initialize successfully" do
49
- lambda {
50
- Renderer.new "Hello World"
51
- }.should_not raise_exception
52
- end
53
- end
54
-
55
- describe "rendering HAML" do
56
- before do
57
- @haml_renderer = Class.new(Renderer)
58
- @haml_renderer.class_eval do
59
- def hello_world
60
- "Hello World"
61
- end
62
- end
63
- end
64
- it "should render haml within the context of the renderer" do
65
- @haml_renderer.class_eval do
66
- def to_html
67
- haml <<-HAML
68
- %p
69
- =hello_world
70
- HAML
71
- end
72
- end
73
- @renderer = @haml_renderer.new(action_view)
74
- @renderer.to_html.should == "<p>\n Hello World\n</p>\n"
75
- end
76
-
77
- it "should allow for indentation at the start of the template" do
78
- @haml_renderer.class_eval do
79
- def to_html
80
- haml <<-HAML
81
- %p
82
- =hello_world
83
- HAML
84
- end
85
- end
86
- @renderer = @haml_renderer.new(action_view)
87
- @renderer.to_html.should == "<p>\n Hello World\n</p>\n"
88
- end
89
- end
90
-
91
- describe "#call_method_or_proc_on" do
92
- let(:renderer){ Renderer.new(action_view) }
93
- let(:obj){ "Hello World" }
94
- it "should return nil if no symbol or proc given" do
95
- renderer.send(:call_method_or_proc_on, obj, 1).should == nil
96
- end
97
- it "should call the method if a symbol is given" do
98
- renderer.send(:call_method_or_proc_on, obj, :size).should == obj.size
99
- end
100
- it "should call the method if a string is given" do
101
- renderer.send(:call_method_or_proc_on, obj, "size").should == obj.size
102
- end
103
- it "should call the proc with the object if a proc is given" do
104
- p = Proc.new{|string| string.size }
105
- renderer.send(:call_method_or_proc_on, obj, p).should == obj.size
106
- end
107
- end
108
-
109
- describe "#render_or_call_method_or_proc_on" do
110
- let(:renderer){ Renderer.new(action_view) }
111
- let(:obj){ "Hello World" }
112
- it "should return nil if no symbol or proc given" do
113
- renderer.send(:render_or_call_method_or_proc_on, obj, 1).should == nil
114
- end
115
- it "should return the string if a string is given" do
116
- renderer.send(:render_or_call_method_or_proc_on, obj, "Hello!").should == "Hello!"
117
- end
118
- it "should call the method if a symbol is given" do
119
- renderer.send(:render_or_call_method_or_proc_on, obj, :size).should == obj.size
120
- end
121
- it "should call the proc with the object if a proc is given" do
122
- p = Proc.new{|string| string.size }
123
- renderer.send(:render_or_call_method_or_proc_on, obj, p).should == obj.size
124
- end
125
- end
126
- end