rtml 1.2.2
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.
- data/History.txt +4 -0
- data/Manifest.txt +396 -0
- data/PostInstall.txt +2 -0
- data/README.rdoc +42 -0
- data/Rakefile +33 -0
- data/app_generators/rtml/USAGE +5 -0
- data/app_generators/rtml/rtml_generator.rb +78 -0
- data/app_generators/rtml/templates/rails_template.rb +36 -0
- data/app_generators/rtml/templates/rtml/MIT-LICENSE +20 -0
- data/app_generators/rtml/templates/rtml/README +109 -0
- data/app_generators/rtml/templates/rtml/Rakefile +38 -0
- data/app_generators/rtml/templates/rtml/app/controllers/beryl_controller.rb +70 -0
- data/app_generators/rtml/templates/rtml/app/controllers/rtml/magcard_demo_controller.rb +9 -0
- data/app_generators/rtml/templates/rtml/app/controllers/rtml/oe/btmlpa_controller.rb +158 -0
- data/app_generators/rtml/templates/rtml/app/controllers/rtml/rtml_app_controller.rb +252 -0
- data/app_generators/rtml/templates/rtml/app/controllers/rtml/tml_app_controller.rb +418 -0
- data/app_generators/rtml/templates/rtml/app/helpers/beryl_helper.rb +72 -0
- data/app_generators/rtml/templates/rtml/app/helpers/beryl_tml_helpers/auth_result.rb +56 -0
- data/app_generators/rtml/templates/rtml/app/helpers/beryl_tml_helpers/common.rb +19 -0
- data/app_generators/rtml/templates/rtml/app/helpers/beryl_tml_helpers/index.rb +82 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/magcard_demo_helper.rb +2 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/magcard_demo_tml_helpers/authorized.rb +10 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/magcard_demo_tml_helpers/common.rb +20 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/magcard_demo_tml_helpers/index.rb +33 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_helper.rb +2 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_tml_helpers/auth_result.rb +23 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_tml_helpers/common.rb +23 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_tml_helpers/dynamic.rb +11 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_tml_helpers/icc.rb +384 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_tml_helpers/index.rb +191 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/oe/btmlpa_tml_helpers/receipt.rb +152 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/rtml_app_helper.rb +74 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/rtml_app_tml_helpers/common.rb +9 -0
- data/app_generators/rtml/templates/rtml/app/helpers/rtml/tml_app_helper.rb +43 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/card.rb +83 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/card_avs.rb +14 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/card_cvv.rb +14 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/card_parser.rb +21 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/card_pin.rb +18 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/emv_card_data.rb +25 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/mag_card_data.rb +21 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/reference_code.rb +26 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/state.rb +12 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/terminal.rb +8 -0
- data/app_generators/rtml/templates/rtml/app/models/rtml/transaction.rb +68 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/auth_result/another_rcpt.rtml.erb +15 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/auth_result/receipt.rtml.erb +108 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/auth_result/receipt_single_column.rtml.erb +106 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/about.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/admin.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/construction.rtml.erb +10 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/idle.rtml.erb +13 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/main_menu.rtml.erb +12 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/menu_credit.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/beryl/index/menu_debit.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/beryl_color.rtml.erb +24 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/beryl_mono.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/magcard_demo_color.rtml.erb +24 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/magcard_demo_mono.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/oe/btmlpa_i5100.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/oe/btmlpa_i8550.rtml.erb +17 -0
- data/app_generators/rtml/templates/rtml/app/views/layouts/rtml/uml.html.erb +11 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/magcard_demo/authorized.html.erb +15 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/magcard_demo/authorized/main.rtml.erb +5 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/magcard_demo/index.html.erb +15 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/magcard_demo/index/_error.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/magcard_demo/index/enter_amount.rtml.erb +5 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/magcard_demo/index/main.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/dynamic/response.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/icc.rtml.erb +760 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_enter_amount.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_about.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_duplicate.rtml.erb +9 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_examples.rtml.erb +9 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_logo.rtml.erb +11 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_other.rtml.erb +20 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_refund.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_reversal.rtml.erb +9 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_sale.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/_menu_sale_cashback.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/about.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/assert.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/card_nmb.rtml.erb +19 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/compl_txn.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/confirm_rev.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/duplicate_na.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/error_scr.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/main_menu.rtml.bak +31 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/main_menu.rtml.erb +40 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/print_pf.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/rd_sale_disp.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/read_refund.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/read_scb.rtml.erb +10 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/reject_trans.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/remove_card.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/rev_bad.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/scb_check_f.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/sign_check.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/subm_err.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/to_man_entry.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/trans_abrt.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/index/void_trans.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/receipt/_receipt.rtml.erb +29 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/oe/btmlpa/receipt/error_paper.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/rtml_app/_default_development.html.erb +167 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/rtml_app/_default_header.html.erb +12 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/rtml_app/_default_production.html.erb +8 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/rtml_app/charts.html.erb +14 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/tml_app/do_tml_redirect.rtml.erb +7 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/tml_app/get_terminal_info.rtml.erb +26 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/tml_app/rescue_action_in_public.rtml.erb +9 -0
- data/app_generators/rtml/templates/rtml/app/views/rtml/tml_app/rescue_action_locally.rtml.erb +42 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/common.rb +303 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/force.rb +46 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/return.rb +22 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/sale.rb +49 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/_confirmation.rtml.erb +10 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/_receipt_agreement.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/_receipt_footer.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/_receipt_header.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/ask_cashback.rtml.erb +11 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/card_imprint.rtml.erb +7 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/check_cb.rtml.erb +11 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/conf_debit.rtml.erb +5 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/confirm_sale.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/confrm_force.rtml.erb +4 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/cvv_skipped.rtml.erb +10 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/disp_avs.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/do_avs_zip.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/enter_amount.rtml.erb +12 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/enter_card.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/enter_cashbk.rtml.erb +10 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/enter_cvv2.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/enter_expiry.rtml.erb +9 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/fraud_check1.rtml.erb +6 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/fraud_check2.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/frc_aprvl.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/frc_avs_zip.rtml.erb +8 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/frc_bad_aprv.rtml.erb +5 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/frd_chk_fail.rtml.erb +5 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/invalid_exp.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/no_entr_crd.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/remove_card.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/swipe_card.rtml.erb +7 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/trans_abort.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/trans_reject.rtml.erb +1 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/views/void_ref.rtml.erb +10 -0
- data/app_generators/rtml/templates/rtml/components/rtml/features/void.rb +30 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/card_parser_widget.rb +90 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/display_widget.rb +66 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/element_builder_widget.rb +123 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/emv_support_widget.rb +365 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/form_submit_widget.rb +65 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/get_transaction_variables_widget.rb +33 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/get_variable_widget.rb +39 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/receipt_widget.rb +66 -0
- data/app_generators/rtml/templates/rtml/components/rtml/widgets/screen_builder_widget.rb +49 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825132217_create_rtml_states.rb +15 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825132401_create_rtml_terminals.rb +16 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825132530_create_rtml_transactions.rb +24 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825134118_create_rtml_cards.rb +23 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825134622_create_rtml_emv_card_data.rb +20 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825134629_create_rtml_mag_card_data.rb +17 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090825135838_create_rtml_card_parsers.rb +19 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090826103509_create_reference_codes.rb +14 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090915030044_add_batch_to_rtml_transactions.rb +10 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090915031155_add_additional_data_to_rtml_transactions.rb +10 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20090915031156_add_hidden_data_to_rtml_transactions.rb +10 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20091016133313_create_rtml_card_avs.rb +16 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20091016135800_create_rtml_card_cvvs.rb +16 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20091016135810_create_rtml_card_pins.rb +16 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20091016135820_reverse_card_transaction_relationship.rb +11 -0
- data/app_generators/rtml/templates/rtml/db/migrate/20100127115105_convert_rtml_migrations_to_rails_migrations.rb +31 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/USAGE +25 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/rtml_controller_generator.rb +49 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/common_tml_helper.rb +20 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/controller.rb +3 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/css_color.css +37 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/css_mono.css +12 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/functional_test.rb +11 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/helper.rb +2 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/layout_color.rtml.erb +24 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/layout_mono.rtml.erb +3 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/tml_helper.rb +16 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/view.html.erb +15 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_controller/templates/view.rtml.erb +2 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_document/USAGE +8 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_document/rtml_document_generator.rb +45 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_document/templates/controller.rb +7 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_document/templates/functional_test.rb +10 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_document/templates/helper.rb +2 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_document/templates/view.rtml.erb +11 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_widget/USAGE +8 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_widget/rtml_widget_generator.rb +66 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_widget/templates/basic_widget.rb +57 -0
- data/app_generators/rtml/templates/rtml/generators/rtml_widget/templates/basic_widget_no_help.rb +27 -0
- data/app_generators/rtml/templates/rtml/init.rb +40 -0
- data/app_generators/rtml/templates/rtml/install.rb +18 -0
- data/app_generators/rtml/templates/rtml/lib/environment.rb +61 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/action_controller/request.rb +9 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/action_controller/routing/route_set.rb +34 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/action_view/base.rb +74 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/action_view/partial_template.rb +24 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/active_record.rb +13 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/active_support/dependencies.rb +25 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/array.rb +15 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/attr_boolean.rb +10 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/hash.rb +28 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/nil_class.rb +20 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/rake.rb +19 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/regexp.rb +16 -0
- data/app_generators/rtml/templates/rtml/lib/extensions/string.rb +37 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins.rb +23 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/MIT-LICENSE +20 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/README +36 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/Rakefile +44 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/init.rb +25 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/lib/action_controller/filters/before_render_filter.rb +30 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/lib/before_render.rb +43 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/lib/before_render_instance.rb +45 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/lib/filter_chain_has_many_types_of_filters.rb +87 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/lib/filter_has_before_render.rb +26 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/tasks/before_render_tasks.rake +25 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/test/before_render_test.rb +29 -0
- data/app_generators/rtml/templates/rtml/lib/other_plugins/before_render/test/test_helper.rb +24 -0
- data/app_generators/rtml/templates/rtml/lib/rtml.rb +77 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/beryl/constants.rb +12 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/beryl/version.rb +11 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/common/renderable.rb +13 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/include.rb +30 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/layout.rb +59 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/next.rb +188 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/screen.rb +91 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/screen/iterators.rb +63 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/screen/next_screen_methods.rb +70 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/screen/variable_methods.rb +73 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/support/importer.rb +55 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/tml_document.rb +318 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/tml_document/screen_methods.rb +79 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/tml_document/variable_methods.rb +83 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/core/variable.rb +123 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/debug/browser_emulator.rb +59 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/debug/rtml_controller_test_case.rb +7 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/debug/rtml_core_unit_test.rb +11 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/debug/unit_test.rb +3 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/delegation.rb +8 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/doc.rb +12 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/element.rb +75 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/errors/widget_accessor_failure.rb +9 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/events/event_handler.rb +79 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/events/event_processor.rb +106 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/events/processors.rb +10 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/events/processors/defaults_processor.rb +18 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/events/processors/key_processor.rb +21 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/feature.rb +32 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/feature_config.rb +195 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/features.rb +18 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/features/array_of_feature_instances.rb +17 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/features/controller_class_methods.rb +30 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/features/controller_instance_methods.rb +35 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers.rb +21 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/controller_helpers.rb +59 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/controller_helpers/menu_helpers.rb +193 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/core_helpers/action_view_wrapper.rb +23 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/core_helpers/event_helpers.rb +28 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/core_helpers/layout_helpers.rb +47 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/core_helpers/widget_support.rb +181 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/core_helpers/widget_support/class_methods.rb +28 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/core_helpers/yield_helpers.rb +33 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/proxy_helpers/feature_helpers.rb +17 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/render_helper.rb +71 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/terminal_helpers.rb +21 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/test_helpers.rb +6 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/test_helpers/tml_validation_assertions.rb +10 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/test_helpers/variable_assertions.rb +27 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/view_helpers/form_helpers.rb +70 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/helpers/view_helpers/rtml_form_builder.rb +174 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/oe/btmlpa_constants.rb +48 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/proxying/method_missing_methods.rb +14 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/proxying/rtml_interface.rb +33 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/proxying/sandbox.rb +18 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/text_utils.rb +51 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/tml_param_parser.rb +95 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/validation/dom_rule_parser.rb +61 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/validation/dom_tag.rb +52 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/validation/predefined_variable_rule_parser.rb +97 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/validation/tml_validator.rb +16 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/version.rb +11 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/widgets/property.rb +11 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/widgets/property_accessors.rb +59 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/widgets/widget.rb +251 -0
- data/app_generators/rtml/templates/rtml/lib/rtml/widgets/widget_class_methods.rb +213 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/dot.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_can.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_cand.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_en.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_end.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_i.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_icd.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_icl.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_icr.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_ics.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_icsw.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_icv.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_int.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_int2.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_men.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_mend.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_next.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_no.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_nod.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_ok.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_okd.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_pic1.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_pic2.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_pic3.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_pic4.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_top.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_txn.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_yes.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/btmlpa/nbg_yesd.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/btmlpa.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/can_dn.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/can_up.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/conf.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/iccemv.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/images.lib +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/magcard.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/no_dn.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/no_up.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/ok_dn.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/ok_up.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/top.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/yes_dn.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/images/rtml/oe/examples/yes_up.gif +0 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/beryl_color.css +37 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/beryl_mono.css +17 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/charts.css +0 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/oe/btmlpa/i5100.css +12 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/oe/btmlpa/i8550.css +37 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/oe/btmlpa/receipt.css +4 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/oe/examples/i5100.css +12 -0
- data/app_generators/rtml/templates/rtml/public/stylesheets/rtml/oe/examples/i8550.css +37 -0
- data/app_generators/rtml/templates/rtml/reporting/110409 +227 -0
- data/app_generators/rtml/templates/rtml/reporting/linecount.rb +42 -0
- data/app_generators/rtml/templates/rtml/rules/predefined_tml_variables.rb +63 -0
- data/app_generators/rtml/templates/rtml/rules/tml_document_structure.rb +84 -0
- data/app_generators/rtml/templates/rtml/rules/varns/audio.rb +30 -0
- data/app_generators/rtml/templates/rtml/rules/varns/card.rb +17 -0
- data/app_generators/rtml/templates/rtml/rules/varns/card/emv.rb +31 -0
- data/app_generators/rtml/templates/rtml/rules/varns/card/mag.rb +8 -0
- data/app_generators/rtml/templates/rtml/rules/varns/card/parser.rb +7 -0
- data/app_generators/rtml/templates/rtml/rules/varns/card/pin.rb +6 -0
- data/app_generators/rtml/templates/rtml/rules/varns/cfgm.rb +15 -0
- data/app_generators/rtml/templates/rtml/rules/varns/com.rb +9 -0
- data/app_generators/rtml/templates/rtml/rules/varns/err.rb +14 -0
- data/app_generators/rtml/templates/rtml/rules/varns/gma/event.rb +13 -0
- data/app_generators/rtml/templates/rtml/rules/varns/gprs.rb +8 -0
- data/app_generators/rtml/templates/rtml/rules/varns/imager.rb +8 -0
- data/app_generators/rtml/templates/rtml/rules/varns/ip.rb +15 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr.rb +42 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr/3rdparty.rb +7 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr/backlight.rb +4 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr/cache.rb +1 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr/connect.rb +5 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr/connection.rb +5 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oebr/offline.rb +5 -0
- data/app_generators/rtml/templates/rtml/rules/varns/oegw.rb +12 -0
- data/app_generators/rtml/templates/rtml/rules/varns/payment.rb +21 -0
- data/app_generators/rtml/templates/rtml/rules/varns/ppp.rb +11 -0
- data/app_generators/rtml/templates/rtml/rules/varns/terminal.rb +29 -0
- data/app_generators/rtml/templates/rtml/tasks/rtml_tasks.rake +78 -0
- data/app_generators/rtml/templates/rtml/template.rb +64 -0
- data/app_generators/rtml/templates/rtml/test/core/element_test.rb +17 -0
- data/app_generators/rtml/templates/rtml/test/core/screen_test.rb +91 -0
- data/app_generators/rtml/templates/rtml/test/core/tml_document_test.rb +53 -0
- data/app_generators/rtml/templates/rtml/test/functional/beryl_controller_test.rb +13 -0
- data/app_generators/rtml/templates/rtml/test/functional/btmlpa_controller_test.rb +13 -0
- data/app_generators/rtml/templates/rtml/test/functional/magcard_demo_controller_test.rb +20 -0
- data/app_generators/rtml/templates/rtml/test/functional/rtml_app_controller_test.rb +9 -0
- data/app_generators/rtml/templates/rtml/test/functional/rtml_routing_test.rb +19 -0
- data/app_generators/rtml/templates/rtml/test/functional/tml_controller_params_test.rb +20 -0
- data/app_generators/rtml/templates/rtml/test/rtml_test_helper.rb +44 -0
- data/app_generators/rtml/templates/rtml/test/validation/predefined_variable_rule_parser_test.rb +11 -0
- data/app_generators/rtml/templates/rtml/uninstall.rb +1 -0
- data/app_generators/rtml/templates/rtml/update.rb +57 -0
- data/bin/rtml +36 -0
- data/lib/rtml.rb +4 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/tasks/reglob.rake +28 -0
- data/test/test_generator_helper.rb +29 -0
- data/test/test_helper.rb +3 -0
- data/test/test_rtml.rb +11 -0
- data/test/test_rtml_generator.rb +43 -0
- metadata +516 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
module Rtml::Helpers::CoreHelpers
|
|
2
|
+
# Adds support to this class for Widgets to be added. Note that this does not
|
|
3
|
+
# immediately mean that the Widget can be added to the class -- only that the
|
|
4
|
+
# Widget can now specify this module as a legal accessor. See Rtml::Widgets::Widget
|
|
5
|
+
# for more details.
|
|
6
|
+
module WidgetSupport
|
|
7
|
+
include Rtml::TextUtils
|
|
8
|
+
|
|
9
|
+
def self.included(base) #:nodoc:
|
|
10
|
+
base.extend ClassMethods
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Returns the controller that is constructing the current document. Equivalent to
|
|
14
|
+
# <code>action_view.controller</code>.
|
|
15
|
+
def controller
|
|
16
|
+
action_view ? action_view.controller : nil
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# The content_of_view method can be called in a variety of ways, and provides a great
|
|
20
|
+
# deal of functionality depending on how it is called. In all cases,
|
|
21
|
+
# it returns a String:
|
|
22
|
+
#
|
|
23
|
+
# 1. You can pass a hash to it, and the hash will be proxied into either
|
|
24
|
+
# ActionController::Base#render or ActionView::Base#render, depending
|
|
25
|
+
# on whether you are calling it from a View or a TML Helper. The result
|
|
26
|
+
# of this render method is returned.
|
|
27
|
+
#
|
|
28
|
+
# content_of_view :partial => 'menu'
|
|
29
|
+
# content_of_view :file => 'common/raw_tml/something_important.tml'
|
|
30
|
+
#
|
|
31
|
+
# content_of_view :action => 'index' # though this case probably wouldn't happen often.
|
|
32
|
+
#
|
|
33
|
+
# 2. You can pass a String to it, and that String will be returned.
|
|
34
|
+
#
|
|
35
|
+
# content_of_view "Hello, world!"
|
|
36
|
+
#
|
|
37
|
+
# 3. You can pass a Block to it, and the result value of that Block will
|
|
38
|
+
# be returned.
|
|
39
|
+
#
|
|
40
|
+
# content_of_view do
|
|
41
|
+
# if current_user then "Hello, #{current_user.name}"
|
|
42
|
+
# else "You must log in."
|
|
43
|
+
# end
|
|
44
|
+
# end
|
|
45
|
+
#
|
|
46
|
+
# 4. You can pass it any RTML object that responds_to? :render_tml (which should
|
|
47
|
+
# be most objects -- Screens, TMLDocument itself, and Widgets), and the result
|
|
48
|
+
# of calling #render_tml on that object will be returned.
|
|
49
|
+
#
|
|
50
|
+
# content_of_view self.document # This would render a snapshot of the entire TML document
|
|
51
|
+
# # into the return value.
|
|
52
|
+
#
|
|
53
|
+
# 5. You can pass it nil, or no arguments at all, and content_of_view will look for a View
|
|
54
|
+
# file with the same name as the current screen ID.
|
|
55
|
+
#
|
|
56
|
+
# screen :index do
|
|
57
|
+
# concat content_of_view # looks for index.rtml.erb and concatenates that to
|
|
58
|
+
# end # the :index TML screen that is currently being generated.
|
|
59
|
+
#
|
|
60
|
+
# Note that a great number of RTML methods forward their arguments into this method,
|
|
61
|
+
# so the above is applicable to most of them.
|
|
62
|
+
#
|
|
63
|
+
def content_of_view(content = nil, &blk)
|
|
64
|
+
content = yield if content.nil? and block_given?
|
|
65
|
+
if content.nil?
|
|
66
|
+
return action_view_render(:file => "#{current_screen_id}.rtml.erb")
|
|
67
|
+
else
|
|
68
|
+
if content.kind_of? Hash
|
|
69
|
+
if content.keys.length == 1 && content.keys[0].to_s == 'locals'
|
|
70
|
+
action_view_render :file => "#{current_screen_id}.rtml.erb", :locals => content.values[0]
|
|
71
|
+
else
|
|
72
|
+
action_view_render content
|
|
73
|
+
end
|
|
74
|
+
elsif content.respond_to? :render_tml
|
|
75
|
+
return content.render_tml
|
|
76
|
+
else
|
|
77
|
+
return content.to_s
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
@@widget_action_view_render_buffer = {}
|
|
83
|
+
|
|
84
|
+
# Sets up the locals hash and some instance variables within the ActionView,
|
|
85
|
+
# and then calls ActionView#render on the supplied Hash.
|
|
86
|
+
def action_view_render(hash = {})
|
|
87
|
+
# 110509: I'm buffering the results of action_view#render within this hash
|
|
88
|
+
# so that #render doesn't have to be called again in the future, ie for tests
|
|
89
|
+
# that run after all of the view paths have been unloaded due to firing
|
|
90
|
+
# controller#after_filter's.
|
|
91
|
+
#
|
|
92
|
+
# TODO: See how this affects production mode. Is this hash ever released between
|
|
93
|
+
# requests??
|
|
94
|
+
@@widget_action_view_render_buffer[self] ||= (
|
|
95
|
+
# HACK HACK HACK, FIXME:
|
|
96
|
+
# Apparently, the commented line below is the cause of some huge delays
|
|
97
|
+
# seemingly due to recursion. These delays show up only when an error is
|
|
98
|
+
# encountered, which makes the issue even harder to understand.
|
|
99
|
+
#
|
|
100
|
+
# I'm not sure, but I think that the reference that RTML elements maintain
|
|
101
|
+
# to action_view is causing recursion issues when errors are raised. Perhaps
|
|
102
|
+
# ActiveSupport is calling #inspect, which would kick off a huge set of
|
|
103
|
+
# recursive calls to convert both elements to Strings all the way up the
|
|
104
|
+
# element chain. This would also explain why the delay seems to last much
|
|
105
|
+
# longer as elements are nested within each other.
|
|
106
|
+
#
|
|
107
|
+
# The solution seems to be to replace @current with the method definition
|
|
108
|
+
# below, because method definitions aren't included in #inspect.
|
|
109
|
+
#
|
|
110
|
+
# action_view.instance_variable_set("@current", self)
|
|
111
|
+
#
|
|
112
|
+
$current_rtml_element = self
|
|
113
|
+
def action_view.current_rtml_element() $current_rtml_element end
|
|
114
|
+
#copy_ivars_to action_view
|
|
115
|
+
action_view.render(hash)
|
|
116
|
+
)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Adds the specified Widget to this object.
|
|
120
|
+
# Other parameters will be passed to the Widget initializer, and are optional.
|
|
121
|
+
def add_widget(klass, *args, &blk)
|
|
122
|
+
klass = klass.class if klass.kind_of? Rtml::Widgets::Widget
|
|
123
|
+
k = klass.new(self, *args, &blk);
|
|
124
|
+
widgets << k
|
|
125
|
+
document.modify!
|
|
126
|
+
k
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# Returns the TML document object, no matter how deeply this
|
|
130
|
+
# Widget is nested into the document.
|
|
131
|
+
def document
|
|
132
|
+
root_element
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Returns a list of all ancestors of this Widget, beginning with its
|
|
136
|
+
# immediate parent and ending with its most distant grandparent.
|
|
137
|
+
def ancestors
|
|
138
|
+
((parent.nil?) ? [] : (parent.ancestors + [ parent ]))
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Returns an array of Widgets that have been added to this object.
|
|
142
|
+
def widgets
|
|
143
|
+
return @widgets if @widgets
|
|
144
|
+
@widgets = []
|
|
145
|
+
protected_instance_variables << "@widgets"
|
|
146
|
+
@widgets
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Concatenates the supplied String to the Widgets. For example,
|
|
150
|
+
# if the following code were run:
|
|
151
|
+
# add_widget(widget1, . . .)
|
|
152
|
+
# concat "Hello World"
|
|
153
|
+
# add_widget(widget2, . . .)
|
|
154
|
+
# Then the output would be:
|
|
155
|
+
# [widget1_output] Hello World [widget2_output]
|
|
156
|
+
def concat(str)
|
|
157
|
+
str = content_of_view str
|
|
158
|
+
widgets << str
|
|
159
|
+
str
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# Iterates through each Widget that has been added to this object,
|
|
163
|
+
# rendering them and returning the combined generated
|
|
164
|
+
def render_widget_tml
|
|
165
|
+
event_handler.process_event_handling_for(self)
|
|
166
|
+
ret = ""
|
|
167
|
+
cnt = ''
|
|
168
|
+
widgets.each do |t|
|
|
169
|
+
ret.concat "".ljust(1, "\n") if ret.length > 0 && cnt.count("\n") > 2
|
|
170
|
+
ret.concat(cnt = t.to_s)
|
|
171
|
+
ret.concat "\n"
|
|
172
|
+
end
|
|
173
|
+
ret
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
alias tml_for_widgets render_widget_tml
|
|
177
|
+
|
|
178
|
+
# Returns true if the specified name is an accessor alias of this Widget.
|
|
179
|
+
def is_accessor?(name); Rtml::Widgets::Widget.is_accessor? name, self.class.name; end
|
|
180
|
+
end
|
|
181
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Class methods for all objects which are to support Widgets
|
|
2
|
+
module Rtml::Helpers::CoreHelpers::WidgetSupport::ClassMethods
|
|
3
|
+
# Returns true if this method is allowed to be used as an access point for a
|
|
4
|
+
# Widget. By default, this is always true unless the method is already defined.
|
|
5
|
+
def access_point_valid?(name)
|
|
6
|
+
v = eval("not defined? #{name}", binding, __FILE__, __LINE__)
|
|
7
|
+
return false unless v
|
|
8
|
+
if self.superclass.respond_to? :access_point_valid?
|
|
9
|
+
self.superclass.access_point_valid? name
|
|
10
|
+
else
|
|
11
|
+
true
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# If true, will suppress the raising of errors when a Widget defines an accessor that is not allowed.
|
|
16
|
+
# (In that event, the accessor will still not be created -- it will just fail silently and continue defining
|
|
17
|
+
# the rest of the accessors.) Default implementation always returns false (raises errors).
|
|
18
|
+
#
|
|
19
|
+
# See also silence_accessor_failures!
|
|
20
|
+
def silence_accessor_failures?; false; end
|
|
21
|
+
|
|
22
|
+
# Enable silent failures when a Widget defines an accessor that cannot be used. By default, an error is
|
|
23
|
+
# raised in this event; calling this method will suppress those errors, and continue with the next accessor
|
|
24
|
+
# declaration.
|
|
25
|
+
def silence_accessor_failures!
|
|
26
|
+
instance_eval { def silence_accessor_failures?; true; end }
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Rtml::Helpers::CoreHelpers
|
|
2
|
+
module YieldHelpers
|
|
3
|
+
# Begins processing the block to build a TML page
|
|
4
|
+
def process_block(&blk)
|
|
5
|
+
yield_with_optional_param self, &blk if block_given?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# If the block accepts a parameter, yields and passes param to it.
|
|
9
|
+
# If not, yields to the block in the context of self.
|
|
10
|
+
def yield_with_optional_param(param, &blk)
|
|
11
|
+
# arity == -1 is known bug 574; should be 0
|
|
12
|
+
((blk.arity == 0 or blk.arity == -1) ? self.instance_eval(&blk) : (blk.call(param)))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Yields to the given block with only the first element of the given array.
|
|
16
|
+
def with_first_argument(*a, &blk)
|
|
17
|
+
if a.length > 0
|
|
18
|
+
blk.call(a[0])
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Yields to the given block with only the Nth element of the given array (or :first, or :last)
|
|
23
|
+
def with_argument(n, *a, &blk)
|
|
24
|
+
if a.length > 0
|
|
25
|
+
case n
|
|
26
|
+
when :first then blk.call(a.first)
|
|
27
|
+
when :last then blk.call(a.last)
|
|
28
|
+
else blk.call(a[n])
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Rtml::Helpers::ProxyHelpers::FeatureHelpers
|
|
2
|
+
def features
|
|
3
|
+
controller.features
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def add_features!
|
|
7
|
+
controller.add_features
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def feature_menu(*items)
|
|
11
|
+
controller.feature_config.to_menu(self, *items)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def feature_events(*items)
|
|
15
|
+
controller.feature_config.events(self, *items)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
module Rtml::Helpers::RenderHelper
|
|
2
|
+
def h(a,&b) #:nodoc:
|
|
3
|
+
CGI::escapeHTML(a.to_s,&b)
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
# Overrides the default #render methods to provide the following additional functionality:
|
|
7
|
+
#
|
|
8
|
+
# 1. Render override to support :rtml as a parameter. This is similar to render :action,
|
|
9
|
+
# except that it will include the necessary TML helpers and view paths. Note that it is
|
|
10
|
+
# still run within the context of THIS controller, just like :action.
|
|
11
|
+
#
|
|
12
|
+
# 2. Allows for #render to be called with a :super argument, to render a parent controller's view
|
|
13
|
+
# instead of the current.
|
|
14
|
+
#
|
|
15
|
+
# 3. Allows a :partial or :file to be located in views/[controller]/[action]/[screen_id].rtml.erb
|
|
16
|
+
# and checks for it there if no file of the same name is already located in
|
|
17
|
+
# views/[controller]/[screen_id.rtml].erb
|
|
18
|
+
#
|
|
19
|
+
#
|
|
20
|
+
# Any other usage is passed to super.
|
|
21
|
+
#
|
|
22
|
+
# Example:
|
|
23
|
+
# def index
|
|
24
|
+
# # produce a clone of the TML from the #main action
|
|
25
|
+
# render :rtml => :main
|
|
26
|
+
#
|
|
27
|
+
# # render the default TML document.
|
|
28
|
+
# render :super
|
|
29
|
+
# end
|
|
30
|
+
#
|
|
31
|
+
def render(*a,&b)
|
|
32
|
+
if a[0] and a[0].kind_of? Hash and a[0][:rtml]
|
|
33
|
+
# render :rtml => :some_action_to_render
|
|
34
|
+
# updates the view paths to include the specified action, then executes it
|
|
35
|
+
ctrlr = ((self.kind_of? ActionController::Base) ? self : controller)
|
|
36
|
+
action = ctrlr.action_name
|
|
37
|
+
ctrlr.action_name = a[0].delete(:rtml)
|
|
38
|
+
ctrlr.send :add_instance_view_paths, ctrlr.action_name
|
|
39
|
+
ctrlr.send(ctrlr.action_name)
|
|
40
|
+
ctrlr.action_name = action
|
|
41
|
+
else
|
|
42
|
+
if a.length == 1 and a[0] == :super
|
|
43
|
+
# render :super
|
|
44
|
+
# renders the view from the parent controller
|
|
45
|
+
c = self.controller
|
|
46
|
+
if c.class.superclass.method_defined? :controller_path
|
|
47
|
+
tmp = c.send :default_template_name, params[:action], c.response.template.template_format, c.class.superclass
|
|
48
|
+
return super(:file => tmp)
|
|
49
|
+
end
|
|
50
|
+
else
|
|
51
|
+
# Partials are handled in extensions/action_view/base
|
|
52
|
+
begin
|
|
53
|
+
super
|
|
54
|
+
rescue ActionView::MissingTemplate => mt
|
|
55
|
+
# To handle controllers within modules: [/rtml/beryl]/[index]/[main_menu]
|
|
56
|
+
if a[0].kind_of? Hash and a[0].keys[0] == :file
|
|
57
|
+
hash = a[0]
|
|
58
|
+
unless hash[:file].include? '/' or not ['rtml','tml'].include? self.controller.response.template.template_format.to_s
|
|
59
|
+
hash[:file] = "#{self.controller.class.controller_path}/#{self.controller.action_name}/#{hash[:file]}"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
begin
|
|
63
|
+
super
|
|
64
|
+
rescue ActionView::MissingTemplate
|
|
65
|
+
raise mt
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Rtml::Helpers::TerminalHelpers
|
|
2
|
+
# Returns true if this terminal has a graphic, color display and
|
|
3
|
+
# a larger screen size capable of showing graphics and all that
|
|
4
|
+
# pretty stuff.
|
|
5
|
+
#
|
|
6
|
+
# Useful for determining which layout to render.
|
|
7
|
+
def color_display?
|
|
8
|
+
['8550', '6780', '6580'].include? state[:model].to_s
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def graphical_display?
|
|
12
|
+
logger.warn "Warning: #graphical_display? has been renamed to #color_display? and will be removed!"
|
|
13
|
+
color_display?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Points to the embedded TML application on a terminal. Easier to type than
|
|
17
|
+
# all that "emb://" stuff.
|
|
18
|
+
def embedded_app
|
|
19
|
+
"emb://embedded.tml"
|
|
20
|
+
end
|
|
21
|
+
end
|
data/app_generators/rtml/templates/rtml/lib/rtml/helpers/test_helpers/tml_validation_assertions.rb
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module Rtml::Helpers::TestHelpers::TmlValidationAssertions
|
|
2
|
+
def assert_valid_tml(tml = nil)
|
|
3
|
+
if tml.nil?
|
|
4
|
+
assert_response :success
|
|
5
|
+
tml = self.instance_variable_get("@response").body if self.instance_variable_get("@response")
|
|
6
|
+
raise "TML content expected" if tml.nil?
|
|
7
|
+
end
|
|
8
|
+
Rtml::Validation::TmlValidator.new(self, tml)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Rtml::Helpers::TestHelpers::VariableAssertions
|
|
2
|
+
def assert_all_variables_declared(doc = nil)
|
|
3
|
+
@parser ||= Rtml::Validation::PredefinedVariableRuleParser.new("predefined_tml_variables")
|
|
4
|
+
doc ||= self.document
|
|
5
|
+
raise "TMLDocument object expected" if doc.nil?
|
|
6
|
+
|
|
7
|
+
### Removed the warnings because they'll come up if a variable is used on a different
|
|
8
|
+
# page than it is declared on. This is a fairly frequent occurrence. When/if those related
|
|
9
|
+
# pages can be checked in the same pass, we can uncomment the warnings code.
|
|
10
|
+
#
|
|
11
|
+
#vars = doc.vardecs.collect { |v| v.name } - doc.variables_used
|
|
12
|
+
#unless vars.empty?
|
|
13
|
+
# vd = "\n\t- #{vars.join("\n\t- ")}"
|
|
14
|
+
# i = (doc.controller ? "\n in #{doc.controller.class}##{doc.params[:action]}" : "")
|
|
15
|
+
# puts "\nwarning: unused variable declarations#{i}:#{vd}"
|
|
16
|
+
#end
|
|
17
|
+
|
|
18
|
+
vars = doc.variables_used - doc.vardecs.collect { |v| v.name }
|
|
19
|
+
unless vars.empty?
|
|
20
|
+
vars.each do |v|
|
|
21
|
+
predefined = @parser.to_a.select { |i| i[:name] == v }
|
|
22
|
+
assert !predefined.empty?, "Variable #{v} not declared and not predefined"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
# rescue Test::Unit::AssertionFailedError ### was going to do something here. but never mind.
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module Rtml::Helpers::ViewHelpers
|
|
2
|
+
# So I haven't had time to finish writing, much less documenting, the FormHelpers module.
|
|
3
|
+
# Basically, it works the same way as Rails-based FormHelpers. Some of the methods are
|
|
4
|
+
# only going to be available to TMLDocument, Screen, Display and/or your Widgets, and
|
|
5
|
+
# some are only going to be available to the ActionView itself; I'll split the two types
|
|
6
|
+
# up and document them before long, I promise.
|
|
7
|
+
module FormHelpers
|
|
8
|
+
def variables_for(model, opt = {})
|
|
9
|
+
options_for(model).each do |options|
|
|
10
|
+
unless opt[:except] and (opt[:except].to_s == options[:column].name.to_s or (opt.kind_of? Array and opt[:except].collect { |i| i.to_s }.include? options[:column].name.to_s))
|
|
11
|
+
variable({ :name => options[:name], :type => options[:type], :value => options[:value], :format => options[:format] })
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def get_all_variables
|
|
17
|
+
document.variables.each do |var|
|
|
18
|
+
r.concat "<getvar name='#{var.properties[:name]}' />\n"
|
|
19
|
+
end
|
|
20
|
+
concat r
|
|
21
|
+
nil
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def get_variables(*var_names)
|
|
25
|
+
var_names.each do |name|
|
|
26
|
+
if name.kind_of? Array
|
|
27
|
+
get_variables *name
|
|
28
|
+
else
|
|
29
|
+
get_variable :name => name
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def variable_for(model, name)
|
|
35
|
+
options_for(model).each do |options|
|
|
36
|
+
get_variable :name => options[:name] if options[:column].name == (name ? name.name : nil)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def set_variable_for(model, name, opt = {})
|
|
41
|
+
options_for(model).each do |options|
|
|
42
|
+
set_variable(options[:name], opt) if options[:column].name.to_s == (name ? name.name.to_s : "")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def populate_from(model, opt = {})
|
|
47
|
+
options_for(model).each do |options|
|
|
48
|
+
unless opt[:except] and (opt[:except].to_s == options[:column].name.to_s or (opt.kind_of? Array and opt[:except].collect { |i| i.to_s }.include? options[:column].name.to_s))
|
|
49
|
+
set_variable options[:name], :to => (options[:value])
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def variables_for_model(model)
|
|
55
|
+
options_for(model).each do |options|
|
|
56
|
+
get_variable :name => options[:name]
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def rails_to_tml(type)
|
|
61
|
+
case type
|
|
62
|
+
when :string, :text then :string
|
|
63
|
+
when :integer then :integer
|
|
64
|
+
when :date, :time, :datetime then :date
|
|
65
|
+
when :boolean then :opaque
|
|
66
|
+
else raise "Cannot convert type #{type.inspect} to a valid TML type"
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|