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,79 @@
|
|
|
1
|
+
module Rtml::Core::TMLDocument::ScreenMethods
|
|
2
|
+
# Declares a new screen to be embedded within this document. The screen ID must
|
|
3
|
+
# be supplied, as well as a block to configure its contents.
|
|
4
|
+
# *other takes the place of options when the :next key is omitted. Example:
|
|
5
|
+
#
|
|
6
|
+
# screen :first, :second, :timeout => 2
|
|
7
|
+
#
|
|
8
|
+
# is equivalent to:
|
|
9
|
+
#
|
|
10
|
+
# screen :first, :next => :second, :timeout => 2
|
|
11
|
+
#
|
|
12
|
+
def screen(id, options = {}, *other, &blk)
|
|
13
|
+
scr = nil
|
|
14
|
+
index = -1
|
|
15
|
+
|
|
16
|
+
@screens.each_with_index { |s,i| index = i if s.id.to_s == id.to_s } if @screens
|
|
17
|
+
|
|
18
|
+
if index == -1 or block_given? then scr = Rtml::Core::Screen.new(action_view, id, self, &blk)
|
|
19
|
+
else scr = @screens[index]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
scr.layout self.layout unless self.layout.nil? or not scr.layout.nil?
|
|
23
|
+
|
|
24
|
+
if options.kind_of? String or options.kind_of? Symbol
|
|
25
|
+
options = other.extract_options!.merge(:next_screen => options)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
if options.kind_of? Hash then options.each { |n,v| scr.send(n, v) }
|
|
29
|
+
else raise ArgumentError.new("Invalid type for options in screen #{id}: Expected String, Symbol or Hash")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
if index == -1 then @screens << scr if @screens
|
|
33
|
+
else
|
|
34
|
+
scr.next_screen(@screens[index].next_screen) unless scr.next_screen
|
|
35
|
+
@screens[index] = scr
|
|
36
|
+
end
|
|
37
|
+
scr
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Returns the screen with the specified ID, or nil if it cannot be found.
|
|
41
|
+
def find(id)
|
|
42
|
+
screens.find(id)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Deletes and returns the screen with the specified ID from the list of screens.
|
|
46
|
+
# Alternatively, an actual Screen object may be supplied.
|
|
47
|
+
def remove_screen(id)
|
|
48
|
+
ret = nil
|
|
49
|
+
if id.kind_of? Rtml::Core::Screen
|
|
50
|
+
screens.delete((ret = id))
|
|
51
|
+
else
|
|
52
|
+
screens.delete((ret = screens.find(id)))
|
|
53
|
+
end
|
|
54
|
+
ret
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
alias delete_screen remove_screen
|
|
58
|
+
|
|
59
|
+
# Declares multiple screens to be embedded within this document. Takes an
|
|
60
|
+
# array of screen IDs, or an array of Hashes, in which case the keys are screen IDs
|
|
61
|
+
# and the values are either the "next" screen, or a set of options to be passed directly
|
|
62
|
+
# to that Screen's initializer. Also expects a block, which has an optional parameter
|
|
63
|
+
# (the screen itself). If the optional parameter is omitted, the screen's context is
|
|
64
|
+
# transferred to the supplied block.
|
|
65
|
+
#
|
|
66
|
+
# Alternatively, if no parameters are supplied, and a block is given, then a
|
|
67
|
+
# ScreenBuilderWidget will be constructed and the block will be passed to it.
|
|
68
|
+
def screens(list_of_screens = nil, &block)
|
|
69
|
+
return Rtml::Widgets::ScreenBuilderWidget.new(self, &block) if list_of_screens.nil? and block_given?
|
|
70
|
+
return @screens if list_of_screens.nil?
|
|
71
|
+
list_of_screens.each do |scrid|
|
|
72
|
+
id, options = ((scrid.is_a? Array) ? [scrid[0],scrid[1]] : [scrid,{}])
|
|
73
|
+
options = { :next => options } unless options.kind_of? Hash
|
|
74
|
+
if block.arity <= 0 then screen id, options do yield end
|
|
75
|
+
else screen id, options do |scr| yield scr end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
module Rtml::Core::TMLDocument::VariableMethods
|
|
2
|
+
def self.included(base) #:nodoc:
|
|
3
|
+
base.send :attr_reader, :variables
|
|
4
|
+
base.send :attr_reader, :vardecs
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Returns an array of strings, containing the name of each variable used in this document
|
|
8
|
+
def variables_used
|
|
9
|
+
used = []
|
|
10
|
+
screens.each do |scr|
|
|
11
|
+
used.concat scr.variables_used
|
|
12
|
+
# variables.select { |var| not used.include? var }.each do |var|
|
|
13
|
+
# used << var if scr.uses_variable? var
|
|
14
|
+
# end
|
|
15
|
+
end
|
|
16
|
+
used
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.variable_declarators(type, *method_names) #:nodoc:
|
|
20
|
+
method_names.each do |method_name|
|
|
21
|
+
module_eval <<-end_code
|
|
22
|
+
def #{method_name}(*var_names)
|
|
23
|
+
options = var_names.extract_options!
|
|
24
|
+
# If hash notation was used (:transid => -1, :currency_code => 'USD'),
|
|
25
|
+
# then extract_options! may have mistakenly placed it within the variable options.
|
|
26
|
+
# We need to manually put them back into the var_names array if that's the case.
|
|
27
|
+
var_names.concat((options.keys - Rtml::Core::Variable::VALID_OPTIONS).collect do |a|
|
|
28
|
+
{ a => options.delete(a) }
|
|
29
|
+
end)
|
|
30
|
+
for var_name in var_names
|
|
31
|
+
if var_name.kind_of? Hash
|
|
32
|
+
var_hash = var_name
|
|
33
|
+
var_hash.each do |var_name,value|
|
|
34
|
+
var_options = (value.kind_of?(Hash) ? value : { :value => value })
|
|
35
|
+
variable variable_options(var_name, var_options).merge(:type => #{type.inspect})
|
|
36
|
+
end
|
|
37
|
+
elsif var_name.kind_of? Array
|
|
38
|
+
#{method_name} *var_name
|
|
39
|
+
else
|
|
40
|
+
variable variable_options(var_name, options).merge(:type => #{type.inspect})
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end_code
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Declares a new variable to be used with this TML document.
|
|
49
|
+
def declare_variable(var)
|
|
50
|
+
register_variable var
|
|
51
|
+
@vardecs << var unless @vardecs.include? var
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Registers a variable for use with this document, even if it has not been declared.
|
|
55
|
+
# This is important for built-in TML variables.
|
|
56
|
+
def register_variable(var)
|
|
57
|
+
@variables << var unless @variables.include? var
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
variable_declarators :integer, :integer, :integers
|
|
61
|
+
variable_declarators :string, :string, :strings
|
|
62
|
+
variable_declarators :opaque, :opaque, :opaques
|
|
63
|
+
variable_declarators :date, :date, :dates
|
|
64
|
+
|
|
65
|
+
def variable_options(name, options = {}) #:nodoc:
|
|
66
|
+
options.merge(
|
|
67
|
+
case name
|
|
68
|
+
when Hash then { :name => name.keys[0], :value => name.values[0] }
|
|
69
|
+
else { :name => name }
|
|
70
|
+
end
|
|
71
|
+
)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Declares an arbitrary variable to be used in this terminal application. Note that you must
|
|
75
|
+
# supply the :type option, which is one of :integer, :string, :opaque or :date. See the
|
|
76
|
+
# Rtml::Helpers::Variable class for more information on other options. Calls declare_variable.
|
|
77
|
+
def variable(options)
|
|
78
|
+
#options[:name] = qualified_variable_name options[:name]
|
|
79
|
+
var = Rtml::Core::Variable.new(action_view, options, self)
|
|
80
|
+
declare_variable var if self.respond_to? :declare_variable
|
|
81
|
+
var
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
module Rtml
|
|
2
|
+
module Core
|
|
3
|
+
#Defines a TML variable declaration (vardcl).
|
|
4
|
+
#User should not have to instantiate this object directly.
|
|
5
|
+
#See TMLDocument for details.
|
|
6
|
+
class Variable < Element
|
|
7
|
+
include Rtml::Common::Renderable
|
|
8
|
+
VALID_OPTIONS = [ :name, :type, :volatile, :value, :format, :perms ]
|
|
9
|
+
|
|
10
|
+
#Construct a new Variable using the specified ActionView and options hash.
|
|
11
|
+
#options[:type] defaults to :string if not found, and must be one of
|
|
12
|
+
# [:string, :integer, :date, :opaque]
|
|
13
|
+
#Other options include :name, :volatile, :value, :format, and :perms, and
|
|
14
|
+
#correlate to the TML definitions for these parameters.
|
|
15
|
+
def initialize(view = nil, options = { }, parent = nil)
|
|
16
|
+
raise "Must specify variable name" if options[:name].nil?
|
|
17
|
+
unless (o = (options.keys - VALID_OPTIONS)).empty?
|
|
18
|
+
raise "Invalid options specified for variable #{options[:name]}: #{o.join("; ")}"
|
|
19
|
+
end
|
|
20
|
+
options[:name] = options[:name].to_s if options[:name].kind_of? Symbol
|
|
21
|
+
options[:type] ||= :string
|
|
22
|
+
if options[:volatile].nil? or (options[:volatile] and options[:volatile].downcase != 'no')
|
|
23
|
+
options[:volatile] = 'yes'
|
|
24
|
+
else
|
|
25
|
+
options[:volatile] = 'no'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
raise "Variable type must be one of :string, :integer, :date, :opaque" unless [:string,:integer,:date,:opaque].include? options[:type]
|
|
29
|
+
super view, options, VALID_OPTIONS, parent
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
VALID_OPTIONS.each do |method|
|
|
33
|
+
define_method method do
|
|
34
|
+
properties[method]
|
|
35
|
+
end
|
|
36
|
+
define_method "#{method}=" do |a|
|
|
37
|
+
properties[method] = a
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Constructs the TML declaration for this variable.
|
|
42
|
+
def to_tml; declaration; end
|
|
43
|
+
# Constructs the TML declaration for this variable.
|
|
44
|
+
def declaration; "<vardcl " + properties.to_s + " />"; end
|
|
45
|
+
|
|
46
|
+
# Constructs a TML getvar directive
|
|
47
|
+
def getvar(fmt = nil)
|
|
48
|
+
r = "<getvar name='#{name}' "
|
|
49
|
+
r.concat "format='#{fmt}'" if fmt
|
|
50
|
+
r.concat "/>"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# Constructs a TML variable assignment with the specified value.
|
|
54
|
+
# Examples:
|
|
55
|
+
# setvar [ "tmlvar:i", "+", "1" ]
|
|
56
|
+
# setvar "tmlvar:i"
|
|
57
|
+
# setvar :true
|
|
58
|
+
# setvar "tmlvar:i + 1"
|
|
59
|
+
# setvar :to => [ "tmlvar:i", "+", "1" ]
|
|
60
|
+
# setvar :to => "tmlvar:i + 1"
|
|
61
|
+
# setvar :to => true
|
|
62
|
+
# setvar :value => [ "tmlvar:i", "+", "1" ]
|
|
63
|
+
# setvar :value => "tmlvar:i + 1"
|
|
64
|
+
# setvar :value => "tmlvar:i"
|
|
65
|
+
def setvar(a, options = {})
|
|
66
|
+
valid_operators = [ '+', '-', 'plus', 'minus', 'item']
|
|
67
|
+
tml = "<setvar name='#{name}' "
|
|
68
|
+
lo = ''
|
|
69
|
+
ro = op = nil
|
|
70
|
+
case a.class.to_s
|
|
71
|
+
when 'Array'
|
|
72
|
+
raise "Variable#setvar(Array) should be given exactly 3 elements in [lo,op,ro] order." unless a.length == 3
|
|
73
|
+
(lo, op, ro) = a
|
|
74
|
+
when 'Hash'
|
|
75
|
+
a.merge! options
|
|
76
|
+
los = ros = ops = nil
|
|
77
|
+
lo = (a[:to] or a[:value])
|
|
78
|
+
return setvar(lo, a.merge(:to => nil, :value => nil)) if lo
|
|
79
|
+
a.keys.each { |key| (los = key) and break if [ :lo, :left, :left_operand, :left_op, :lop, :lft ].include? key }
|
|
80
|
+
a.keys.each { |key| (ros = key) and break if [ :ro, :right,:right_operand,:right_op,:rop, :rgt ].include? key }
|
|
81
|
+
a.keys.each { |key| (ops = key) and break if [ :op, :operation, :operator, :oper ].include? key }
|
|
82
|
+
raise "Variable#setvar(Hash) must include a :left_operand (:lo, :left, :left_opeand, :left_op, :lop, :rgt)" unless los
|
|
83
|
+
lo = a[los]
|
|
84
|
+
ro = a[ros]
|
|
85
|
+
op = a[ops]
|
|
86
|
+
options[:format] = (a[:format] or a[:fmt]) unless options[:format]
|
|
87
|
+
when 'String', 'Fixnum', 'Symbol'
|
|
88
|
+
ary = a.to_s.split(/[\s\n\t]+/m)
|
|
89
|
+
# ary = %W(#{a})
|
|
90
|
+
return setvar(ary) if ary.length == 3 and valid_operators.include? ary[1]
|
|
91
|
+
lo = a.to_s
|
|
92
|
+
else
|
|
93
|
+
raise "Variable#setvar(#{a.class}): Could not determine how to handle value of type #{a.class}"
|
|
94
|
+
end
|
|
95
|
+
# if not (op and ro) and (op or ro)
|
|
96
|
+
# raise "Variable#setvar: If either :op or :ro is specified, the other must also be supplied."
|
|
97
|
+
# end
|
|
98
|
+
|
|
99
|
+
case op.to_s
|
|
100
|
+
when '+','plus' then op = 'plus'
|
|
101
|
+
when '-','minus' then op = 'minus'
|
|
102
|
+
# else raise "Variable#setvar: Invalid operation '#{op}'. Specify plus or minus; shorthand '+' and '-' are allowed"
|
|
103
|
+
end unless op.nil?
|
|
104
|
+
|
|
105
|
+
case lo.to_s
|
|
106
|
+
when 'true' then lo = 'yes'
|
|
107
|
+
when 'false' then lo = 'no'
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
case ro.to_s
|
|
111
|
+
when 'true' then ro = 'yes'
|
|
112
|
+
when 'false' then ro = 'no'
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
tml.concat "lo=#{lo.to_s.inspect} "
|
|
116
|
+
tml.concat "op=#{op.to_s.inspect} " if op
|
|
117
|
+
tml.concat "ro=#{ro.to_s.inspect} " if ro
|
|
118
|
+
tml.concat "format=#{options[:format].to_s.inspect}" if options[:format]
|
|
119
|
+
tml.concat "/>"
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
module Rtml
|
|
2
|
+
module Debug
|
|
3
|
+
# BrowserEmulator is a glorified Hash that stores faked request headers, similar
|
|
4
|
+
# in structure to the object returned by ActionController::Base#headers. The reason
|
|
5
|
+
# for this is so that a standard browser (Internet Explorer, Firefox, etc.) can be
|
|
6
|
+
# made to look like OpenEstate/Incendo terminal browsers which download TML. This
|
|
7
|
+
# creates a "state" object so that your RTML doesn't croak when it is referenced
|
|
8
|
+
# from within your browser.
|
|
9
|
+
#
|
|
10
|
+
# The reason this is useful is because it is often much easier to debug TML when you
|
|
11
|
+
# can simply view its XML structure in your browser -- and, of course, it makes
|
|
12
|
+
# Rails' error reporting much easier to follow, too.
|
|
13
|
+
class BrowserEmulator < HashWithIndifferentAccess
|
|
14
|
+
# Initialize this emulator from the actual headers sent by the browser.
|
|
15
|
+
def initialize(headers)
|
|
16
|
+
@defaults = { :debugger => true,
|
|
17
|
+
:datetime_start => Date.parse('2006/01/01'),
|
|
18
|
+
:os => '03.27',
|
|
19
|
+
:itid => '111111111',
|
|
20
|
+
:itsn => headers['HTTP_USER_AGENT'],
|
|
21
|
+
:itpn => 'I8550_BROWSER',
|
|
22
|
+
:model => 8550,
|
|
23
|
+
:datetime => Time.now,
|
|
24
|
+
:part_number => 'I8550_BROWSER' }
|
|
25
|
+
|
|
26
|
+
headers = headers.dup
|
|
27
|
+
# As of Rails 2.3.2 ActionController::Request inherits from Rack::Request, so all of the
|
|
28
|
+
# Rack stuff has to be removed by hand.
|
|
29
|
+
%W(action_controller. rack. HTTP_ REQUEST_ SERVER_
|
|
30
|
+
SCRIPT_ PATH_ REMOTE_ QUERY_ GATEWAY_).each do |i|
|
|
31
|
+
headers.keys.select { |j| j =~ /^#{Regexp.escape i}/ }.each { |key| headers.delete key }
|
|
32
|
+
end
|
|
33
|
+
super(headers)
|
|
34
|
+
self.defaults = @defaults
|
|
35
|
+
#@defaults.keys.each { |key| self[key.to_s.upcase] ||= self[key] }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def [](a) #:nodoc:
|
|
39
|
+
return super(a.to_s.downcase) if a.kind_of? String or a.kind_of? Symbol
|
|
40
|
+
super
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def []=(a, b) #:nodoc:
|
|
44
|
+
return super(a.to_s.downcase, b) if a.kind_of? String or a.kind_of? Symbol
|
|
45
|
+
super
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Assigns default values to this object. If a value already exists for a given key,
|
|
49
|
+
# and it is not an empty string, then that key is ignored.
|
|
50
|
+
def defaults=(hash)
|
|
51
|
+
hash.each do |key,val|
|
|
52
|
+
# this includes empty strings, in the case of incomplete query strings
|
|
53
|
+
self[key] = val if self[key].blank?
|
|
54
|
+
end
|
|
55
|
+
self
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class Rtml::Debug::RtmlCoreUnitTest < Rtml::Debug::RtmlControllerTestCase
|
|
2
|
+
def setup
|
|
3
|
+
@controller = Rtml::RtmlAppController.new
|
|
4
|
+
get :get_terminal_info, :format => :rtml
|
|
5
|
+
document.reset!
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def teardown
|
|
9
|
+
assert_valid_tml(document.to_tml) if document
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
module Rtml::Delegation
|
|
2
|
+
# controller methods
|
|
3
|
+
delegate :feature_config, :request, :response, :params, :state, :logger, :menu_item, :render, :to => :controller
|
|
4
|
+
|
|
5
|
+
# view methods
|
|
6
|
+
delegate :link_to, :link_to_if, :link_to_unless, :link_to_unless_current, :mail_to,
|
|
7
|
+
:url_for, :h, :to => :action_view
|
|
8
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module Rtml
|
|
2
|
+
# Helper module defining some constants to help with documentation generation
|
|
3
|
+
# when the user runs rake doc:plugins:rtml.
|
|
4
|
+
module Doc
|
|
5
|
+
AccessorList = [ :property, :accessor, :accessor_alias ]
|
|
6
|
+
AccessorText = {
|
|
7
|
+
:property => 'property',
|
|
8
|
+
:accessor => 'accessors',
|
|
9
|
+
:accessor_alias => 'access name'
|
|
10
|
+
}
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
module Rtml
|
|
2
|
+
# The lowest level of RTML. \Element is extended by most base objects, such as
|
|
3
|
+
# TMLDocument, Screen and Display, but is not used or extended by Widgets.
|
|
4
|
+
# The \Element class is essentially an object representation of a generic
|
|
5
|
+
# \TML \element. It includes properties like id and class.
|
|
6
|
+
class Element
|
|
7
|
+
include Rtml::Delegation
|
|
8
|
+
include Rtml::Common::Renderable
|
|
9
|
+
include Rtml::Helpers::ViewHelpers::FormHelpers
|
|
10
|
+
include Rtml::Helpers::CoreHelpers::WidgetSupport
|
|
11
|
+
include Rtml::Helpers::CoreHelpers::YieldHelpers
|
|
12
|
+
include Rtml::Helpers::CoreHelpers::EventHelpers
|
|
13
|
+
include Rtml::Helpers::CoreHelpers::ActionViewWrapper
|
|
14
|
+
include Rtml::Helpers::TerminalHelpers
|
|
15
|
+
|
|
16
|
+
attr_reader :event_handler
|
|
17
|
+
# A Hash containing the properties for this Element.
|
|
18
|
+
attr_reader :properties
|
|
19
|
+
# A unique numeric ID for this element
|
|
20
|
+
attr_reader :element_id
|
|
21
|
+
|
|
22
|
+
# A reference to this element's parent element, or nil if there is none.
|
|
23
|
+
attr_reader :parent
|
|
24
|
+
|
|
25
|
+
@@id_tracker = 0
|
|
26
|
+
|
|
27
|
+
def initialize(view = nil, props = { }, valids = nil, parent = nil)
|
|
28
|
+
@element_id = (@@id_tracker += 1)
|
|
29
|
+
props ||= {}
|
|
30
|
+
@event_handler = Events::EventHandler.new
|
|
31
|
+
check_valid_properties props, valids unless valids.class != Array or props.class != Hash
|
|
32
|
+
@parent = parent
|
|
33
|
+
@root_element = parent.root_element if parent.respond_to? :root_element
|
|
34
|
+
if root_element.class.name != 'Rtml::Core::TMLDocument'
|
|
35
|
+
raise "Assertion error: Expected root_element of #{self.class} to be TMLDocument (found #{root_element.class})"
|
|
36
|
+
end
|
|
37
|
+
document.modify! if document
|
|
38
|
+
@properties = HashWithIndifferentAccess.new
|
|
39
|
+
@properties.merge! props if props.class == Hash
|
|
40
|
+
protect_all_instance_variables!
|
|
41
|
+
wrap_view(view)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def protect_all_instance_variables!
|
|
45
|
+
instance_variables.each { |v| protected_instance_variables << v unless protected_instance_variables.include? v }
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def protected_instance_variables
|
|
49
|
+
@protected_instance_variables ||= ["@protected_instance_variables"]
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def inspect
|
|
53
|
+
x = "#<#{self.class.name} "
|
|
54
|
+
x.concat "#{@properties.to_s} " unless @properties.empty?
|
|
55
|
+
x.concat "widgets=#{widgets.inspect}" if self.respond_to? :widgets
|
|
56
|
+
x.concat ">"
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Returns the value of the requested property for this element.
|
|
60
|
+
def [](a); @properties[a]; end
|
|
61
|
+
|
|
62
|
+
# Sets the value of the specified property for this element.
|
|
63
|
+
def []=(a,b); @properties[a] = b; end
|
|
64
|
+
|
|
65
|
+
def root_element; @root_element || self; end
|
|
66
|
+
|
|
67
|
+
private
|
|
68
|
+
def check_valid_properties(properties, valids)
|
|
69
|
+
properties.each do |n,v|
|
|
70
|
+
raise "Invalid property: #{n}" unless valids.include? n
|
|
71
|
+
end
|
|
72
|
+
true
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|