templet_rails 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/MIT-LICENSE +20 -0
- data/README.md +334 -269
- data/Rakefile +21 -7
- data/app/assets/config/templet_rails_manifest.js +2 -0
- data/app/assets/javascripts/templet_rails/application.js +15 -0
- data/app/assets/stylesheets/templet_rails/application.css +15 -0
- data/app/controllers/templet/json_rendering_helpers.rb +12 -0
- data/app/controllers/templet/rendering_helpers.rb +53 -0
- data/app/controllers/templet/viewer_call_string.rb +144 -0
- data/app/controllers/templet/viewer_call_string_class.rb +65 -0
- data/app/controllers/templet/viewer_responders.rb +121 -0
- data/app/controllers/templet_rails/application_controller.rb +5 -0
- data/app/helpers/templet/constants.rb +54 -0
- data/app/helpers/templet/forms/bs_form.rb +73 -0
- data/app/helpers/templet/forms/bs_form_errors.rb +38 -0
- data/app/helpers/templet/forms/bs_form_field.rb +114 -0
- data/app/helpers/templet/forms/bs_form_group.rb +115 -0
- data/app/helpers/templet/layouts/html_rails.rb +36 -0
- data/app/helpers/templet/links.rb +28 -0
- data/app/helpers/templet/links/bs_btn_class.rb +61 -0
- data/app/helpers/templet/links/bs_link_set_base.rb +168 -0
- data/app/helpers/templet/links/bs_link_set_collection.rb +21 -0
- data/app/helpers/templet/links/bs_link_set_navigation.rb +62 -0
- data/app/helpers/templet/links/rest_link_procs.rb +163 -0
- data/app/helpers/templet/links/rest_link_procs_parent.rb +39 -0
- data/app/helpers/templet/links/rest_link_procs_sets.rb +30 -0
- data/app/helpers/templet/links/rest_link_text.rb +102 -0
- data/app/helpers/templet/links/rest_path.rb +90 -0
- data/app/helpers/templet/mixins.rb +9 -0
- data/app/helpers/templet/mixins/bs.rb +11 -0
- data/app/helpers/templet/mixins/bs/grid.rb +53 -0
- data/app/helpers/templet/mixins/bs/lists.rb +77 -0
- data/app/helpers/templet/mixins/field_procs.rb +140 -0
- data/app/helpers/templet/mixins/html_presenters.rb +82 -0
- data/app/helpers/templet/require_all.rb +45 -0
- data/app/helpers/templet/utils/html_search_form.rb +53 -0
- data/app/helpers/templet/utils/link_set_factory.rb +46 -0
- data/app/helpers/templet/utils/link_set_factory_wrapper.rb +53 -0
- data/app/helpers/templet/utils/list_model_parents.rb +27 -0
- data/app/helpers/templet/utils/navbar_form.rb +26 -0
- data/app/helpers/templet/utils/selected_wrapper.rb +40 -0
- data/app/helpers/templet/viewer.rb +11 -0
- data/app/helpers/templet/viewer/meta_model.rb +66 -0
- data/app/helpers/templet/viewer/meta_model_defaults.rb +56 -0
- data/app/helpers/templet/viewer/presenters.rb +44 -0
- data/app/helpers/templet/viewer/rest_actions.rb +24 -0
- data/app/helpers/templet/viewer_base.rb +111 -0
- data/app/helpers/templet/viewer_rest.rb +144 -0
- data/app/helpers/templet_helper.rb +10 -0
- data/app/helpers/templet_rails/application_helper.rb +4 -0
- data/app/jobs/templet_rails/application_job.rb +4 -0
- data/app/mailers/templet_rails/application_mailer.rb +6 -0
- data/app/models/templet_rails/application_record.rb +5 -0
- data/app/views/layouts/templet_rails/application.html.erb +16 -0
- data/config/routes.rb +2 -0
- data/lib/generators/templet/controller/controller_generator.rb +70 -68
- data/lib/generators/templet/core_install/USAGE +14 -0
- data/lib/generators/templet/core_install/core_install_generator.rb +77 -0
- data/lib/generators/templet/core_rspec/USAGE +5 -8
- data/lib/generators/templet/core_rspec/core_rspec_generator.rb +32 -47
- data/lib/generators/templet/destroy/USAGE +1 -1
- data/lib/generators/templet/destroy/destroy_generator.rb +87 -84
- data/lib/generators/templet/install/USAGE +16 -0
- data/lib/generators/templet/install/install_generator.rb +103 -0
- data/lib/generators/templet/routes/routes_generator.rb +43 -41
- data/lib/generators/templet/rspec/rspec_generator.rb +1 -0
- data/lib/generators/templet/scaffold/scaffold_generator.rb +66 -64
- data/lib/generators/templet/shared/core_helpers.rb +10 -0
- data/lib/generators/templet/shared/model_fields.rb +2 -2
- data/lib/generators/templet/templates/core/app/base_viewer.rb +1 -1
- data/lib/generators/templet/templates/core/app/{panel → layouts}/layout_base.rb +3 -3
- data/lib/generators/templet/templates/core/app/{panel → layouts}/layout_header.rb +3 -1
- data/lib/generators/templet/templates/core/app/{panel → layouts}/layout_header_sidebar.rb +2 -1
- data/lib/generators/templet/templates/core/app/{panel/nav.rb → layouts/navbar.rb} +2 -2
- data/lib/generators/templet/templates/core/app/layouts/navbar_args_option.rb +32 -0
- data/lib/generators/templet/templates/core/app/{link_sets/navbar.rb → layouts/navbar_links.rb} +2 -2
- data/lib/generators/templet/templates/core/app/{panel → layouts}/options_config.rb +3 -3
- data/lib/generators/templet/templates/core/app/layouts/panel/flash_messages.rb +35 -0
- data/lib/generators/templet/templates/core/app/layouts/panel/show_parents_option.rb +24 -0
- data/lib/generators/templet/templates/core/app/layouts/panel/sidebar_links_option.rb +26 -0
- data/lib/generators/templet/templates/core/spec/layouts/flash_messages_spec.rb +18 -0
- data/lib/generators/templet/templates/core/spec/layouts/navbar_spec.rb +19 -0
- data/lib/generators/templet/templates/core/spec/support/apis/api_helper.rb +2 -0
- data/lib/generators/templet/templates/core/spec/support/apis/shared_examples_a_json_controller.rb +1 -1
- data/lib/generators/templet/templates/core/spec/support/{viewer → shared}/partial_test_helpers.rb +0 -0
- data/lib/generators/templet/templates/core/templet/viewer_base.rb +3 -3
- data/lib/generators/templet/viewer/viewer_generator.rb +60 -58
- data/lib/tasks/templet_rails_tasks.rake +4 -0
- data/lib/templet_rails.rb +1 -1
- data/lib/templet_rails/engine.rb +5 -0
- data/lib/templet_rails/version.rb +1 -1
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +4 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/javascripts/cable.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy/app/controllers/answers_controller.rb +86 -0
- data/spec/dummy/app/controllers/application_controller.rb +2 -0
- data/spec/dummy/app/controllers/categories_controller.rb +80 -0
- data/spec/dummy/app/controllers/questions_controller.rb +86 -0
- data/spec/dummy/app/helpers/app.rb +4 -0
- data/spec/dummy/app/helpers/app/answer_viewer.rb +21 -0
- data/spec/dummy/app/helpers/app/base_viewer.rb +7 -0
- data/spec/dummy/app/helpers/app/category_viewer.rb +26 -0
- data/spec/dummy/app/helpers/app/layouts/layout_base.rb +40 -0
- data/spec/dummy/app/helpers/app/layouts/layout_header.rb +24 -0
- data/spec/dummy/app/helpers/app/layouts/layout_header_sidebar.rb +19 -0
- data/spec/dummy/app/helpers/app/layouts/navbar.rb +55 -0
- data/spec/dummy/app/helpers/app/layouts/navbar_args_option.rb +32 -0
- data/spec/dummy/app/helpers/app/layouts/navbar_links.rb +12 -0
- data/spec/dummy/app/helpers/app/layouts/options_config.rb +19 -0
- data/spec/dummy/app/helpers/app/layouts/panel/flash_messages.rb +35 -0
- data/spec/dummy/app/helpers/app/layouts/panel/show_parents_option.rb +24 -0
- data/spec/dummy/app/helpers/app/layouts/panel/sidebar_links_option.rb +26 -0
- data/spec/dummy/app/helpers/app/question_viewer.rb +26 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/jobs/application_job.rb +2 -0
- data/spec/dummy/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy/app/models/answer.rb +12 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/models/category.rb +11 -0
- data/spec/dummy/app/models/question.rb +15 -0
- data/spec/dummy/app/views/layouts/application.html.erb +15 -0
- data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +36 -0
- data/spec/dummy/bin/update +31 -0
- data/spec/dummy/bin/yarn +11 -0
- data/spec/dummy/config.ru +5 -0
- data/spec/dummy/config/application.rb +30 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/cable.yml +10 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +61 -0
- data/spec/dummy/config/environments/production.rb +94 -0
- data/spec/dummy/config/environments/test.rb +46 -0
- data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy/config/initializers/assets.rb +14 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +33 -0
- data/spec/dummy/config/puma.rb +34 -0
- data/spec/dummy/config/routes.rb +9 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20190709192619_create_categories.rb +9 -0
- data/spec/dummy/db/migrate/20190709192656_create_questions.rb +12 -0
- data/spec/dummy/db/migrate/20190709192737_create_answers.rb +13 -0
- data/spec/dummy/db/schema.rb +42 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +64 -0
- data/spec/dummy/log/test.log +40792 -0
- data/spec/dummy/package.json +5 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/{lib/generators/templet/templates/core/controllers/.keep → spec/dummy/public/apple-touch-icon-precomposed.png} +0 -0
- data/spec/dummy/public/apple-touch-icon.png +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/spec/apis/answers_controller_spec.rb +17 -0
- data/spec/dummy/spec/apis/categories_controller_spec.rb +13 -0
- data/spec/dummy/spec/apis/questions_controller_spec.rb +15 -0
- data/spec/dummy/spec/helpers/app/answer_viewer_spec.rb +18 -0
- data/spec/dummy/spec/helpers/app/category_viewer_spec.rb +14 -0
- data/spec/dummy/spec/helpers/app/layouts/flash_messages_spec.rb +18 -0
- data/spec/dummy/spec/helpers/app/layouts/navbar_spec.rb +19 -0
- data/spec/dummy/spec/helpers/app/question_viewer_spec.rb +16 -0
- data/spec/dummy/spec/support/apis/api_helper.rb +15 -0
- data/spec/dummy/spec/support/apis/shared_examples_a_json_controller.rb +196 -0
- data/spec/dummy/spec/support/templet/partial_test_helpers.rb +32 -0
- data/spec/dummy/spec/support/templet/shared_examples_a_viewer.rb +105 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-6/-6-48LISBeQVJvpEXNgFstDrCriEFNmvje6XhidzlV4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-D/-DLE9y_1ICajcEaHcprHYBO8vjXpHySH_56FSb0SLOs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-Y/-YJ1ILDQvu3hOKkF0VR9K_z04e2-EVHglO0MAFS8gpQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-_/-_7FgdEon9WttcnvoyQAysmonCHN7FxsrcuDa5OTUJQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0u/0u-iWymOJvpggI1uY7Na3322xwcjNY7egB-czjV96m4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0x/0xArd189AygdGItqWO0_5BfinFQjLZjwyVsAGWqOgKg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2S/2SfjLWkOp2BGM0OzwsshKpnXI8rlJFOV6ZJsIszRn6k.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3h/3hFAACevvXtDja9zz3rMK6gA1MD1I7_puWyRRkV7sLk.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4o/4oNwzIrltWrfajciBz7JHd5RT5_XVv04L6NdaBGN794.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7F/7F3o6QQqoI0bDk6-A5qMN8LCZQALddlu23KiRWBxtWk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Af/AfFBDeKpi4wSUc7rcjxfjPbEgV6GOGXTjeZhHrfDX48.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bf/BfD6ZVgFq-kWDMMVb2EE5ZAKgsgn1VUR9oVxD0hHVMI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bo/Bogjbc_D5J-6_m5KEgeXt_GHc-IbUt1_FDWP4PHV0P8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DF/DF3HgsSD9LO1Bz8d3GJi_G6wBExmsnBJ6b1pvZEGE7w.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DO/DO8Gqh32jK2GrO9uIlH7qvDkelVw0VM8CTSOUj6iUEo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/GC/GCNwk_ABiY0z51bz8iC8tqLLWKhQwxW4-JLNKv-SRe0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gl/Gls_Zud1kxq7p08FGBfzalbaLMlLBl28bOYebh7Ljrg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gm/GmHHk4YNC0G2V_5gQZp0U6mKFPxGSgL7fwWI3_fajrk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gr/GreB3WHN8MyWMDFGNyqJJcxGblgo-5XepsEHvdJSQGI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Hd/HdvsElcHSt7aKjG9jocgIQJEvBjBbeSZ8HntI1pc38o.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Iv/IvR5RxSTQkxfGWSoy5S2s7wO5u5qwCJ5mNAhqNJtJDY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JS/JSYyQZJzLNqpmVR--ZDUW6PY7_HflyFFHDAOLenxlP4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jx/JxJXzSistcpH4S_9CbGx_wyjVTaE77ZDDfOc4uTfvdM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHCZUSVJq62YPmcVVkfjp2B5uH_nDL7snLl4yqvlSJY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MY/MY5theanttko1gCnW9vKb0Z1GkJn8Ofk149HwOt0UAM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Mn/MnGg5XDll2jo-E_CTC1htiNc0hOY6z80_bwGCvpYTXk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nt/NtYu5CjAvU5ZHxSOn6Q4LPukD3hBE-3vYe30d_uSBzM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nu/NuIepb7qomZzBDAJMUROsshKo8TJxdmFR4yOe64W58w.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/R7/R7ngeIqpdwSWkbjbxxzh6B-KczkWMcxYMIkj5inxrV8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S9/S9MhILnM64qd2M9Z92TrNMtw7VUWZxf3H367OO8rlhs.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/SI/SIZUy2mtjUm_G1YIulRCovzgkCwV1eoR2NLiYcsR1Ws.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sl/SlECThrSAExfICiFGVi-zu240BVDaUldaRs4qcj354U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/St/St6dTA4niiCDLnnArKZV38uZNFf6MbEZ_jHGC-Upft0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/T6/T6p-BnPmMCmpJdaqrjWmLMsBW8SNJpSW6w-Azc3XGVk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vs/VsZPCEai1GtOT-vHjxMS8kAP9ASG5i_2O_EP76uI7Qs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vv/Vv6dack32HV3tIZ_6F4BF8Mrrnb7wZEG4VlEKumQ6L0.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wp/WpV6mJwJX9dwIFJGLoJoa-gXNe1-ZHusE9SwvnWysa8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wy/Wya0wl0Q2nXYb5-bC5Fbo0sDZfKb3415AjtSjld7fQI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b7/b7j7TIOE1nnqvMku0QePWFrwCkaKkNpxkiWST6PAplo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ck/ckDOh-FroVE8r1fwUNWmnRconIREuVdmkZEFkaP9KfU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eN/eNQPQP-9gB3xzxJBsG7soV6Ie0YZ3gxIS97PgYtZVT8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gb/gbUMPMF8S0OQVsFHyAjHpHVEg-3iZzTVIQZDmfq-ycE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/if/ifyb5SlIS8vkACz_6P0uTOGijMB4C5TyFWmrMq3DYIg.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jg/jg-s5YLdnojCtHqzfDTsvcy6UHewDRl1X09qlGyvyag.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ko/koPyQus8Oqrx18bnLj-5nJrKvFf6FDDQbv2qEa7Bl7M.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lG/lGRRazgrFErFx1PkfDlca6r-0MGQR40i0tq0Wgm2FNU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lS/lStvx9Beg2l4s8L-QdTSKuc5_qQPQAZPnIcRI7JkpPE.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lZ/lZIacHrJV5bDohEHsVOXDGIDrUH2h4YvwV9g-MWmh3k.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lq/lqM4-wfprvp5FEBp1pSm88Jwx-Vb2oJab2rjLtUcIyM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ps/psGFyjvQcs8JpIV8BDeCqQfHaLYgIgSAi86n4RrFpFs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r1/r1IIabhuPhgB3n8V3ZMRN0SqIsXJ8bH0ABTRzHTG1SU.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vt/vtskp0QTt72oDQNM6mYZ8pCclh2HICHeYZ1QtDvC5xo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wi/win_v0ZNu-l7AoRx8w3ls1xcy0mUExLBVMCSr5oaJFc.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yo/yoggubxI12fIM1o5TtxUialrUN-LWOfRaV_tqc1HAC4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zH/zHnHpZP25wEHaF3mI_M9RGH1zeCApf6mwhLB3Lku1zs.cache +3 -0
- data/spec/dummy/tmp/development_secret.txt +1 -0
- data/spec/factories/answers.rb +10 -0
- data/spec/factories/categories.rb +5 -0
- data/spec/factories/questions.rb +8 -0
- data/spec/helpers/templet/forms/bs_form_errors_spec.rb +18 -0
- data/spec/helpers/templet/forms/bs_form_spec.rb +58 -0
- data/spec/helpers/templet/layout/html_rails_spec.rb +64 -0
- data/spec/helpers/templet/links/bs_link_set_collection_spec.rb +79 -0
- data/spec/helpers/templet/links/rest_link_procs_params_spec.rb +68 -0
- data/spec/helpers/templet/links/rest_link_procs_parents_spec.rb +78 -0
- data/spec/helpers/templet/links/rest_link_procs_spec.rb +140 -0
- data/spec/models/answer_spec.rb +9 -0
- data/spec/models/category_spec.rb +9 -0
- data/spec/models/question_spec.rb +9 -0
- data/spec/rails_helper.rb +61 -0
- data/spec/spec_helper.rb +108 -0
- data/spec/support/templet/model_parent_helpers.rb +36 -0
- data/spec/support/templet/partial_test_helpers.rb +32 -0
- data/spec/support/templet/rest_link_procs_assignments.rb +43 -0
- data/spec/support/templet/rest_link_procs_helpers.rb +15 -0
- metadata +470 -38
- data/.gitignore +0 -8
- data/.travis.yml +0 -5
- data/Gemfile +0 -6
- data/LICENSE.txt +0 -21
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/lib/generators/templet/core/USAGE +0 -23
- data/lib/generators/templet/core/core_generator.rb +0 -128
- data/lib/generators/templet/templates/core/app/panel/flash_messages.rb +0 -33
- data/lib/generators/templet/templates/core/app/panel/nav_args_option.rb +0 -30
- data/lib/generators/templet/templates/core/app/panel/show_parents_option.rb +0 -22
- data/lib/generators/templet/templates/core/app/panel/sidebar_links_option.rb +0 -24
- data/templet_rails.gemspec +0 -36
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Gemfile
DELETED
data/LICENSE.txt
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2018 TODO: Write your name
|
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
|
13
|
-
all 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
|
21
|
-
THE SOFTWARE.
|
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "templet_rails"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|
data/bin/setup
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
Description:
|
2
|
-
Installs the complete framework source under new directory trees,
|
3
|
-
by default, the core code is copied under app/helpers/templet/,
|
4
|
-
but you can change this with the option, DEST.
|
5
|
-
If you install under a directory, like lib/ or vendor/, then you must
|
6
|
-
uncomment the 'require' statements in the file, templet/require_all.rb.
|
7
|
-
This generator also creates another directory tree, app/helpers/app/,
|
8
|
-
which is where your own (application) code should go.
|
9
|
-
Should you later decide to delete all of these files then the generator,
|
10
|
-
templet:destroy can be used. This destroy generator also provides
|
11
|
-
selective deletion.
|
12
|
-
|
13
|
-
Example:
|
14
|
-
rails generate templet:core --dest lib/
|
15
|
-
|
16
|
-
This will create:
|
17
|
-
app/controllers/templet/* # Helper modules for invoking the framework
|
18
|
-
app/helpers/templet/** # If dest is given, it replaces 'app/helpers'
|
19
|
-
app/helpers/templet_helper.rb # For framework settings
|
20
|
-
app/helpers/app.rb # For global settings in your own code
|
21
|
-
app/helpers/app/** # Your own (application) code
|
22
|
-
spec/support/apis/* # For testing JSON sent from the controller
|
23
|
-
spec/support/templet/* # For testing the HTML in the rendered views
|
@@ -1,128 +0,0 @@
|
|
1
|
-
|
2
|
-
require_relative '../shared/core_helpers'
|
3
|
-
|
4
|
-
class Templet::CoreGenerator < Rails::Generators::Base
|
5
|
-
include Shared::CoreHelpers
|
6
|
-
|
7
|
-
CONTROLLER_SUBDIR = 'controllers/'
|
8
|
-
APIS_SUBDIR = 'apis/'
|
9
|
-
|
10
|
-
source_root File.expand_path('./', __FILE__)
|
11
|
-
desc
|
12
|
-
|
13
|
-
DEST_DESC = 'The directory that the core code will be copied beneath'
|
14
|
-
class_option :dest, type: :string, aliases: "-d", default: '', desc: DEST_DESC
|
15
|
-
|
16
|
-
def ensure_uninstalled
|
17
|
-
if dir = already_installed_at
|
18
|
-
puts "Can't install while there are files present in #{dir}"
|
19
|
-
|
20
|
-
exit
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def create_templet_core
|
25
|
-
create_templet_tree
|
26
|
-
|
27
|
-
create_controller_modules
|
28
|
-
end
|
29
|
-
|
30
|
-
def create_app
|
31
|
-
create_app_tree
|
32
|
-
|
33
|
-
create_app_rb
|
34
|
-
create_templet_helper_rb
|
35
|
-
end
|
36
|
-
|
37
|
-
def create_rspec_support
|
38
|
-
if rspec?
|
39
|
-
directory spec_support_dir_source, spec_support_dir_target
|
40
|
-
|
41
|
-
directory api_support_dir_source, api_support_dir_target
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def create_templet_tree
|
48
|
-
directory core_dir_source, core_dir_target
|
49
|
-
end
|
50
|
-
|
51
|
-
def create_controller_modules
|
52
|
-
directory controller_dir_source, controller_dir_target
|
53
|
-
end
|
54
|
-
|
55
|
-
def create_app_tree
|
56
|
-
directory app_dir_source, app_dir_target
|
57
|
-
end
|
58
|
-
|
59
|
-
def create_app_rb
|
60
|
-
copy_helper 'app.rb'
|
61
|
-
end
|
62
|
-
|
63
|
-
def create_templet_helper_rb
|
64
|
-
copy_helper 'templet_helper.rb'
|
65
|
-
end
|
66
|
-
|
67
|
-
def copy_helper(file)
|
68
|
-
copy_file helper_dir_source(file), helper_dir_target(file)
|
69
|
-
end
|
70
|
-
|
71
|
-
def core_dir_source
|
72
|
-
SOURCE_ROOT + TEMPLET_SUBDIR
|
73
|
-
end
|
74
|
-
def core_dir_target
|
75
|
-
core_dest_subdir + TEMPLET_SUBDIR
|
76
|
-
end
|
77
|
-
|
78
|
-
def controller_dir_source
|
79
|
-
SOURCE_ROOT + CONTROLLER_SUBDIR
|
80
|
-
end
|
81
|
-
def controller_dir_target
|
82
|
-
APP_ROOT + CONTROLLER_SUBDIR + TEMPLET_SUBDIR
|
83
|
-
end
|
84
|
-
|
85
|
-
def app_dir_source
|
86
|
-
SOURCE_ROOT + APP_SUBDIR
|
87
|
-
end
|
88
|
-
def app_dir_target
|
89
|
-
APP_ROOT + HELPERS_SUBDIR + APP_SUBDIR
|
90
|
-
end
|
91
|
-
|
92
|
-
def helper_dir_source(file)
|
93
|
-
SOURCE_ROOT + HELPERS_SUBDIR + file
|
94
|
-
end
|
95
|
-
def helper_dir_target(file)
|
96
|
-
APP_ROOT + HELPERS_SUBDIR + file
|
97
|
-
end
|
98
|
-
|
99
|
-
def spec_support_dir_source
|
100
|
-
SOURCE_ROOT + spec_support_dir + 'viewer/'
|
101
|
-
end
|
102
|
-
def spec_support_dir_target
|
103
|
-
spec_support_dir + TEMPLET_SUBDIR
|
104
|
-
end
|
105
|
-
|
106
|
-
def api_support_dir_source
|
107
|
-
SOURCE_ROOT + spec_support_dir + APIS_SUBDIR
|
108
|
-
end
|
109
|
-
def api_support_dir_target
|
110
|
-
spec_support_dir + APIS_SUBDIR
|
111
|
-
end
|
112
|
-
|
113
|
-
def dest_dirs
|
114
|
-
super + [ LIB_ROOT + TEMPLET_SUBDIR, core_dest_subdir + TEMPLET_SUBDIR ]
|
115
|
-
end
|
116
|
-
|
117
|
-
def core_dest_subdir
|
118
|
-
if ( dest = options['dest'] ).present?
|
119
|
-
if Dir.exists? dest
|
120
|
-
dest + (dest.end_with?('/') ? '' : '/')
|
121
|
-
else
|
122
|
-
raise "Destination directory, #{dest}, must exist"
|
123
|
-
end
|
124
|
-
else
|
125
|
-
APP_ROOT + HELPERS_SUBDIR
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
|
2
|
-
module App
|
3
|
-
module Panel
|
4
|
-
# Shows flash messages in a Bootstrap alert - inside a Bootstrap grid
|
5
|
-
class FlashMessages < Templet::Component::Partial
|
6
|
-
include Templet::Mixins::Bs::Grid
|
7
|
-
|
8
|
-
BUTTON_ATTS = { class: "close",
|
9
|
-
data_dismiss: "alert",
|
10
|
-
aria_hidden: "true" }
|
11
|
-
|
12
|
-
def call(**column_opts)
|
13
|
-
super() do
|
14
|
-
if flash.any?
|
15
|
-
in_rows renderer, **column_opts do
|
16
|
-
flash.map do |name, message|
|
17
|
-
if message.is_a?(String)
|
18
|
-
alert_name = name.to_s == 'notice' ? 'success' : 'danger'
|
19
|
-
|
20
|
-
div "alert alert-dismissible alert-#{alert_name}" do
|
21
|
-
[ button('×', BUTTON_ATTS),
|
22
|
-
div(message, id: "flash_#{name}") ]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
@@ -1,30 +0,0 @@
|
|
1
|
-
|
2
|
-
module App
|
3
|
-
module Panel
|
4
|
-
module NavArgsOption
|
5
|
-
private
|
6
|
-
|
7
|
-
def panel_options(renderer=nil, **options)
|
8
|
-
super renderer, options.merge(nav_args: nav_args(renderer))
|
9
|
-
end
|
10
|
-
|
11
|
-
def nav_args(renderer)
|
12
|
-
return page_title, navbar_links(renderer)
|
13
|
-
end
|
14
|
-
|
15
|
-
def navbar_links(renderer)
|
16
|
-
Templet::Utils::LinkSetFactory
|
17
|
-
.new(renderer, action, navbar_links_class, navbar_links_options)
|
18
|
-
end
|
19
|
-
|
20
|
-
def navbar_links_class
|
21
|
-
App::LinkSets::Navbar
|
22
|
-
end
|
23
|
-
|
24
|
-
def navbar_links_options
|
25
|
-
{ html_class: '', remote: nil, wrapper: :li }
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
@@ -1,22 +0,0 @@
|
|
1
|
-
|
2
|
-
module App
|
3
|
-
module Panel
|
4
|
-
module ShowParentsOption
|
5
|
-
private
|
6
|
-
|
7
|
-
def panel_options(renderer=nil, **options)
|
8
|
-
super renderer, options.merge(header_right: show_parents(renderer))
|
9
|
-
end
|
10
|
-
|
11
|
-
def show_parents(renderer)
|
12
|
-
if respond_to?(:parent) and parent
|
13
|
-
parent_list = Templet::Utils::ListModelParents.new
|
14
|
-
.in_html(parent, [*grand_parent])
|
15
|
-
|
16
|
-
in_html_list(renderer, parent_list, html_class: :stacked)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
@@ -1,24 +0,0 @@
|
|
1
|
-
|
2
|
-
module App
|
3
|
-
module Panel
|
4
|
-
module SidebarLinksOption
|
5
|
-
private
|
6
|
-
|
7
|
-
def panel_options(renderer=nil, **options)
|
8
|
-
super renderer, options.merge(sidebar_cols: nil,
|
9
|
-
sidebar_content: sidebar_links(renderer))
|
10
|
-
end
|
11
|
-
|
12
|
-
def sidebar_links(renderer)
|
13
|
-
Templet::Utils::LinkSetFactoryWrapper
|
14
|
-
.new(renderer, action, sidebar_links_class)
|
15
|
-
#.(:toolbar, stacked: true)
|
16
|
-
end
|
17
|
-
|
18
|
-
def sidebar_links_class
|
19
|
-
Templet::Links::BsLinkSetNavigation
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
data/templet_rails.gemspec
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require "templet_rails/version"
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "templet_rails"
|
8
|
-
spec.version = TempletRails::VERSION
|
9
|
-
spec.authors = ["Stephen Rycyk"]
|
10
|
-
spec.email = ["stephen.rycyk@googlemail.com"]
|
11
|
-
|
12
|
-
spec.summary = %q{A framework for view rendering in Rails.}
|
13
|
-
spec.description = %q{Contains generators for installing the the framework.}
|
14
|
-
spec.homepage = "http://github.com/srycyk/templet_rails."
|
15
|
-
spec.license = "MIT"
|
16
|
-
|
17
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
|
-
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
19
|
-
#if spec.respond_to?(:metadata)
|
20
|
-
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
21
|
-
#else
|
22
|
-
# raise "RubyGems 2.0 or newer is required to protect against " \
|
23
|
-
# "public gem pushes."
|
24
|
-
#end
|
25
|
-
|
26
|
-
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
|
-
f.match(%r{^(test|spec|features)/})
|
28
|
-
end
|
29
|
-
spec.bindir = "exe"
|
30
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = ["lib"]
|
32
|
-
|
33
|
-
spec.add_development_dependency "bundler", "~> 1.16"
|
34
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
35
|
-
#spec.add_development_dependency "minitest", "~> 5.0"
|
36
|
-
end
|