express_admin 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -1
- data/app/assets/images/express_admin/appexpress_logo_dark.png +0 -0
- data/app/assets/javascripts/express_admin.js +1 -4
- data/app/assets/javascripts/express_admin/admin.js +0 -2
- data/app/assets/javascripts/express_admin/scrollTableBody.js +127 -0
- data/app/assets/stylesheets/express_admin.css +1 -1
- data/app/assets/stylesheets/express_admin/components/_main_menu.sass +5 -0
- data/app/assets/stylesheets/express_admin/components/_megadropdown.sass +0 -5
- data/app/assets/stylesheets/express_admin/components/_module_sidebar.sass +9 -0
- data/app/assets/stylesheets/express_admin/components/_pane.sass +9 -0
- data/app/assets/stylesheets/express_admin/components/_widget_box.sass +10 -0
- data/app/assets/stylesheets/express_admin/globals/_foundation_overrides.sass +612 -0
- data/app/assets/stylesheets/express_admin/globals/_mixins.sass +9 -0
- data/app/assets/stylesheets/express_admin/globals/_typography.sass +8 -16
- data/app/assets/stylesheets/express_admin/globals/_variables.sass +18 -12
- data/app/assets/stylesheets/express_admin/screen.sass +16 -9
- data/app/assets/stylesheets/express_admin/sections/_header.sass +8 -94
- data/app/assets/stylesheets/express_admin/sections/_main_content.sass +3 -61
- data/app/assets/stylesheets/express_admin/sections/_main_region.sass +9 -0
- data/app/assets/stylesheets/express_admin/sections/_page_body.sass +6 -0
- data/app/assets/stylesheets/express_admin/sections/_page_sidebar.sass +5 -0
- data/app/assets/stylesheets/express_admin/sections/_sidebar_region.sass +7 -0
- data/app/assets/stylesheets/express_admin/shared/_buttons.sass +2 -31
- data/app/assets/stylesheets/express_admin/shared/_forms.sass +3 -97
- data/app/assets/stylesheets/express_admin/shared/_layout_components.sass +60 -0
- data/app/assets/stylesheets/express_admin/shared/_messages.sass +1 -1
- data/app/assets/stylesheets/express_admin/shared/_tables.sass +12 -67
- data/app/assets/stylesheets/express_admin/shared/_trees.sass +27 -0
- data/app/components/express_admin/addon_sidebar_component.rb +5 -9
- data/app/components/express_admin/h_box.rb +16 -0
- data/app/components/express_admin/layout_component.rb +14 -0
- data/app/components/express_admin/main_region.rb +1 -1
- data/app/components/express_admin/pane.rb +37 -0
- data/app/components/express_admin/sidebar_region.rb +2 -4
- data/app/components/express_admin/smart_form.rb +63 -27
- data/app/components/express_admin/smart_table.rb +131 -41
- data/app/components/express_admin/v_box.rb +16 -0
- data/app/components/express_admin/widget_box.rb +2 -2
- data/app/helpers/express_admin/admin_helper.rb +14 -9
- data/app/views/layouts/express_admin/admin.html.et +7 -11
- data/app/views/shared/express_admin/_navigation_bar.html.et +17 -13
- data/app/views/shared/express_admin/_navigation_bar_profile.html.et +0 -2
- data/app/views/shared/express_admin/_title.html.et +6 -8
- data/lib/express_admin/engine.rb +1 -1
- data/lib/express_admin/menu.rb +7 -2
- data/lib/express_admin/version.rb +1 -1
- data/lib/generators/express_admin/install/install_generator.rb +4 -4
- data/lib/generators/express_admin/install/templates/controllers/admin_controller.rb.erb +1 -1
- data/lib/generators/express_admin/scaffold/scaffold_generator.rb +10 -2
- data/lib/generators/express_admin/scaffold/templates/index.html.et.erb +1 -1
- data/test/dummy/app/controllers/admin/categories_controller.rb +12 -0
- data/test/dummy/app/controllers/admin/widgets_controller.rb +12 -0
- data/test/dummy/app/models/category.rb +3 -0
- data/test/dummy/app/models/tag.rb +4 -0
- data/test/dummy/app/models/widget.rb +7 -0
- data/test/dummy/app/models/widget_tag.rb +4 -0
- data/test/dummy/app/views/admin/categories/index.html.et +10 -0
- data/test/dummy/app/views/admin/widgets/index.html.et +10 -0
- data/test/dummy/config/routes.rb +5 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20150525221206_create_widgets.rb +15 -0
- data/test/dummy/db/migrate/20150525221228_create_categories.rb +9 -0
- data/test/dummy/db/migrate/20150610081108_create_tags.rb +7 -0
- data/test/dummy/db/migrate/20150610081204_create_widget_tags.rb +8 -0
- data/test/dummy/db/schema.rb +26 -5
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +35 -0
- data/test/dummy/log/test.log +33428 -0
- data/test/dummy/test/components/smart_form_test.rb +93 -0
- data/test/dummy/test/components/smart_table_test.rb +137 -0
- data/test/dummy/test/fixtures/categories.yml +8 -0
- data/test/dummy/test/fixtures/tags.yml +14 -0
- data/test/dummy/test/fixtures/widget_tags.yml +10 -0
- data/test/dummy/test/fixtures/widgets.yml +20 -0
- data/test/dummy/test/models/category_test.rb +13 -0
- data/test/dummy/test/models/tag_test.rb +13 -0
- data/test/dummy/test/models/widget_tag_test.rb +13 -0
- data/test/dummy/test/models/widget_test.rb +13 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0fNukwCUjSC_GRsVIMtSMVdZkd5bq5eShMcGCrCVolc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1c4REJHKdQH9bwZhZ7Ixshmy_1jAzXc3-9OiDCDyRlk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1rKHSaJsgLcnfIJRWYdYy7IimMCKcdI-I_ABekUargk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2kMk5s4FKAOWE1z_MvFIKHmdvNDzyoknoi39xL7KwJw.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2oGeKB_QtwWpX3sJNHocsJiBZT60x_cwV_nSGh_HS-A.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2rQDWRzFxOlBnczJ1BLfE2yCPVvrhgLGfAI7VSM54wk.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3S9nnUmEIG4-hDY6cVc82GFUUWicNxtpFfWwJAmJSkI.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4WErFdugnc8uWYwUE9vVfw4xxCgknECdpWhn8teZbLk.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4a7epNa5R1jeKCtFsJKTdVqMEQm5p0clABRPIiKegMo.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/57pjjkzReNE1L9yodewGebfd0AwnfQb33rtJjSTNpLc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7vpDV8GyXVfyuFIkRrrkOwUXyIaCmf22tBPDpvhCUUc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Cpj6WyqdggDUkeQl_Ut3P9sUtPHPXXwkmZ92TfIJGJ8.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DwepgSdLiEklsJWIJItEY_ZW-nOjjeHqcdQwBtu0mus.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FOJpwMQCx9V9wfhJQKFa2f7BjfP7vyS7M3o6VX0nAI0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GStmpiXE4g01i-UTlSKq8B9yS69WpAp0YH7vWyESBwI.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/H53ZZ50FwJjYUOMH60F7cpINgkh9tOF4R3L6ANoH6tU.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HY86Fwn8VPlIysY56uV-wu90bISxrXeiCtwDXg94Glg.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IcNDN_pmsAcLAMv6CST75OwOucmYm3q2099jn4tB0H8.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JpdfSFVzivQn6TFSivlys3nV3VzD8cT0ET8uqbptxV4.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KYe0_GIi-cNX0eRteBB0aixVATrVRo7Z3BaWFCgc7yg.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/LsiO4sLQfM0GvyEYhaC2E54rCurTkewg7YJX-sWBctI.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NDViKg4-yspkY1tX9IQWnh1-LkiKqIohBqtRlYZZQcs.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/OXsmreTQ3MNzGsrV1eEoW72VZQ52hQ0HiuTr0ImnqHA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PuMvTyv89E8wfRqbWNMhTH3PAE61uCCHgpEsgdOzMXQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Pvp8CVIKYjspNrgzEvgleujifrrdfATzWbwALDzQNE4.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PzcOUndLc-O-VBR2SDM2rFkiqh-iqknTEgEAXDLKfdc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QbX1HRM7KX85_PeVHcd6VJM6sqzUCWXEEYZX7CAG0eA.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UDHqQKrYSSvXfCbiJjXzmJh2Q6T5hLO80aaPvs9n-74.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UFtISk01WwcjjWcPLyjeHX3bgBqZHGQcb0Z4KFNmduA.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UWvG-0WgVYHVxrtLU32uumROQuSjJv_M_svW1B8YxhY.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UruI7_ZpuzDnmNir9hzUa_r8oiuuIfVTco19ACdxwRw.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VQ2-2HlkGd1XVIHlwRGcgDsjto3oE-50-4E3HGdt8uU.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VezioHwyk87G6TWkkYX88tBHC6QToVGOU5geZ54Ts5A.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WfQ-xKbnwqaKy-UQa8spczc9qocIL_jZE4cyRZftjfA.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XPpCqlT8yHTnQNHKRxjnilUBvAs6klpgWXneFU15U78.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XXTM8o6vkSxhxxm8P_orbeCZvxb8nMk7cjdwvUNL1io.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XyRQXY_oj8GLw9z8lj2dknGu45jbX5lK8ko7TePosPE.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YDMOayx363vI7odbkHMVI-_RxkOoVP2Hb7FX0mFVFE0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Z88gJS67lNABJgUB18JzXrnGkVbYfXQvjqm7mSJIv3o.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_k4X14Cc-2Y4gc47s7PaWtAaG_zcq1ICJInTYNp6bI4.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_kr_dP4VVnM8s8ZMdiNBSpuPqkQVx46FUdCTDH4XR70.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_y-BPEZTh3iXcaPJkcP9-krjw-V8LMhop4VGxUEUDsY.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/afi__XQzjsqMT3svcCGlVD_YrHEWQZAEbJt4CgYaCkw.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bdqS7lHa0nBN-mqdSomfMK-S6ct2TAn0z9kVzFBwQPM.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/csH89NDps1_QU4E0p0HHZti2XLd_etKYDqM9cPsNpps.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ePtEu-AuU0iZ2J02ZafF9yOJVd8VVdV2KSheiJYlXzA.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/eTRff0YXBw-Tx9VEMxb-Es8NwqjHCXiaosBLxijl3I8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fRkrxaDYzRDIvxEUGZBFbW5ocAlmDQNg8_LRcOJJOzI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/goVFgqSk0CBOXpbwLNd-enc31BvXm1S8cMSJ3zbxRYI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hPH6lLkPX0EzSG_eBprMMUnmFs9y89AOarfyhGoAFGc.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hgfrt0FmGrYD5SJVJhlsUPtL9usJvw3vZrW4dqQq16Y.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hiZg7FLw7SFa7S-BQ8CKWdAqFVUZy2HVb2chmQijM-g.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iKb8yzw0EdFpNkayUbc16U7olK7iwE2xIs_6b_xIEtI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iY03Ztj2YhBWadK8LHOKR3Hj1W7PLss0v85Q6Nj7E3Q.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ipLhCJrCCVwH7l_p1quUi2xS6POFlVHfZCqIymk8CoI.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ipTot5AshDPhFtCBNfXROxutQlCrYkvsXsy3fcVT0Nw.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/j5CxYBAeuD-bGDZUBh-pA0mEPCSVFDZsJm3x7QED4g0.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jr4uhEONyFYm0QhfEOMqv05S-BeUP7gw1gQl3GIFyAI.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kGO7_IQtBwpe93nSTKj6cCWGm0fZ_NoXltdw8E_74CQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/le9WohG3eSGbBMySdKkdvkHXW8yipO8w4iQZCCCQb3M.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/mtmR_XlvnlYbOPmP1EkOj96q2Z5OQNv4HkeFj9DwEXQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nU1obIDVHUhN-3yRA6B9U5aO8wsd6zh1tyVtSROJewk.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oZ6SMNNft5SCbvNtWXkGQwKQPVwXoJRMV7VUJfWHc2k.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/oygs10cGTBBo7Mj97CjFRTrSrFR7Qi3MnHNR_WQvIps.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/p0Gnpai0VYzEsAXH_5t9huZ3dO0v6JKRH0PIH--q-XA.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pu9xM8T2O07hU3PafxbOLjg2vJxbbHE3qnIK9JHqVhA.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qEHftZrJ-Da_nsvX4UOaALyIt0mwnOuE2TdtBPGAWEw.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rtdpq5fxIYMKM43QyOIluEECg2NP5OA-7Zi8yuowZSI.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ujFa5Hu76zd1O6nO2G7WcgnOWZyTOMKLajazyMXAL_I.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uovLHiJZBoVnD7CXYj2WZYmAbBcqGLQOzu4Voz5Fx8c.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uyHm0KHsHpJhn-wv69exuuyU4kyJtW3DDQLP7tCD7e4.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/v50nc5cuqpLxjepk7XsBmomcmFARYlHQRtq8yOv8AY0.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vAh5eTPxI929yxRCyXgbKTWat5cZiVSOyX0UeTveXGE.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vKiuNu1fQitE151bh0Tr2Ufkc80jWzchPjxaHkpjQL8.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/x-3lyh5i4qS-Q9E3X2uj2LthTOxsndFTrFXBsPPo6hI.cache +2 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/x3xQgAyjbrGTXy2FX2UzGG77agJgt_xsyNBuofrvY_E.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xQqBwKYWFPxZm5tidxsRKk23Z3q-OLRmKQUlMjRev_c.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yZNo-6dzWGUNCJDnmqm7X5YB5FOxjYp_l8aKS6KaZOg.cache +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zV58Nou0R2EJG875wLND6wF9ES4diVi1fP7B_B6eCzw.cache +1 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zxPFYKpkfNJtui1ekitdNMaGAo39fefm-oJCnILEEQ8.cache +1 -0
- data/test/fixtures/widgets.yml +20 -0
- data/test/lib/express_admin/menu_test.rb +1 -1
- data/test/{fixtures/express_admin → support}/test_menu.yml +0 -0
- data/test/test_helper.rb +25 -5
- data/vendor/gems/express_templates/Gemfile +16 -0
- data/vendor/gems/express_templates/Gemfile.lock +153 -0
- data/vendor/gems/express_templates/LICENSE +21 -0
- data/vendor/gems/express_templates/README.md +152 -0
- data/vendor/gems/express_templates/Rakefile +32 -0
- data/vendor/gems/express_templates/diagrams/diagram.graffle +2404 -0
- data/vendor/gems/express_templates/diagrams/diagram_express_templates.png +0 -0
- data/vendor/gems/express_templates/diagrams/diagram_haml_erb.png +0 -0
- data/vendor/gems/express_templates/express_templates-0.5.0.gem +0 -0
- data/vendor/gems/express_templates/express_templates.gemspec +29 -0
- data/vendor/gems/express_templates/lib/core_extensions/proc.rb +90 -0
- data/vendor/gems/express_templates/lib/core_extensions/string.rb +25 -0
- data/vendor/gems/express_templates/lib/express_templates.rb +19 -0
- data/vendor/gems/express_templates/lib/express_templates/compiler.rb +36 -0
- data/vendor/gems/express_templates/lib/express_templates/components.rb +18 -0
- data/vendor/gems/express_templates/lib/express_templates/components/base.rb +54 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/adoptable.rb +20 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/building.rb +14 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/conditionality.rb +54 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/configurable.rb +90 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/iterating.rb +75 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/parenting.rb +72 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/rendering.rb +30 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/resourceful.rb +135 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/templating.rb +198 -0
- data/vendor/gems/express_templates/lib/express_templates/components/capabilities/wrapping.rb +84 -0
- data/vendor/gems/express_templates/lib/express_templates/components/column.rb +13 -0
- data/vendor/gems/express_templates/lib/express_templates/components/container.rb +7 -0
- data/vendor/gems/express_templates/lib/express_templates/components/content_for.rb +42 -0
- data/vendor/gems/express_templates/lib/express_templates/components/for_each.rb +30 -0
- data/vendor/gems/express_templates/lib/express_templates/components/form_rails_support.rb +22 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms.rb +17 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/basic_fields.rb +53 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/checkbox.rb +37 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/express_form.rb +57 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/form_component.rb +64 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/form_support.rb +13 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/option_support.rb +65 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/radio.rb +84 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/select.rb +105 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/select_collection.rb +57 -0
- data/vendor/gems/express_templates/lib/express_templates/components/forms/submit.rb +26 -0
- data/vendor/gems/express_templates/lib/express_templates/components/null_wrap.rb +41 -0
- data/vendor/gems/express_templates/lib/express_templates/components/row.rb +28 -0
- data/vendor/gems/express_templates/lib/express_templates/components/table_for.rb +163 -0
- data/vendor/gems/express_templates/lib/express_templates/components/tree_for.rb +86 -0
- data/vendor/gems/express_templates/lib/express_templates/components/unless_block.rb +40 -0
- data/vendor/gems/express_templates/lib/express_templates/expander.rb +140 -0
- data/vendor/gems/express_templates/lib/express_templates/indenter.rb +47 -0
- data/vendor/gems/express_templates/lib/express_templates/interpolator.rb +36 -0
- data/vendor/gems/express_templates/lib/express_templates/macro.rb +45 -0
- data/vendor/gems/express_templates/lib/express_templates/markup.rb +9 -0
- data/vendor/gems/express_templates/lib/express_templates/markup/html_tag.rb +62 -0
- data/vendor/gems/express_templates/lib/express_templates/markup/tag.rb +150 -0
- data/vendor/gems/express_templates/lib/express_templates/markup/wrapper.rb +94 -0
- data/vendor/gems/express_templates/lib/express_templates/markup/yielder.rb +21 -0
- data/vendor/gems/express_templates/lib/express_templates/renderer.rb +11 -0
- data/vendor/gems/express_templates/lib/express_templates/template/handler.rb +15 -0
- data/vendor/gems/express_templates/lib/express_templates/version.rb +3 -0
- data/vendor/gems/express_templates/lib/tasks/express_templates.rake +4 -0
- data/vendor/gems/express_templates/test/compiler_test.rb +9 -0
- data/vendor/gems/express_templates/test/components/base_test.rb +44 -0
- data/vendor/gems/express_templates/test/components/capabilities/resourceful_test.rb +63 -0
- data/vendor/gems/express_templates/test/components/column_test.rb +11 -0
- data/vendor/gems/express_templates/test/components/conditionality_test.rb +37 -0
- data/vendor/gems/express_templates/test/components/configurable_test.rb +43 -0
- data/vendor/gems/express_templates/test/components/container_test.rb +66 -0
- data/vendor/gems/express_templates/test/components/content_for_test.rb +60 -0
- data/vendor/gems/express_templates/test/components/forms/basic_fields_test.rb +52 -0
- data/vendor/gems/express_templates/test/components/forms/checkbox_test.rb +44 -0
- data/vendor/gems/express_templates/test/components/forms/express_form_test.rb +108 -0
- data/vendor/gems/express_templates/test/components/forms/radio_test.rb +96 -0
- data/vendor/gems/express_templates/test/components/forms/select_test.rb +146 -0
- data/vendor/gems/express_templates/test/components/forms/submit_test.rb +12 -0
- data/vendor/gems/express_templates/test/components/iterating_test.rb +127 -0
- data/vendor/gems/express_templates/test/components/null_wrap_test.rb +28 -0
- data/vendor/gems/express_templates/test/components/row_test.rb +16 -0
- data/vendor/gems/express_templates/test/components/table_for_test.rb +211 -0
- data/vendor/gems/express_templates/test/components/tree_for_test.rb +103 -0
- data/vendor/gems/express_templates/test/core_extensions/proc_test.rb +71 -0
- data/vendor/gems/express_templates/test/core_extensions/string_test.rb +20 -0
- data/vendor/gems/express_templates/test/dummy/Rakefile +6 -0
- data/vendor/gems/express_templates/test/dummy/app/assets/javascripts/application.js +13 -0
- data/vendor/gems/express_templates/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/vendor/gems/express_templates/test/dummy/app/controllers/application_controller.rb +5 -0
- data/vendor/gems/express_templates/test/dummy/app/controllers/hello_controller.rb +5 -0
- data/vendor/gems/express_templates/test/dummy/app/helpers/application_helper.rb +2 -0
- data/vendor/gems/express_templates/test/dummy/app/views/hello/show.html.et +5 -0
- data/vendor/gems/express_templates/test/dummy/app/views/layouts/application.html.et +15 -0
- data/vendor/gems/express_templates/test/dummy/bin/bundle +3 -0
- data/vendor/gems/express_templates/test/dummy/bin/rails +4 -0
- data/vendor/gems/express_templates/test/dummy/bin/rake +4 -0
- data/vendor/gems/express_templates/test/dummy/config.ru +4 -0
- data/vendor/gems/express_templates/test/dummy/config/application.rb +26 -0
- data/vendor/gems/express_templates/test/dummy/config/boot.rb +5 -0
- data/vendor/gems/express_templates/test/dummy/config/environment.rb +5 -0
- data/vendor/gems/express_templates/test/dummy/config/environments/development.rb +37 -0
- data/vendor/gems/express_templates/test/dummy/config/environments/production.rb +82 -0
- data/vendor/gems/express_templates/test/dummy/config/environments/test.rb +40 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/assets.rb +8 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/inflections.rb +16 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/mime_types.rb +4 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/session_store.rb +3 -0
- data/vendor/gems/express_templates/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/vendor/gems/express_templates/test/dummy/config/locales/en.yml +23 -0
- data/vendor/gems/express_templates/test/dummy/config/routes.rb +4 -0
- data/vendor/gems/express_templates/test/dummy/config/secrets.yml +22 -0
- data/vendor/gems/express_templates/test/dummy/log/test.log +15987 -0
- data/vendor/gems/express_templates/test/dummy/public/404.html +67 -0
- data/vendor/gems/express_templates/test/dummy/public/422.html +67 -0
- data/vendor/gems/express_templates/test/dummy/public/500.html +66 -0
- data/vendor/gems/express_templates/test/dummy/public/favicon.ico +0 -0
- data/vendor/gems/express_templates/test/dummy/test/controllers/hello_controller_test.rb +14 -0
- data/vendor/gems/express_templates/test/dummy/test/helpers/hello_helper_test.rb +4 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-1ax0k6FO5drSUN6jbogg4G0JliUHLffvQUvzSePKxA.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-cDLO4NJHMndDHchOLz8KLD7QBc68WtaAbYxK2r6GsU.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0t68EIwZ96sAqQSxFka9MQyIk4viw8ZIoREMCGiJRx0.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/28LzLLDYjhr3jmu0GxjZ-ms5Bol6JilDRXpg8Zgbjqs.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2zt1IbQCnmzGyeZS_I4sYQzrgneSCKIJBRxcffVHlWY.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5AeGDyXQbv_BTj3PD4MJpNnGVwUxLsA8H1VcwB69_wE.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/B0RgtiEmqwrCQuw4AnDa3fdENtJeBtO_TqtGJuWOeNs.cache +3 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/D-tMNp19G2zWOPPhnQRUm4K8DPa8SpKPfGALkkofTeE.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/EDVlXrcn_wEfaZ5nc_4QJBT7lPiIBcX96jBo7PBz-vc.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Eso3tkb79hXQ1XdQgjbV03KyQwSeZFAHxVHImsjQ-HQ.cache +2 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/I8LhheC1OlOyvp_qY8kWpqKcZFiqv_BO-l5bExvDEi0.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Kf4VrP5sW-qzziYSN-m7p4nETjLiEwwwRfwUOm7rOr0.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Pd5YOD1DAL7QtTnwETZYBCabg5DkCFgbjt4iuBOcSoY.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QJ0Z8hROMfWpY6f5Chb7GSuDHE4gpabKVQTr9BCZe9s.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/T1pSAx767vY7X1UDN0vdF7YGEkI5wMSVUKopsdvp7kI.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VlSPFPDK05c7ImadRiRVKzsaa6e15RwX77QR3NYabME.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Y7_BbgB9jgJIWYjDCsASySd26DTfPADAu_3DDnLlFog.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bSfZQxeyghTF4WIVnzGavxlg9afmSNuqcW6bA1Bm1OA.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fvD_ZNFRzd8Sc4PoTjyHPnkg4f7WMietFunnKqNjlvc.cache +2 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/g2xQygPqA5kMmp5L3wVGWaUIhdVsxFmOel9FF6M0Fuw.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hKbgrf5CbMO8pe9fCHc-rI5mp1ejAhivBfvfDxBNhQA.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kaif59owjUr3HBharCH5GUxU6KoW_zXD9a9JiTjIYPY.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kpvKX5UlhhoLJv-faeq7Ibv2KQh4ROjTiarh13gHuWI.cache +2 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lfyrNtbNtwuTXAWlmPCKTS-D3FHoPTY6h53wnUN36-A.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lyDRhWNhfDw_YCCSbxQw_iOIV3eTfeAoX6mTREuVZSA.cache +3 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/p17lC0HAHCtk1ds_NHl9xhEyMtRjfQInw1c6fmFWguc.cache +0 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/p1cwnBd8RQBm9x5HzDmiiU7RhvnxhPX8VTfi0tTElJY.cache +3 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qT6_0ti_v6fAjS3wETXqvTkr6W0LP4PB942uLYQzWK8.cache +3 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qzU7DVwQZ7z6i6pYUpssYsAj0y33GN83B4O1bLvkW_4.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/r56eI1z7iFKeySym_9zw5hVOPjb0d6IQPn5pAYTKk04.cache +2 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rGWvoeLyiyqb813IXgfDpDxks23JQoLLZOa69bzKPE8.cache +1 -0
- data/vendor/gems/express_templates/test/dummy/tmp/cache/assets/test/sprockets/v3.0/y8T65xpx0s3RgT_YiqWEEXIaBsgK4woCNSuZ1zjQZBk.cache +2 -0
- data/vendor/gems/express_templates/test/expander_stack_test.rb +41 -0
- data/vendor/gems/express_templates/test/expander_test.rb +99 -0
- data/vendor/gems/express_templates/test/express_templates_test.rb +19 -0
- data/vendor/gems/express_templates/test/handler_test.rb +122 -0
- data/vendor/gems/express_templates/test/indenter_test.rb +27 -0
- data/vendor/gems/express_templates/test/interpolator_test.rb +80 -0
- data/vendor/gems/express_templates/test/markup/tag_test.rb +149 -0
- data/vendor/gems/express_templates/test/markup/wrapper_test.rb +42 -0
- data/vendor/gems/express_templates/test/markup/yielder_test.rb +9 -0
- data/vendor/gems/express_templates/test/performance_test.rb +93 -0
- data/vendor/gems/express_templates/test/test_helper.rb +28 -0
- data/vendor/gems/foundation_apps_styles/Gemfile +4 -0
- data/vendor/gems/foundation_apps_styles/LICENSE.txt +21 -0
- data/vendor/gems/foundation_apps_styles/README.md +41 -0
- data/vendor/gems/foundation_apps_styles/Rakefile +13 -0
- data/vendor/gems/foundation_apps_styles/bin/console +14 -0
- data/vendor/gems/foundation_apps_styles/bin/setup +7 -0
- data/vendor/gems/foundation_apps_styles/foundation_apps_styles.gemspec +24 -0
- data/vendor/gems/foundation_apps_styles/lib/foundation_apps_styles.rb +6 -0
- data/vendor/gems/foundation_apps_styles/lib/foundation_apps_styles/version.rb +3 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/account.svg +44 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/action.svg +38 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/ban.svg +17 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/bell.svg +22 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/bookmark.svg +14 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/cart.svg +35 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/chevron.svg +28 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/circle-check.svg +25 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/circle-x.svg +25 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/cog.svg +17 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/comment-square.svg +14 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/dashboard.svg +38 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/document.svg +28 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/envelope.svg +44 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/flag.svg +24 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/home.svg +28 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/lock.svg +55 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/magnifying-glass.svg +26 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/person.svg +62 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/reload.svg +19 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/share-boxed.svg +17 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/star.svg +14 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/thumb.svg +38 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/iconic/zoom.svg +56 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/_global.scss +131 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/_includes.scss +33 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/_settings.scss +614 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_accordion.scss +72 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_action-sheet.scss +265 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_block-list.scss +360 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_button-group.scss +197 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_button.scss +205 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_card.scss +93 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_extras.scss +54 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_forms.scss +460 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_grid.scss +422 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_iconic.scss +95 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_label.scss +134 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_list.scss +19 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_menu-bar.scss +382 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_modal.scss +129 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_motion.scss +525 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_notification.scss +207 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_off-canvas.scss +169 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_panel.scss +134 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_popup.scss +68 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_switch.scss +134 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_tabs.scss +100 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_title-bar.scss +135 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_typography.scss +345 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/components/_utilities.scss +160 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/foundation-apps.css +6146 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/foundation.scss +50 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_breakpoints.scss +154 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_functions.scss +343 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_images.scss +19 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/helpers/_mixins.scss +123 -0
- data/vendor/gems/foundation_apps_styles/vendor/assets/stylesheets/vendor/_normalize.scss +424 -0
- metadata +512 -36
- data/app/assets/stylesheets/express_admin/foundation_and_overrides.scss +0 -1443
- data/app/assets/stylesheets/express_admin/sections/_devise.sass +0 -42
- data/app/assets/stylesheets/express_admin/sections/_sidebar.sass +0 -42
- data/app/assets/stylesheets/express_admin/shared/_labels.sass +0 -16
- data/app/assets/stylesheets/express_admin/shared/_navigation.sass +0 -20
- data/lib/generators/express_admin/scaffold/templates/show.html.et.erb +0 -10
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=82908f76c3503c4b21c4473a68f9cc2a71c34c35de78caeb58171f6a8e46b7cc:ET
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/application.js;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/demo.js;TT
|
Binary file
|
Binary file
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/demo.js;TT
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css?type=text/css&id=c22af7d3ef151a5a5f4b99e51267367edf39eccaf3edc2384aec8d191ef6efb9:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
"%Y6�w�99o����}R����4ng���C
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
"%Y6�w�99o����}R����4ng���C
|
@@ -0,0 +1 @@
|
|
1
|
+
I"file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=b9c8ddc3ce7dd3ac585cf2a303c7ec36da508d04894313596980ab6962d5eb69:ET
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css?type=text/css&id=e9bdbe475e81a325ef331b5950b761eb9c9b9820cbfda0cac8ebca54466ca0ad:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
"%5�AxIާ<�5!_]���l!.(�w%Ϊ|�
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=c366bbdd8fd8f2c1e02b7d0b45189a673dbf66e97c379f5cd72fc1a7295e5c0a:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/demo.css.scss?type=text/css&pipeline=self&id=b2a2cad5d299532b402c9b94124cebfd9a7b13b291a1079a49c7565dd78802e1:ET
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/application.js?type=application/javascript&id=7919650dc147dbf13cd8b3598bab4fea55c76bcace6fffa6fdabad22297cd17f:ET
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/demo.css.scss?type=text/css&pipeline=self&id=7ca99fa76ce9670f5bb54bb2059129d2de33a59e3d34f644438557fc639a61b4:ET
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css?type=text/css&id=c68db0fd23f53fdc38850f5fdc69bc07df5a55de97160211e1a2ba6ae1d91b4b:ET
|
Binary file
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css;TTI"{file-digest:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets;TTI"�file-digest:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/demo.css.scss;TT
|
@@ -0,0 +1 @@
|
|
1
|
+
"%]!�K��X�K�֓�ޖ���';�����4x��
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/demo.css.scss;TT
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{ I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"�file-digest:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/demo.css.scss;TT
|
@@ -0,0 +1,2 @@
|
|
1
|
+
[o:Set:
|
2
|
+
@hash{I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/demo.js;TTI"�file-digest:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts;TT
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/application.js?type=application/javascript&id=667bd257e6efdb2c380d40cd47013d0703aa007707c925779f8a6eb54168788d:ET
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/demo.css.scss?type=text/css&pipeline=self&id=70c34f58999fc37e95d44fb3c1714707bbe89fb49245afca17bc391fef5eb3e9:ET
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/stylesheets/application.css?type=text/css&id=51251c2cdf457ccedb9fc5f3b571cbd0fd659bb3c3f32fd66287d7d2f5725426:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
I"�file:///Users/steve/Projects/appexpress/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/demo.js?type=application/javascript&pipeline=self&id=f3777b669f003140f75ff04ba669a10624d2dad520076365202fa5b153d561e4:ET
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
I"file:///Users/steve/Projects/appexpress/appexpress-io2/vendor/gems/express_cms/vendor/gems/express_admin/test/dummy/app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=983c587c45abd60203b219d20ae3896135103e779e079590af109033fe3300e8:ET
|
@@ -0,0 +1 @@
|
|
1
|
+
"%5�AxIާ<�5!_]���l!.(�w%Ϊ|�
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Read about fixtures at
|
2
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
|
3
|
+
|
4
|
+
one:
|
5
|
+
category: toys
|
6
|
+
column2: Lego
|
7
|
+
column3: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
8
|
+
column4: 2015-05-25 15:12:06
|
9
|
+
column5: true
|
10
|
+
column6: MyString
|
11
|
+
column7: 1
|
12
|
+
|
13
|
+
two:
|
14
|
+
category: tools
|
15
|
+
column2: Hammer
|
16
|
+
column3: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
|
17
|
+
column4: 2015-05-25 15:12:06
|
18
|
+
column5: false
|
19
|
+
column6: MyString
|
20
|
+
column7: 1
|
@@ -9,7 +9,7 @@ module ExpressAdmin
|
|
9
9
|
# end
|
10
10
|
|
11
11
|
test "Menu.from() accepts path and returns a menu from the yaml" do
|
12
|
-
menu = ExpressAdmin::Menu.from 'test/
|
12
|
+
menu = ExpressAdmin::Menu.from 'test/support/test_menu.yml'
|
13
13
|
assert_equal 'Big Menu', menu.title
|
14
14
|
assert_equal 3, menu.items.size
|
15
15
|
assert_equal 'express_admin.baz_path', menu.items.last.path
|
File without changes
|
data/test/test_helper.rb
CHANGED
@@ -1,18 +1,38 @@
|
|
1
1
|
# Configure Rails Environment
|
2
2
|
ENV["RAILS_ENV"] = "test"
|
3
3
|
|
4
|
-
require File.expand_path("
|
4
|
+
require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
|
5
|
+
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
|
6
|
+
ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
|
7
|
+
|
5
8
|
require "rails/test_help"
|
9
|
+
require "minitest/rails"
|
6
10
|
require "minitest/rails/capybara"
|
11
|
+
require 'minitest/rg'
|
12
|
+
|
7
13
|
|
8
|
-
|
14
|
+
# Filter out Minitest backtrace while allowing backtrace from other libraries
|
15
|
+
# to be shown.
|
16
|
+
Minitest.backtrace_filter = Minitest::BacktraceFilter.new
|
9
17
|
|
10
18
|
# Load support files
|
11
19
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
12
20
|
|
13
|
-
|
14
|
-
|
15
|
-
|
21
|
+
if ActiveSupport::TestCase.respond_to?(:fixture_path=)
|
22
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
23
|
+
ActiveSupport::TestCase.fixtures :all
|
16
24
|
end
|
17
25
|
|
18
26
|
Rails.application.load_generators
|
27
|
+
|
28
|
+
# this is placed here so we can test form components with
|
29
|
+
# namespaced modules without adding extra namespaced models
|
30
|
+
# to our dummy app
|
31
|
+
module ExampleEngine
|
32
|
+
class Widget < ::Widget
|
33
|
+
belongs_to :category, class_name: 'ExampleEngine::Category'
|
34
|
+
end
|
35
|
+
class Category < ::Category
|
36
|
+
has_many :widgets, class_name: 'ExampleEngine::Widget'
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
# Declare your gem's dependencies in express_templates.gemspec.
|
4
|
+
# Bundler will treat runtime dependencies like base dependencies, and
|
5
|
+
# development dependencies will be added by default to the :development group.
|
6
|
+
gemspec
|
7
|
+
|
8
|
+
# Declare any dependencies that are still in development here instead of in
|
9
|
+
# your gemspec. These might include edge Rails or gems from your path or
|
10
|
+
# Git. Remember to move these dependencies to your gemspec before releasing
|
11
|
+
# your gem to rubygems.org.
|
12
|
+
|
13
|
+
# To use debugger
|
14
|
+
# gem 'debugger'
|
15
|
+
gem 'pry-byebug'
|
16
|
+
gem 'minitest-reporters'
|
@@ -0,0 +1,153 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
express_templates (0.5.0)
|
5
|
+
activesupport (~> 4.2)
|
6
|
+
parslet (~> 1.6)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
actionmailer (4.2.1)
|
12
|
+
actionpack (= 4.2.1)
|
13
|
+
actionview (= 4.2.1)
|
14
|
+
activejob (= 4.2.1)
|
15
|
+
mail (~> 2.5, >= 2.5.4)
|
16
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
17
|
+
actionpack (4.2.1)
|
18
|
+
actionview (= 4.2.1)
|
19
|
+
activesupport (= 4.2.1)
|
20
|
+
rack (~> 1.6)
|
21
|
+
rack-test (~> 0.6.2)
|
22
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
23
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.1)
|
24
|
+
actionview (4.2.1)
|
25
|
+
activesupport (= 4.2.1)
|
26
|
+
builder (~> 3.1)
|
27
|
+
erubis (~> 2.7.0)
|
28
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
29
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.1)
|
30
|
+
activejob (4.2.1)
|
31
|
+
activesupport (= 4.2.1)
|
32
|
+
globalid (>= 0.3.0)
|
33
|
+
activemodel (4.2.1)
|
34
|
+
activesupport (= 4.2.1)
|
35
|
+
builder (~> 3.1)
|
36
|
+
activerecord (4.2.1)
|
37
|
+
activemodel (= 4.2.1)
|
38
|
+
activesupport (= 4.2.1)
|
39
|
+
arel (~> 6.0)
|
40
|
+
activesupport (4.2.1)
|
41
|
+
i18n (~> 0.7)
|
42
|
+
json (~> 1.7, >= 1.7.7)
|
43
|
+
minitest (~> 5.1)
|
44
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
45
|
+
tzinfo (~> 1.1)
|
46
|
+
ansi (1.5.0)
|
47
|
+
arel (6.0.0)
|
48
|
+
better_errors (2.1.1)
|
49
|
+
coderay (>= 1.0.0)
|
50
|
+
erubis (>= 2.6.6)
|
51
|
+
rack (>= 0.9.0)
|
52
|
+
binding_of_caller (0.7.2)
|
53
|
+
debug_inspector (>= 0.0.1)
|
54
|
+
blankslate (3.1.3)
|
55
|
+
builder (3.2.2)
|
56
|
+
byebug (3.5.1)
|
57
|
+
columnize (~> 0.8)
|
58
|
+
debugger-linecache (~> 1.2)
|
59
|
+
slop (~> 3.6)
|
60
|
+
coderay (1.1.0)
|
61
|
+
columnize (0.9.0)
|
62
|
+
debug_inspector (0.0.2)
|
63
|
+
debugger-linecache (1.2.0)
|
64
|
+
erubis (2.7.0)
|
65
|
+
globalid (0.3.5)
|
66
|
+
activesupport (>= 4.1.0)
|
67
|
+
haml (4.0.6)
|
68
|
+
tilt
|
69
|
+
i18n (0.7.0)
|
70
|
+
json (1.8.2)
|
71
|
+
loofah (2.0.2)
|
72
|
+
nokogiri (>= 1.5.9)
|
73
|
+
mail (2.6.3)
|
74
|
+
mime-types (>= 1.16, < 3)
|
75
|
+
method_source (0.8.2)
|
76
|
+
mime-types (2.5)
|
77
|
+
mini_portile (0.6.2)
|
78
|
+
minitest (5.6.1)
|
79
|
+
minitest-reporters (1.0.10)
|
80
|
+
ansi
|
81
|
+
builder
|
82
|
+
minitest (>= 5.0)
|
83
|
+
ruby-progressbar
|
84
|
+
nokogiri (1.6.6.2)
|
85
|
+
mini_portile (~> 0.6.0)
|
86
|
+
parslet (1.7.0)
|
87
|
+
blankslate (>= 2.0, <= 4.0)
|
88
|
+
pry (0.10.1)
|
89
|
+
coderay (~> 1.1.0)
|
90
|
+
method_source (~> 0.8.1)
|
91
|
+
slop (~> 3.4)
|
92
|
+
pry-byebug (3.0.1)
|
93
|
+
byebug (~> 3.4)
|
94
|
+
pry (~> 0.10)
|
95
|
+
pry-stack_explorer (0.4.9.1)
|
96
|
+
binding_of_caller (>= 0.7)
|
97
|
+
pry (>= 0.9.11)
|
98
|
+
rack (1.6.1)
|
99
|
+
rack-test (0.6.3)
|
100
|
+
rack (>= 1.0)
|
101
|
+
rails (4.2.1)
|
102
|
+
actionmailer (= 4.2.1)
|
103
|
+
actionpack (= 4.2.1)
|
104
|
+
actionview (= 4.2.1)
|
105
|
+
activejob (= 4.2.1)
|
106
|
+
activemodel (= 4.2.1)
|
107
|
+
activerecord (= 4.2.1)
|
108
|
+
activesupport (= 4.2.1)
|
109
|
+
bundler (>= 1.3.0, < 2.0)
|
110
|
+
railties (= 4.2.1)
|
111
|
+
sprockets-rails
|
112
|
+
rails-deprecated_sanitizer (1.0.3)
|
113
|
+
activesupport (>= 4.2.0.alpha)
|
114
|
+
rails-dom-testing (1.0.6)
|
115
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
116
|
+
nokogiri (~> 1.6.0)
|
117
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
118
|
+
rails-html-sanitizer (1.0.2)
|
119
|
+
loofah (~> 2.0)
|
120
|
+
railties (4.2.1)
|
121
|
+
actionpack (= 4.2.1)
|
122
|
+
activesupport (= 4.2.1)
|
123
|
+
rake (>= 0.8.7)
|
124
|
+
thor (>= 0.18.1, < 2.0)
|
125
|
+
rake (10.4.2)
|
126
|
+
ruby-progressbar (1.7.1)
|
127
|
+
slop (3.6.0)
|
128
|
+
sprockets (3.1.0)
|
129
|
+
rack (~> 1.0)
|
130
|
+
sprockets-rails (2.3.1)
|
131
|
+
actionpack (>= 3.0)
|
132
|
+
activesupport (>= 3.0)
|
133
|
+
sprockets (>= 2.8, < 4.0)
|
134
|
+
thor (0.19.1)
|
135
|
+
thread_safe (0.3.5)
|
136
|
+
tilt (1.4.1)
|
137
|
+
tzinfo (1.2.2)
|
138
|
+
thread_safe (~> 0.1)
|
139
|
+
|
140
|
+
PLATFORMS
|
141
|
+
ruby
|
142
|
+
|
143
|
+
DEPENDENCIES
|
144
|
+
better_errors (~> 2.0)
|
145
|
+
binding_of_caller (~> 0.7)
|
146
|
+
erubis (~> 2.7)
|
147
|
+
express_templates!
|
148
|
+
haml (~> 4.0)
|
149
|
+
minitest-reporters
|
150
|
+
pry (~> 0)
|
151
|
+
pry-byebug
|
152
|
+
pry-stack_explorer (~> 0.4)
|
153
|
+
rails (~> 4.2)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 ÆLOGICA | Build it better here.
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
@@ -0,0 +1,152 @@
|
|
1
|
+
# ExpressTemplates
|
2
|
+
|
3
|
+
Provides a DSL for HTML templates using a declarative style of Ruby as an alternative to Erb or HAML.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
Add this to your gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'express_templates'
|
11
|
+
```
|
12
|
+
|
13
|
+
Rename your application.html.erb to application.html.et.
|
14
|
+
|
15
|
+
Change your template to look like this.
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
html(lang: "en") {
|
19
|
+
head {
|
20
|
+
meta charset: 'utf-8'
|
21
|
+
meta name: 'viewport', content: "width=device-width, initial-scale=1.0"
|
22
|
+
title {
|
23
|
+
content_for(:title)
|
24
|
+
}
|
25
|
+
stylesheet_link_tag "application", media: 'all', 'data-turbolinks-track' => true
|
26
|
+
csrf_meta_tags
|
27
|
+
}
|
28
|
+
body {
|
29
|
+
yield
|
30
|
+
javascript_include_tag "application"
|
31
|
+
}
|
32
|
+
}
|
33
|
+
```
|
34
|
+
|
35
|
+
Everything should work as you would expect.
|
36
|
+
|
37
|
+
Set your editor syntax for .et files to Ruby.
|
38
|
+
|
39
|
+
You will now have also be able to utilize components which are found with documentation and examples in <tt>ExpressTemplates::Components<tt>.
|
40
|
+
|
41
|
+
## History
|
42
|
+
|
43
|
+
To understand ExpressTemplates, you must first understand the standard tools of ERB and Haml which have been with us for quite some time.
|
44
|
+
|
45
|
+
![Haml/Erb Diagram](https://raw.githubusercontent.com/aelogica/express_templates/master/diagrams/diagram_haml_erb.png "Haml/Erb Diagram")
|
46
|
+
|
47
|
+
Both of these provide a language for embedding other languages. Erb embeds Ruby between <% %> style tags. This is similar to the way we worked with PHP and for those who can remember "embedded Perl" in 1990s. Erb places no constraints on either the text into which the Ruby is embedded, nor on the Ruby which may be placed within the delimiters which comprise Erb's simple grammar.
|
48
|
+
|
49
|
+
Haml introduced a number of innovations or improvements upon Erb. Through Haml's use of significant whitespace and indentation, it ensures well-formed markup. This noticably slows template compilation, however, due to caching it generally goes unnoticed. Haml added better support for mixing grammars in a single file as is common practice with Javascript. Haml introduced abbreviated methods for specifying CSS classes and HTML entity attribute values with the result of generally cleaning up view code.
|
50
|
+
|
51
|
+
Both Haml and Erb compile down to Ruby code which must be eval()'d in a View Context as per the interface required by Rails' ActionView.
|
52
|
+
|
53
|
+
## Expansion
|
54
|
+
|
55
|
+
ExpressTemplates introduces an earlier step in this process, "expansion", which may be likened to a kind of macro system. This is introduced to facilitate reusable view components in the form of normal object-oriented Ruby classes.
|
56
|
+
|
57
|
+
![Diagram depciting Haml/Erb](https://raw.githubusercontent.com/aelogica/express_templates/master/diagrams/diagram_express_templates.png "Diagram depciting Haml/Erb")
|
58
|
+
|
59
|
+
## Constraints - Important!
|
60
|
+
|
61
|
+
ExpressTemplates imposes some constraints. The most important constraint is that your view templates must be declarative in style. They should not contain conditional logic. Declarative code is easier to read and reason about. It also requires fewer tests since declarative code is build on presumably well-tested primitives.
|
62
|
+
|
63
|
+
With ExpressTemplates, one *must not* place conditional logic or iterators anywhere in template code. All logic *must* be encapsulated in components. Strange things will happen if you try to put logic in the template or a template fragment. In the future I may issue warnings or disallow it by examinging the output of Ruby's tokenizer.
|
64
|
+
|
65
|
+
If you have been around long enough to see a few Rails codebases grow out of control, and you have had to manage or watch the efforts of less-experienced developers closely, you know that one of the major causes of trouble and wasted effort is copy-and-paste code and logic errors in the view. Another common problem is the "blank slate" issue wherein every view must be constructed new with little chance for higher-level reuse of code. Diligent use of partials and helpers can do much to DRY up view code but deciding where to put them or how to share them between projects can be difficult. Rarely is view logic tested except in integration.
|
66
|
+
|
67
|
+
ExpressTemplates only enforces what is already considered a best practice by many, while introducing new possilibities for well-ordered UX libraries similar to what developers working with commercial frameworks for desktop operating systems or mobile devices enjoy.
|
68
|
+
|
69
|
+
## Block Structure
|
70
|
+
|
71
|
+
ExpressTemplates use Ruby's block structure and execution order to indicate parent-child relationships and to build the tree structure that ultimately results in nodes in the DOM.
|
72
|
+
|
73
|
+
Example:
|
74
|
+
|
75
|
+
```ruby
|
76
|
+
ul {
|
77
|
+
li { "one" }
|
78
|
+
li "two"
|
79
|
+
li %Q(#{@three})
|
80
|
+
}
|
81
|
+
```
|
82
|
+
|
83
|
+
Let us suppose that an @three variable exists in the view context with the value "three". This would yield the following markup:
|
84
|
+
|
85
|
+
```html
|
86
|
+
<ul>
|
87
|
+
<li>one</li>
|
88
|
+
<li>two</li>
|
89
|
+
<li>three</li>
|
90
|
+
</ul>
|
91
|
+
```
|
92
|
+
|
93
|
+
yield and local variables which we may expect to be available in a ViewContext are also wrapped for evaluation later.
|
94
|
+
|
95
|
+
## Components
|
96
|
+
|
97
|
+
Given the constraint that logic must not go in the template, where does one put it? The answer is we make a component!
|
98
|
+
|
99
|
+
ExpressTemplates provide a framework for construction of components by encapsulating common logic patterns found in view code into Capabilities which Components may include. These Capabilities form a DSL which allows Components to be built in a declarative fashion. This makes them "low-cost" entities to construct in terms of developer time.
|
100
|
+
|
101
|
+
A common need is for a list items such as in the above example to be generated from a collection or array of data. Let us suppose we expect the view context to have:
|
102
|
+
|
103
|
+
```ruby
|
104
|
+
@list = %w(one two three)
|
105
|
+
```
|
106
|
+
|
107
|
+
We can make a simple component like so:
|
108
|
+
|
109
|
+
```ruby
|
110
|
+
class ListComponent < ExpressTemplates::Components::Base
|
111
|
+
emits inner: -> {
|
112
|
+
li {
|
113
|
+
item
|
114
|
+
}
|
115
|
+
},
|
116
|
+
outer: -> {
|
117
|
+
ul {
|
118
|
+
_yield
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
for_each -> { @list }, emit: :inner
|
123
|
+
|
124
|
+
wrap_with :outer
|
125
|
+
end
|
126
|
+
```
|
127
|
+
|
128
|
+
This would be used in a view template just as if it were a tag, like so:
|
129
|
+
|
130
|
+
```ruby
|
131
|
+
div.active {
|
132
|
+
list_component
|
133
|
+
}
|
134
|
+
```
|
135
|
+
|
136
|
+
Now when the template renders, it will yield:
|
137
|
+
|
138
|
+
```html
|
139
|
+
<div class="active">
|
140
|
+
<ul>
|
141
|
+
<li>one</li>
|
142
|
+
<li>two</li>
|
143
|
+
<li>three</li>
|
144
|
+
</ul>
|
145
|
+
</div>
|
146
|
+
```
|
147
|
+
|
148
|
+
## Background
|
149
|
+
|
150
|
+
ExpressTemplates is a key part of the AppExpress platform at [appexpress.io](http://appexpress.io).
|
151
|
+
|
152
|
+
This project rocks and uses MIT-LICENSE.
|