herb 0.10.4 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +16 -6
- data/README.md +36 -119
- data/Rakefile +2 -11
- data/config/action_view_helpers/actioncable/action_cable_helper/action_cable_meta_tag.yml +12 -8
- data/config/action_view_helpers/actionpack/content_security_policy/content_security_policy?.yml +9 -6
- data/config/action_view_helpers/actionpack/content_security_policy/content_security_policy_nonce.yml +9 -6
- data/config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_path.yml +20 -12
- data/config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_url.yml +30 -18
- data/config/action_view_helpers/actionpack/request_forgery_protection/form_authenticity_token.yml +15 -9
- data/config/action_view_helpers/actionpack/request_forgery_protection/protect_against_forgery?.yml +9 -6
- data/config/action_view_helpers/actiontext/content_helper/render_action_text_content.yml +15 -9
- data/config/action_view_helpers/actiontext/content_helper/sanitize_action_text_content.yml +15 -9
- data/config/action_view_helpers/actiontext/tag_helper/rich_textarea_tag.yml +34 -22
- data/config/action_view_helpers/actionview/active_model_helper/error_message.yml +9 -6
- data/config/action_view_helpers/actionview/active_model_helper/error_wrapping.yml +9 -6
- data/config/action_view_helpers/actionview/active_model_helper/object.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/apply_stylesheet_media_default.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/audio_tag.yml +40 -27
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_discovery_link_tag.yml +37 -23
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_scripts.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_styles.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/favicon_link_tag.yml +32 -22
- data/config/action_view_helpers/actionview/asset_tag_helper/image_decoding.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/image_loading.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/image_tag.yml +67 -46
- data/config/action_view_helpers/actionview/asset_tag_helper/javascript_include_tag.yml +58 -39
- data/config/action_view_helpers/actionview/asset_tag_helper/picture_tag.yml +22 -14
- data/config/action_view_helpers/actionview/asset_tag_helper/preload_link_tag.yml +45 -30
- data/config/action_view_helpers/actionview/asset_tag_helper/preload_links_header.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/stylesheet_link_tag.yml +49 -30
- data/config/action_view_helpers/actionview/asset_tag_helper/video_tag.yml +53 -35
- data/config/action_view_helpers/actionview/asset_url_helper/asset_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/asset_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/audio_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/audio_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_extname.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_host.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_path.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/font_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/font_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/image_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/image_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/javascript_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/javascript_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/public_compute_asset_path.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/stylesheet_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/stylesheet_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/video_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/video_url.yml +16 -10
- data/config/action_view_helpers/actionview/atom_feed_helper/atom_feed.yml +52 -27
- data/config/action_view_helpers/actionview/cache_helper/cache.yml +25 -15
- data/config/action_view_helpers/actionview/cache_helper/cache_fragment_name.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/cache_if.yml +20 -12
- data/config/action_view_helpers/actionview/cache_helper/cache_unless.yml +20 -12
- data/config/action_view_helpers/actionview/cache_helper/caching_predicate.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/digest_path_from_template.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/fragment_for.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/fragment_name_with_digest.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/read_fragment_for.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/uncacheable.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/write_fragment_for.yml +9 -6
- data/config/action_view_helpers/actionview/capture_helper/capture.yml +9 -6
- data/config/action_view_helpers/actionview/capture_helper/content_for.yml +20 -12
- data/config/action_view_helpers/actionview/capture_helper/content_for_predicate.yml +15 -9
- data/config/action_view_helpers/actionview/capture_helper/provide.yml +15 -9
- data/config/action_view_helpers/actionview/capture_helper/with_output_buffer.yml +9 -6
- data/config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prepend_content_exfiltration_prevention.yml +9 -6
- data/config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prevent_content_exfiltration.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/action_name.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/assign_controller.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/controller.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/controller_name.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/controller_path.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/cookies.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/flash.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/headers.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/logger.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/params.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/request.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/request_forgery_protection_token.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/response.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/session.yml +9 -6
- data/config/action_view_helpers/actionview/csp_helper/csp_meta_tag.yml +18 -11
- data/config/action_view_helpers/actionview/csrf_helper/csrf_meta_tags.yml +16 -10
- data/config/action_view_helpers/actionview/date_helper/date_select.yml +85 -51
- data/config/action_view_helpers/actionview/date_helper/datetime_select.yml +65 -39
- data/config/action_view_helpers/actionview/date_helper/distance_of_time_in_words.yml +30 -18
- data/config/action_view_helpers/actionview/date_helper/relative_time_in_words.yml +35 -21
- data/config/action_view_helpers/actionview/date_helper/select_date.yml +50 -30
- data/config/action_view_helpers/actionview/date_helper/select_datetime.yml +65 -39
- data/config/action_view_helpers/actionview/date_helper/select_day.yml +40 -24
- data/config/action_view_helpers/actionview/date_helper/select_hour.yml +50 -30
- data/config/action_view_helpers/actionview/date_helper/select_minute.yml +40 -24
- data/config/action_view_helpers/actionview/date_helper/select_month.yml +60 -36
- data/config/action_view_helpers/actionview/date_helper/select_second.yml +35 -21
- data/config/action_view_helpers/actionview/date_helper/select_time.yml +55 -33
- data/config/action_view_helpers/actionview/date_helper/select_year.yml +45 -27
- data/config/action_view_helpers/actionview/date_helper/time_ago_in_words.yml +21 -13
- data/config/action_view_helpers/actionview/date_helper/time_select.yml +60 -36
- data/config/action_view_helpers/actionview/date_helper/time_tag.yml +32 -20
- data/config/action_view_helpers/actionview/debug_helper/debug.yml +15 -9
- data/config/action_view_helpers/actionview/form_builder/button.yml +60 -0
- data/config/action_view_helpers/actionview/form_builder/submit.yml +48 -0
- data/config/action_view_helpers/actionview/form_helper/apply_form_for_options.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/checkbox.yml +41 -25
- data/config/action_view_helpers/actionview/form_helper/color_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/date_field.yml +35 -21
- data/config/action_view_helpers/actionview/form_helper/datetime_field.yml +41 -25
- data/config/action_view_helpers/actionview/form_helper/email_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/emitted_hidden_id.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/fields.yml +37 -18
- data/config/action_view_helpers/actionview/form_helper/fields_for.yml +33 -15
- data/config/action_view_helpers/actionview/form_helper/file_field.yml +45 -27
- data/config/action_view_helpers/actionview/form_helper/form_for.yml +45 -24
- data/config/action_view_helpers/actionview/form_helper/form_with.yml +56 -30
- data/config/action_view_helpers/actionview/form_helper/form_with_generates_ids.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/form_with_generates_remote_forms.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/hidden_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/label.yml +52 -27
- data/config/action_view_helpers/actionview/form_helper/month_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/multipart.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/multiple_file_field_include_hidden.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/number_field.yml +45 -27
- data/config/action_view_helpers/actionview/form_helper/password_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/radio_button.yml +30 -18
- data/config/action_view_helpers/actionview/form_helper/range_field.yml +45 -27
- data/config/action_view_helpers/actionview/form_helper/search_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/telephone_field.yml +26 -16
- data/config/action_view_helpers/actionview/form_helper/text_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/textarea.yml +31 -19
- data/config/action_view_helpers/actionview/form_helper/time_field.yml +40 -24
- data/config/action_view_helpers/actionview/form_helper/url_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/week_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_options_helper/collection_checkboxes.yml +58 -31
- data/config/action_view_helpers/actionview/form_options_helper/collection_radio_buttons.yml +57 -30
- data/config/action_view_helpers/actionview/form_options_helper/collection_select.yml +65 -39
- data/config/action_view_helpers/actionview/form_options_helper/grouped_collection_select.yml +65 -39
- data/config/action_view_helpers/actionview/form_options_helper/grouped_options_for_select.yml +35 -21
- data/config/action_view_helpers/actionview/form_options_helper/option_groups_from_collection_for_select.yml +40 -24
- data/config/action_view_helpers/actionview/form_options_helper/options_for_select.yml +20 -12
- data/config/action_view_helpers/actionview/form_options_helper/options_from_collection_for_select.yml +30 -18
- data/config/action_view_helpers/actionview/form_options_helper/select.yml +60 -36
- data/config/action_view_helpers/actionview/form_options_helper/time_zone_options_for_select.yml +25 -15
- data/config/action_view_helpers/actionview/form_options_helper/time_zone_select.yml +50 -30
- data/config/action_view_helpers/actionview/form_options_helper/weekday_options_for_select.yml +30 -18
- data/config/action_view_helpers/actionview/form_options_helper/weekday_select.yml +30 -18
- data/config/action_view_helpers/actionview/form_tag_helper/button_tag.yml +39 -21
- data/config/action_view_helpers/actionview/form_tag_helper/checkbox_tag.yml +33 -21
- data/config/action_view_helpers/actionview/form_tag_helper/color_field_tag.yml +26 -17
- data/config/action_view_helpers/actionview/form_tag_helper/date_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/datetime_field_tag.yml +28 -18
- data/config/action_view_helpers/actionview/form_tag_helper/default_enforce_utf8.yml +9 -6
- data/config/action_view_helpers/actionview/form_tag_helper/email_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/embed_authenticity_token_in_remote_forms.yml +9 -6
- data/config/action_view_helpers/actionview/form_tag_helper/field_id.yml +30 -18
- data/config/action_view_helpers/actionview/form_tag_helper/field_name.yml +30 -18
- data/config/action_view_helpers/actionview/form_tag_helper/field_set_tag.yml +23 -15
- data/config/action_view_helpers/actionview/form_tag_helper/file_field_tag.yml +35 -22
- data/config/action_view_helpers/actionview/form_tag_helper/form_tag.yml +38 -24
- data/config/action_view_helpers/actionview/form_tag_helper/hidden_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/image_submit_tag.yml +31 -21
- data/config/action_view_helpers/actionview/form_tag_helper/label_tag.yml +33 -17
- data/config/action_view_helpers/actionview/form_tag_helper/month_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/number_field_tag.yml +47 -29
- data/config/action_view_helpers/actionview/form_tag_helper/password_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/radio_button_tag.yml +32 -20
- data/config/action_view_helpers/actionview/form_tag_helper/range_field_tag.yml +47 -29
- data/config/action_view_helpers/actionview/form_tag_helper/search_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/select_tag.yml +47 -29
- data/config/action_view_helpers/actionview/form_tag_helper/submit_tag.yml +33 -21
- data/config/action_view_helpers/actionview/form_tag_helper/telephone_field_tag.yml +28 -18
- data/config/action_view_helpers/actionview/form_tag_helper/text_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/textarea_tag.yml +31 -20
- data/config/action_view_helpers/actionview/form_tag_helper/time_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/url_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/utf8_enforcer_tag.yml +9 -6
- data/config/action_view_helpers/actionview/form_tag_helper/week_field_tag.yml +28 -18
- data/config/action_view_helpers/actionview/javascript_helper/escape_javascript.yml +16 -10
- data/config/action_view_helpers/actionview/javascript_helper/javascript_cdata_section.yml +9 -6
- data/config/action_view_helpers/actionview/javascript_helper/javascript_tag.yml +41 -27
- data/config/action_view_helpers/actionview/number_helper/number_to_currency.yml +29 -18
- data/config/action_view_helpers/actionview/number_helper/number_to_human.yml +25 -15
- data/config/action_view_helpers/actionview/number_helper/number_to_human_size.yml +20 -12
- data/config/action_view_helpers/actionview/number_helper/number_to_percentage.yml +20 -12
- data/config/action_view_helpers/actionview/number_helper/number_to_phone.yml +33 -20
- data/config/action_view_helpers/actionview/number_helper/number_with_delimiter.yml +21 -13
- data/config/action_view_helpers/actionview/number_helper/number_with_precision.yml +25 -15
- data/config/action_view_helpers/actionview/output_safety_helper/raw.yml +15 -9
- data/config/action_view_helpers/actionview/output_safety_helper/safe_join.yml +20 -12
- data/config/action_view_helpers/actionview/output_safety_helper/to_sentence.yml +24 -15
- data/config/action_view_helpers/actionview/record_identifier/dom_class.yml +20 -12
- data/config/action_view_helpers/actionview/record_identifier/dom_id.yml +20 -12
- data/config/action_view_helpers/actionview/record_identifier/dom_target.yml +15 -9
- data/config/action_view_helpers/actionview/record_identifier/model_name_from_record_or_class.yml +9 -6
- data/config/action_view_helpers/actionview/rendering_helper/render.yml +108 -22
- data/config/action_view_helpers/actionview/sanitize_helper/sanitize.yml +25 -15
- data/config/action_view_helpers/actionview/sanitize_helper/sanitize_css.yml +15 -9
- data/config/action_view_helpers/actionview/sanitize_helper/sanitizer_vendor.yml +9 -6
- data/config/action_view_helpers/actionview/sanitize_helper/strip_links.yml +15 -9
- data/config/action_view_helpers/actionview/sanitize_helper/strip_tags.yml +15 -9
- data/config/action_view_helpers/actionview/tag_helper/cdata_section.yml +15 -9
- data/config/action_view_helpers/actionview/tag_helper/content_tag.yml +59 -38
- data/config/action_view_helpers/actionview/tag_helper/escape_once.yml +15 -9
- data/config/action_view_helpers/actionview/tag_helper/tag.yml +54 -31
- data/config/action_view_helpers/actionview/tag_helper/token_list.yml +16 -10
- data/config/action_view_helpers/actionview/text_helper/concat.yml +15 -9
- data/config/action_view_helpers/actionview/text_helper/current_cycle.yml +15 -9
- data/config/action_view_helpers/actionview/text_helper/cycle.yml +23 -14
- data/config/action_view_helpers/actionview/text_helper/excerpt.yml +33 -20
- data/config/action_view_helpers/actionview/text_helper/highlight.yml +37 -18
- data/config/action_view_helpers/actionview/text_helper/pluralize.yml +30 -18
- data/config/action_view_helpers/actionview/text_helper/reset_cycle.yml +15 -9
- data/config/action_view_helpers/actionview/text_helper/safe_concat.yml +9 -6
- data/config/action_view_helpers/actionview/text_helper/simple_format.yml +33 -20
- data/config/action_view_helpers/actionview/text_helper/truncate.yml +38 -23
- data/config/action_view_helpers/actionview/text_helper/word_wrap.yml +25 -15
- data/config/action_view_helpers/actionview/translation_helper/debug_missing_translation.yml +9 -6
- data/config/action_view_helpers/actionview/translation_helper/localize.yml +26 -16
- data/config/action_view_helpers/actionview/translation_helper/translate.yml +31 -19
- data/config/action_view_helpers/actionview/url_helper/button_to.yml +57 -33
- data/config/action_view_helpers/actionview/url_helper/button_to_generates_button_tag.yml +9 -6
- data/config/action_view_helpers/actionview/url_helper/current_page?.yml +25 -15
- data/config/action_view_helpers/actionview/url_helper/link_to.yml +76 -53
- data/config/action_view_helpers/actionview/url_helper/link_to_if.yml +54 -20
- data/config/action_view_helpers/actionview/url_helper/link_to_unless.yml +54 -20
- data/config/action_view_helpers/actionview/url_helper/link_to_unless_current.yml +49 -17
- data/config/action_view_helpers/actionview/url_helper/mail_to.yml +60 -34
- data/config/action_view_helpers/actionview/url_helper/phone_to.yml +40 -22
- data/config/action_view_helpers/actionview/url_helper/sms_to.yml +45 -25
- data/config/action_view_helpers/actionview/url_helper/url_for.yml +15 -9
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_import_module_tag.yml +32 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_importmap_module_preload_tags.yml +39 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_importmap_tags.yml +35 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_inline_importmap_tag.yml +32 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_module_preload_tag.yml +35 -0
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache.yml +9 -6
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache_tag.yml +12 -8
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview.yml +9 -6
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview_tag.yml +12 -8
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload.yml +9 -6
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload_tag.yml +12 -8
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_method_tag.yml +17 -11
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_scroll_tag.yml +17 -11
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refreshes_with.yml +20 -12
- data/config/action_view_helpers/turbo-rails/frames_helper/turbo_frame_tag.yml +54 -33
- data/config/action_view_helpers/turbo-rails/includes_helper/turbo_include_tags.yml +9 -6
- data/config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_action_tag.yml +32 -20
- data/config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_refresh_tag.yml +18 -11
- data/config/action_view_helpers/turbo-rails/streams_helper/turbo_stream.yml +9 -6
- data/config/action_view_helpers/turbo-rails/streams_helper/turbo_stream_from.yml +28 -18
- data/config/html_elements.yml +597 -0
- data/config/options.yml +1 -0
- data/config/slots/components.yml +52 -0
- data/config/state/kind.yml +61 -0
- data/config/state/operators.yml +27 -0
- data/config/state/predicates.yml +39 -0
- data/config/state/transforms.yml +18 -0
- data/config/view_context_methods/actionview/base/annotate_rendered_view_with_filenames.yml +4 -4
- data/config/view_context_methods/actionview/base/assign.yml +4 -4
- data/config/view_context_methods/actionview/base/assigns.yml +4 -4
- data/config/view_context_methods/actionview/base/automatically_disable_submit_tag.yml +4 -4
- data/config/view_context_methods/actionview/base/compiled_method_container.yml +4 -4
- data/config/view_context_methods/actionview/base/config.yml +4 -4
- data/config/view_context_methods/actionview/base/default_form_builder.yml +4 -4
- data/config/view_context_methods/actionview/base/default_formats.yml +4 -4
- data/config/view_context_methods/actionview/base/field_error_proc.yml +4 -4
- data/config/view_context_methods/actionview/base/formats.yml +4 -4
- data/config/view_context_methods/actionview/base/in_rendering_context.yml +4 -4
- data/config/view_context_methods/actionview/base/locale.yml +4 -4
- data/config/view_context_methods/actionview/base/lookup_context.yml +4 -4
- data/config/view_context_methods/actionview/base/output_buffer.yml +4 -4
- data/config/view_context_methods/actionview/base/prefix_partial_path_with_controller_namespace.yml +4 -4
- data/config/view_context_methods/actionview/base/remove_hidden_field_autocomplete.yml +4 -4
- data/config/view_context_methods/actionview/base/streaming_completion_on_exception.yml +4 -4
- data/config/view_context_methods/actionview/base/view_flow.yml +4 -4
- data/config/view_context_methods/actionview/base/view_paths.yml +4 -4
- data/config/view_context_methods/actionview/base/view_renderer.yml +4 -4
- data/config/view_context_methods/actionview/template/local_assigns.yml +4 -4
- data/config/view_context_methods/activemodel/conversion/convert_to_model.yml +4 -4
- data/config/view_context_methods/activesupport/benchmarkable/benchmark.yml +4 -4
- data/config.yml +1240 -790
- data/exe/herb +2 -0
- data/ext/herb/error_helpers.c +355 -17
- data/ext/herb/error_helpers.h +1 -1
- data/ext/herb/extconf.rb +4 -2
- data/ext/herb/extension.c +137 -89
- data/ext/herb/extension_helpers.c +81 -42
- data/ext/herb/extension_helpers.h +4 -1
- data/ext/herb/nodes.c +826 -358
- data/ext/herb/nodes.h +3 -2
- data/ext/herb/parser_options_helpers.c +151 -0
- data/ext/herb/parser_options_helpers.h +14 -0
- data/herb.gemspec +2 -2
- data/lib/herb/action_view/helper_registry.rb +1358 -62
- data/lib/herb/analysis/partial_declaration.rb +140 -0
- data/lib/herb/analysis/partial_index.rb +189 -0
- data/lib/herb/analysis/partial_resolution.rb +161 -0
- data/lib/herb/analysis/partial_resolver.rb +144 -0
- data/lib/herb/analysis/project_index.rb +152 -0
- data/lib/herb/{action_view → analysis}/render_analyzer.rb +287 -77
- data/lib/herb/analysis/render_graph/ancestor_chain.rb +27 -0
- data/lib/herb/analysis/render_graph/builder.rb +376 -0
- data/lib/herb/analysis/render_graph/call_frame.rb +9 -0
- data/lib/herb/analysis/render_graph/call_site_location.rb +23 -0
- data/lib/herb/analysis/render_graph/inferred_signature.rb +21 -0
- data/lib/herb/analysis/render_graph/partial_call_site.rb +40 -0
- data/lib/herb/analysis/render_graph/partial_context.rb +46 -0
- data/lib/herb/analysis/render_graph/template_roots.rb +31 -0
- data/lib/herb/analysis/render_graph.rb +285 -0
- data/lib/herb/analysis/ruby_locals_index/local.rb +25 -0
- data/lib/herb/analysis/ruby_locals_index/named_reference.rb +22 -0
- data/lib/herb/analysis/ruby_locals_index/offset_table.rb +44 -0
- data/lib/herb/analysis/ruby_locals_index/reference_collector.rb +80 -0
- data/lib/herb/analysis/ruby_locals_index/state_locals.rb +49 -0
- data/lib/herb/analysis/ruby_locals_index.rb +165 -0
- data/lib/herb/analysis/ruby_reference.rb +67 -0
- data/lib/herb/analysis/template_dependencies/dependency_collector.rb +179 -0
- data/lib/herb/analysis/template_dependencies/node_dependency_collector.rb +309 -0
- data/lib/herb/analysis/template_dependencies.rb +562 -0
- data/lib/herb/ast/erb_render_node.rb +26 -94
- data/lib/herb/ast/helpers.rb +90 -10
- data/lib/herb/ast/herb_directive_node.rb +18 -0
- data/lib/herb/ast/node.rb +32 -2
- data/lib/herb/ast/nodes.rb +1342 -105
- data/lib/herb/backend.rb +73 -0
- data/lib/herb/bootstrap.rb +3 -7
- data/lib/herb/cli.rb +550 -32
- data/lib/herb/colors.rb +14 -0
- data/lib/herb/configuration.rb +71 -35
- data/lib/herb/defaults.yml +2 -1
- data/lib/herb/dev/assets.rb +57 -0
- data/lib/herb/dev/classifier.rb +84 -0
- data/lib/herb/dev/embedded.rb +27 -0
- data/lib/herb/dev/pipeline.rb +305 -0
- data/lib/herb/dev/protocol.rb +221 -0
- data/lib/herb/dev/runner.rb +175 -175
- data/lib/herb/dev/server.rb +89 -26
- data/lib/herb/dev/server_entry.rb +41 -6
- data/lib/herb/dev/watcher.rb +181 -0
- data/lib/herb/dev.rb +163 -0
- data/lib/herb/diagnostic/formatter.rb +88 -0
- data/lib/herb/diagnostic.rb +172 -0
- data/lib/herb/diff/operation.rb +36 -0
- data/lib/herb/diff/result.rb +62 -0
- data/lib/herb/diff.rb +10 -0
- data/lib/herb/engine/collector.rb +62 -0
- data/lib/herb/engine/compiler.rb +346 -108
- data/lib/herb/engine/component_tags/constant_resolver.rb +28 -0
- data/lib/herb/engine/component_tags/partial_resolver.rb +54 -0
- data/lib/herb/engine/component_tags/resolver.rb +32 -0
- data/lib/herb/engine/component_tags/visitor.rb +231 -0
- data/lib/herb/engine/css_inliner/inliner.rb +101 -0
- data/lib/herb/engine/css_inliner/visitor.rb +174 -0
- data/lib/herb/engine/errors.rb +122 -0
- data/lib/herb/engine/helpers.rb +82 -0
- data/lib/herb/engine/inline_render/inliner.rb +122 -0
- data/lib/herb/engine/inline_render/visitor.rb +267 -0
- data/lib/herb/engine/runtime/entry.rb +62 -0
- data/lib/herb/engine/runtime/error_page.rb +362 -0
- data/lib/herb/engine/runtime/html_safe_assertions.rb +217 -0
- data/lib/herb/engine/runtime/journal/summary.rb +227 -0
- data/lib/herb/engine/runtime/journal.rb +379 -0
- data/lib/herb/engine/runtime/middleware.rb +212 -0
- data/lib/herb/engine/runtime/observations.rb +73 -0
- data/lib/herb/engine/runtime/report.rb +204 -0
- data/lib/herb/engine/runtime/session.rb +437 -0
- data/lib/herb/engine/runtime.rb +21 -0
- data/lib/herb/engine/scoped_style/channel.rb +66 -0
- data/lib/herb/engine/scoped_style/collector.rb +74 -0
- data/lib/herb/engine/scoped_style/visitor.rb +533 -0
- data/lib/herb/engine/slots/annotation.rb +98 -0
- data/lib/herb/engine/slots/bindings.rb +61 -0
- data/lib/herb/engine/slots/callee.rb +118 -0
- data/lib/herb/engine/slots/component_definitions.rb +67 -0
- data/lib/herb/engine/slots/components/async.rb +24 -0
- data/lib/herb/engine/slots/components/base.rb +132 -0
- data/lib/herb/engine/slots/components/deferred.rb +81 -0
- data/lib/herb/engine/slots/components/fallback.rb +27 -0
- data/lib/herb/engine/slots/components/fragment.rb +99 -0
- data/lib/herb/engine/slots/components/lazy.rb +24 -0
- data/lib/herb/engine/slots/components.rb +52 -0
- data/lib/herb/engine/slots/dependencies/channel.rb +72 -0
- data/lib/herb/engine/slots/dependencies.rb +269 -0
- data/lib/herb/engine/slots/dynamics_compiler.rb +854 -0
- data/lib/herb/engine/slots/identifier.rb +35 -0
- data/lib/herb/engine/slots/manifest/channel.rb +74 -0
- data/lib/herb/engine/slots/manifest/collector.rb +75 -0
- data/lib/herb/engine/slots/markers.rb +128 -0
- data/lib/herb/engine/slots/render_bindings.rb +141 -0
- data/lib/herb/engine/slots/schema_compiler.rb +94 -0
- data/lib/herb/engine/slots/state_anchor.rb +94 -0
- data/lib/herb/engine/slots/state_compiler.rb +1326 -0
- data/lib/herb/engine/slots/state_directives.rb +854 -0
- data/lib/herb/engine/slots/state_kinds.rb +54 -0
- data/lib/herb/engine/slots/state_operators.rb +36 -0
- data/lib/herb/engine/slots/state_overrides.rb +79 -0
- data/lib/herb/engine/slots/state_predicates.rb +65 -0
- data/lib/herb/engine/slots/state_transforms.rb +42 -0
- data/lib/herb/engine/slots/statics.rb +185 -0
- data/lib/herb/engine/slots/subtree.rb +82 -0
- data/lib/herb/engine/slots/subtree_compiler.rb +255 -0
- data/lib/herb/engine/slots/types.rb +42 -0
- data/lib/herb/engine/slots/visitor.rb +2256 -0
- data/lib/herb/engine/validators/accessibility_validator.rb +3 -3
- data/lib/herb/engine/validators/base.rb +36 -0
- data/lib/herb/engine/validators/generator_template_validator.rb +39 -0
- data/lib/herb/engine/validators/nesting_validator.rb +3 -3
- data/lib/herb/engine/validators/render_validator.rb +13 -33
- data/lib/herb/engine/validators/security_validator.rb +3 -17
- data/lib/herb/engine/validators.rb +43 -0
- data/lib/herb/engine/visitors/auto_close_omitted_tags_visitor.rb +48 -0
- data/lib/herb/engine/visitors/content_for_visitor.rb +127 -0
- data/lib/herb/engine/{debug_visitor.rb → visitors/debug_visitor.rb} +121 -93
- data/lib/herb/engine/visitors/html_safe_assertions_visitor.rb +281 -0
- data/lib/herb/engine/visitors/instrumentation_visitor.rb +290 -0
- data/lib/herb/engine/visitors/optimize_visitor.rb +728 -0
- data/lib/herb/engine/visitors/remove_comments_visitor.rb +106 -0
- data/lib/herb/engine/visitors/source_attribution_visitor.rb +177 -0
- data/lib/herb/engine.rb +218 -257
- data/lib/herb/ensure_installed.rb +43 -0
- data/lib/herb/errors.rb +646 -157
- data/lib/herb/fingerprint.rb +82 -0
- data/lib/herb/html/elements.rb +18 -0
- data/lib/herb/html/util.rb +21 -2
- data/lib/herb/lex_result.rb +0 -10
- data/lib/herb/locate.rb +163 -0
- data/lib/herb/location.rb +20 -0
- data/lib/herb/parse_result.rb +17 -11
- data/lib/herb/parser_options.rb +65 -46
- data/lib/herb/position.rb +19 -0
- data/lib/herb/prism_inspect.rb +1 -4
- data/lib/herb/project.rb +28 -15
- data/lib/herb/range.rb +5 -0
- data/lib/herb/result.rb +2 -2
- data/lib/herb/ruby_program.rb +110 -0
- data/lib/herb/source_path.rb +232 -0
- data/lib/herb/token.rb +14 -3
- data/lib/herb/version.rb +1 -1
- data/lib/herb/visitor/context/origin.rb +52 -0
- data/lib/herb/visitor/context/replacements.rb +59 -0
- data/lib/herb/visitor/context.rb +169 -0
- data/lib/herb/visitor/context_aware.rb +45 -0
- data/lib/herb/visitor/diagnostics.rb +148 -0
- data/lib/herb/visitor/experimental.rb +33 -0
- data/lib/herb/visitor/parser_option_requirements.rb +151 -0
- data/lib/herb/visitor/stack.rb +192 -0
- data/lib/herb/visitor.rb +47 -1
- data/lib/herb/warnings.rb +25 -0
- data/lib/herb.rb +74 -63
- data/sig/herb/action_view/helper_registry.rbs +82 -10
- data/sig/herb/analysis/partial_declaration.rbs +80 -0
- data/sig/herb/analysis/partial_index.rbs +66 -0
- data/sig/herb/analysis/partial_resolution.rbs +57 -0
- data/sig/herb/analysis/partial_resolver.rbs +76 -0
- data/sig/herb/analysis/project_index.rbs +57 -0
- data/sig/herb/{action_view → analysis}/render_analyzer.rbs +25 -4
- data/sig/herb/analysis/render_graph/ancestor_chain.rbs +22 -0
- data/sig/herb/analysis/render_graph/builder.rbs +180 -0
- data/sig/herb/analysis/render_graph/call_frame.rbs +26 -0
- data/sig/herb/analysis/render_graph/call_site_location.rbs +28 -0
- data/sig/herb/analysis/render_graph/inferred_signature.rbs +27 -0
- data/sig/herb/analysis/render_graph/partial_call_site.rbs +36 -0
- data/sig/herb/analysis/render_graph/partial_context.rbs +31 -0
- data/sig/herb/analysis/render_graph/template_roots.rbs +32 -0
- data/sig/herb/analysis/render_graph.rbs +83 -0
- data/sig/herb/analysis/ruby_locals_index/local.rbs +21 -0
- data/sig/herb/analysis/ruby_locals_index/named_reference.rbs +20 -0
- data/sig/herb/analysis/ruby_locals_index/offset_table.rbs +26 -0
- data/sig/herb/analysis/ruby_locals_index/reference_collector.rbs +40 -0
- data/sig/herb/analysis/ruby_locals_index/state_locals.rbs +19 -0
- data/sig/herb/analysis/ruby_locals_index.rbs +62 -0
- data/sig/herb/analysis/ruby_reference.rbs +28 -0
- data/sig/herb/analysis/template_dependencies/dependency_collector.rbs +52 -0
- data/sig/herb/analysis/template_dependencies/node_dependency_collector.rbs +81 -0
- data/sig/herb/analysis/template_dependencies.rbs +125 -0
- data/sig/herb/ast/erb_render_node.rbs +10 -2
- data/sig/herb/ast/helpers.rbs +31 -1
- data/sig/herb/ast/herb_directive_node.rbs +13 -0
- data/sig/herb/ast/node.rbs +9 -0
- data/sig/herb/ast/nodes.rbs +662 -89
- data/sig/herb/backend.rbs +52 -0
- data/sig/herb/colors.rbs +3 -0
- data/sig/herb/configuration.rbs +27 -3
- data/sig/herb/dev/assets.rbs +27 -0
- data/sig/herb/dev/classifier.rbs +57 -0
- data/sig/herb/dev/embedded.rbs +21 -0
- data/sig/herb/dev/pipeline.rbs +118 -0
- data/sig/herb/dev/protocol.rbs +78 -0
- data/sig/herb/dev/runner.rbs +61 -23
- data/sig/herb/dev/server.rbs +49 -22
- data/sig/herb/dev/server_entry.rbs +46 -21
- data/sig/herb/dev/watcher.rbs +84 -0
- data/sig/herb/dev.rbs +58 -0
- data/sig/herb/diagnostic/formatter.rbs +28 -0
- data/sig/herb/diagnostic.rbs +88 -0
- data/sig/herb/diff/operation.rbs +36 -0
- data/sig/herb/diff/result.rbs +36 -0
- data/sig/herb/diff.rbs +6 -0
- data/sig/herb/engine/collector.rbs +48 -0
- data/sig/herb/engine/compiler.rbs +62 -23
- data/sig/herb/engine/component_tags/constant_resolver.rbs +19 -0
- data/sig/herb/engine/component_tags/partial_resolver.rbs +30 -0
- data/sig/herb/engine/component_tags/resolver.rbs +25 -0
- data/sig/herb/engine/component_tags/visitor.rbs +69 -0
- data/sig/herb/engine/css_inliner/inliner.rbs +65 -0
- data/sig/herb/engine/css_inliner/visitor.rbs +87 -0
- data/sig/herb/engine/errors.rbs +68 -0
- data/sig/herb/engine/helpers.rbs +28 -0
- data/sig/herb/engine/inline_render/inliner.rbs +39 -0
- data/sig/herb/engine/inline_render/visitor.rbs +104 -0
- data/sig/herb/engine/runtime/entry.rbs +43 -0
- data/sig/herb/engine/runtime/error_page.rbs +115 -0
- data/sig/herb/engine/runtime/html_safe_assertions.rbs +99 -0
- data/sig/herb/engine/runtime/journal/summary.rbs +172 -0
- data/sig/herb/engine/runtime/journal.rbs +126 -0
- data/sig/herb/engine/runtime/middleware.rbs +96 -0
- data/sig/herb/engine/runtime/observations.rbs +38 -0
- data/sig/herb/engine/runtime/report.rbs +97 -0
- data/sig/herb/engine/runtime/session.rbs +233 -0
- data/sig/herb/engine/runtime.rbs +14 -0
- data/sig/herb/engine/scoped_style/channel.rbs +45 -0
- data/sig/herb/engine/scoped_style/collector.rbs +45 -0
- data/sig/herb/engine/scoped_style/visitor.rbs +220 -0
- data/sig/herb/engine/slots/annotation.rbs +72 -0
- data/sig/herb/engine/slots/bindings.rbs +34 -0
- data/sig/herb/engine/slots/callee.rbs +62 -0
- data/sig/herb/engine/slots/component_definitions.rbs +19 -0
- data/sig/herb/engine/slots/components/async.rbs +20 -0
- data/sig/herb/engine/slots/components/base.rbs +60 -0
- data/sig/herb/engine/slots/components/deferred.rbs +29 -0
- data/sig/herb/engine/slots/components/fallback.rbs +21 -0
- data/sig/herb/engine/slots/components/fragment.rbs +34 -0
- data/sig/herb/engine/slots/components/lazy.rbs +20 -0
- data/sig/herb/engine/slots/components.rbs +30 -0
- data/sig/herb/engine/slots/dependencies/channel.rbs +51 -0
- data/sig/herb/engine/slots/dependencies.rbs +94 -0
- data/sig/herb/engine/slots/dynamics_compiler.rbs +349 -0
- data/sig/herb/engine/slots/identifier.rbs +19 -0
- data/sig/herb/engine/slots/manifest/channel.rbs +49 -0
- data/sig/herb/engine/slots/manifest/collector.rbs +45 -0
- data/sig/herb/engine/slots/markers.rbs +85 -0
- data/sig/herb/engine/slots/render_bindings.rbs +69 -0
- data/sig/herb/engine/slots/schema_compiler.rbs +62 -0
- data/sig/herb/engine/slots/state_anchor.rbs +41 -0
- data/sig/herb/engine/slots/state_compiler.rbs +258 -0
- data/sig/herb/engine/slots/state_directives.rbs +278 -0
- data/sig/herb/engine/slots/state_kinds.rbs +24 -0
- data/sig/herb/engine/slots/state_operators.rbs +19 -0
- data/sig/herb/engine/slots/state_overrides.rbs +33 -0
- data/sig/herb/engine/slots/state_predicates.rbs +16 -0
- data/sig/herb/engine/slots/state_transforms.rbs +15 -0
- data/sig/herb/engine/slots/statics.rbs +67 -0
- data/sig/herb/engine/slots/subtree.rbs +49 -0
- data/sig/herb/engine/slots/subtree_compiler.rbs +130 -0
- data/sig/herb/engine/slots/types.rbs +46 -0
- data/sig/herb/engine/slots/visitor.rbs +599 -0
- data/sig/herb/engine/validators/accessibility_validator.rbs +1 -1
- data/sig/herb/engine/validators/base.rbs +28 -0
- data/sig/herb/engine/validators/generator_template_validator.rbs +19 -0
- data/sig/herb/engine/validators/nesting_validator.rbs +1 -1
- data/sig/herb/engine/validators/render_validator.rbs +2 -6
- data/sig/herb/engine/validators/security_validator.rbs +1 -3
- data/sig/herb/engine/validators.rbs +21 -0
- data/sig/herb/engine/visitors/auto_close_omitted_tags_visitor.rbs +26 -0
- data/sig/herb/engine/visitors/content_for_visitor.rbs +52 -0
- data/sig/herb/engine/{debug_visitor.rbs → visitors/debug_visitor.rbs} +26 -15
- data/sig/herb/engine/visitors/html_safe_assertions_visitor.rbs +100 -0
- data/sig/herb/engine/visitors/instrumentation_visitor.rbs +111 -0
- data/sig/herb/engine/visitors/optimize_visitor.rbs +246 -0
- data/sig/herb/engine/visitors/remove_comments_visitor.rbs +66 -0
- data/sig/herb/engine/visitors/source_attribution_visitor.rbs +90 -0
- data/sig/herb/engine.rbs +47 -41
- data/sig/herb/ensure_installed.rbs +9 -0
- data/sig/herb/errors.rbs +293 -0
- data/sig/herb/fingerprint.rbs +37 -0
- data/sig/herb/html/elements.rbs +19 -0
- data/sig/herb/html/util.rbs +15 -1
- data/sig/herb/lex_result.rbs +0 -6
- data/sig/herb/locate.rbs +89 -0
- data/sig/herb/location.rbs +12 -0
- data/sig/herb/parse_result.rbs +10 -8
- data/sig/herb/parser_options.rbs +47 -21
- data/sig/herb/position.rbs +11 -0
- data/sig/herb/range.rbs +3 -0
- data/sig/herb/ruby_program.rbs +51 -0
- data/sig/herb/source_path.rbs +132 -0
- data/sig/herb/token.rbs +5 -2
- data/sig/herb/visitor/context/origin.rbs +51 -0
- data/sig/herb/visitor/context/replacements.rbs +39 -0
- data/sig/herb/visitor/context.rbs +83 -0
- data/sig/herb/visitor/context_aware.rbs +32 -0
- data/sig/herb/visitor/diagnostics.rbs +82 -0
- data/sig/herb/visitor/experimental.rbs +23 -0
- data/sig/herb/visitor/parser_option_requirements.rbs +76 -0
- data/sig/herb/visitor/stack.rbs +91 -0
- data/sig/herb/visitor.rbs +22 -0
- data/sig/herb/warnings.rbs +10 -0
- data/sig/herb.rbs +27 -10
- data/sig/serialized_ast_errors.rbs +58 -1
- data/sig/serialized_ast_nodes.rbs +58 -2
- data/src/analyze/action_view/attribute_extraction_helpers.c +73 -36
- data/src/analyze/action_view/generated_handlers.c +37 -1
- data/src/analyze/action_view/generated_handlers.h +2 -1
- data/src/analyze/action_view/helper_registry.c +1353 -58
- data/src/analyze/action_view/registry.c +10 -17
- data/src/analyze/action_view/stylesheet_link_tag.c +40 -0
- data/src/analyze/action_view/tag_helper_node_builders.c +57 -0
- data/src/analyze/action_view/tag_helpers.c +423 -93
- data/src/analyze/analyze.c +301 -64
- data/src/analyze/analyze_helpers.c +420 -23
- data/src/analyze/builders.c +79 -51
- data/src/analyze/conditional_elements.c +13 -8
- data/src/analyze/conditional_open_tags.c +11 -5
- data/src/analyze/control_type.c +16 -1
- data/src/analyze/herb_directives.c +701 -0
- data/src/analyze/invalid_structures.c +11 -7
- data/src/analyze/iteration_nodes.c +306 -0
- data/src/analyze/missing_end.c +116 -32
- data/src/analyze/parse_errors.c +8 -3
- data/src/analyze/postfix_conditionals.c +98 -63
- data/src/analyze/prism_annotate.c +13 -4
- data/src/analyze/render_nodes.c +345 -123
- data/src/analyze/strict_locals.c +30 -26
- data/src/analyze/ternary_conditionals.c +95 -70
- data/src/analyze/transform.c +43 -1
- data/src/ast/ast_node.c +3 -13
- data/src/ast/ast_nodes.c +911 -112
- data/src/ast/ast_pretty_print.c +161 -2
- data/src/diff/herb_diff.c +8 -0
- data/src/diff/herb_diff_attributes.c +1 -0
- data/src/diff/herb_diff_children.c +4 -3
- data/src/diff/herb_diff_helpers.c +7 -1
- data/src/diff/herb_diff_nodes.c +186 -71
- data/src/diff/herb_hash_tree.c +99 -1
- data/src/errors.c +1096 -128
- data/src/extract.c +30 -8
- data/src/herb.c +30 -11
- data/src/include/analyze/action_view/attribute_extraction_helpers.h +1 -1
- data/src/include/analyze/action_view/helper_registry.h +28 -4
- data/src/include/analyze/action_view/tag_helper_handler.h +1 -1
- data/src/include/analyze/action_view/tag_helper_node_builders.h +7 -0
- data/src/include/analyze/analyze.h +11 -0
- data/src/include/analyze/builders.h +16 -0
- data/src/include/analyze/helpers.h +23 -2
- data/src/include/analyze/herb_directive_kinds.h +41 -0
- data/src/include/analyze/herb_directives.h +14 -0
- data/src/include/analyze/iteration_nodes.h +11 -0
- data/src/include/analyze/prism_annotate.h +3 -3
- data/src/include/analyze/ternary_conditionals.h +2 -0
- data/src/include/ast/ast_node.h +1 -5
- data/src/include/ast/ast_nodes.h +76 -2
- data/src/include/ast/ast_pretty_print.h +1 -1
- data/src/include/diff/herb_diff.h +11 -0
- data/src/include/errors.h +156 -39
- data/src/include/extract.h +11 -0
- data/src/include/herb.h +6 -0
- data/src/include/lexer/erb_openers.h +29 -0
- data/src/include/lexer/lexer_peek_helpers.h +8 -1
- data/src/include/lexer/lexer_struct.h +4 -0
- data/src/include/lexer/token.h +3 -0
- data/src/include/lexer/token_struct.h +8 -6
- data/src/include/lib/hb_allocator.h +2 -1
- data/src/include/lib/hb_array.h +2 -0
- data/src/include/lib/hb_foreach.h +1 -1
- data/src/include/lib/hb_string.h +7 -0
- data/src/include/parser/dot_notation.h +1 -1
- data/src/include/parser/foreign_content_elements.h +32 -0
- data/src/include/parser/parser.h +16 -30
- data/src/include/parser/parser_helpers.h +13 -11
- data/src/include/parser/parser_options.h +41 -0
- data/src/include/prism/ruby_parser.h +6 -0
- data/src/include/util/html_elements.h +85 -0
- data/src/include/util/html_util.h +1 -0
- data/src/include/version.h +1 -1
- data/src/lexer/lexer_peek_helpers.c +15 -1
- data/src/lexer/token.c +83 -1
- data/src/lexer.c +196 -12
- data/src/lib/hb_allocator.c +2 -0
- data/src/lib/hb_array.c +26 -0
- data/src/lib/hb_string.c +26 -0
- data/src/main.c +1 -1
- data/src/parser/dot_notation.c +4 -3
- data/src/parser/match_tags.c +66 -1
- data/src/parser/parser_helpers.c +69 -37
- data/src/parser.c +606 -383
- data/src/parser_options_defaults.c +30 -0
- data/src/prism/prism_helpers.c +3 -0
- data/src/prism/ruby_parser.c +49 -0
- data/src/util/html_util.c +11 -58
- data/src/visitor.c +77 -1
- data/templates/ext/herb/error_helpers.c.erb +1 -1
- data/templates/ext/herb/nodes.c.erb +18 -13
- data/templates/ext/herb/nodes.h.erb +2 -1
- data/templates/ext/herb/parser_options_helpers.c.erb +69 -0
- data/templates/ext/herb/parser_options_helpers.h.erb +11 -0
- data/templates/java/nodes.c.erb +20 -16
- data/templates/java/nodes.h.erb +3 -2
- data/templates/java/org/herb/ParserOptions.java.erb +24 -0
- data/templates/java/org/herb/ast/HelperRegistry.java.erb +67 -31
- data/templates/java/org/herb/ast/HelperType.java.erb +29 -0
- data/templates/java/org/herb/ast/Nodes.java.erb +11 -7
- data/templates/java/parser_options_helpers.c.erb +45 -0
- data/templates/java/parser_options_helpers.h.erb +10 -0
- data/templates/javascript/packages/client/src/state-kinds.ts.erb +49 -0
- data/templates/javascript/packages/client/src/state-operators.ts.erb +15 -0
- data/templates/javascript/packages/client/src/state-predicates.ts.erb +27 -0
- data/templates/javascript/packages/client/src/state-transforms.ts.erb +19 -0
- data/templates/javascript/packages/core/src/action-view-helpers.ts.erb +47 -0
- data/templates/javascript/packages/core/src/built-in-components.ts.erb +67 -0
- data/templates/javascript/packages/core/src/errors.ts.erb +9 -3
- data/templates/javascript/packages/core/src/foreign-content-elements.ts.erb +18 -0
- data/templates/javascript/packages/core/src/html-constants.ts.erb +32 -0
- data/templates/javascript/packages/core/src/html-elements.ts.erb +41 -0
- data/templates/javascript/packages/core/src/node-type-guards.ts.erb +11 -7
- data/templates/javascript/packages/core/src/nodes.ts.erb +82 -19
- data/templates/javascript/packages/core/src/parser-options.ts.erb +41 -0
- data/templates/javascript/packages/core/src/visitor.ts.erb +1 -1
- data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +3 -3
- data/templates/javascript/packages/node/extension/nodes.cpp.erb +17 -12
- data/templates/javascript/packages/node/extension/nodes.h.erb +3 -3
- data/templates/javascript/packages/node/extension/parser_options_helpers.cpp.erb +41 -0
- data/templates/javascript/packages/node/extension/parser_options_helpers.h.erb +12 -0
- data/templates/lib/herb/action_view/helper_registry.rb.erb +77 -3
- data/templates/lib/herb/ast/nodes.rb.erb +16 -6
- data/templates/lib/herb/engine/slots/component_definitions.rb.erb +38 -0
- data/templates/lib/herb/engine/slots/state_kinds.rb.erb +37 -0
- data/templates/lib/herb/engine/slots/state_operators.rb.erb +26 -0
- data/templates/lib/herb/engine/slots/state_predicates.rb.erb +39 -0
- data/templates/lib/herb/engine/slots/state_transforms.rb.erb +27 -0
- data/templates/lib/herb/errors.rb.erb +34 -6
- data/templates/lib/herb/html/elements.rb.erb +12 -0
- data/templates/lib/herb/parser_options.rb.erb +32 -0
- data/templates/lib/herb/visitor.rb.erb +7 -1
- data/templates/rust/herb-printer/src/printer_visitor.rs.erb +14 -0
- data/templates/rust/src/action_view_helpers.rs.erb +38 -0
- data/templates/rust/src/ast/nodes.rs.erb +24 -31
- data/templates/rust/src/errors.rs.erb +1 -1
- data/templates/rust/src/nodes.rs.erb +58 -26
- data/templates/rust/src/parser_options.rs.erb +16 -0
- data/templates/rust/src/prism/generated_deserialize.rs.erb +109 -0
- data/templates/rust/src/prism/generated_prettyprint.rs.erb +153 -0
- data/templates/rust/src/union_types.rs.erb +7 -1
- data/templates/rust/src/visitor.rs.erb +1 -1
- data/templates/src/analyze/action_view/helper_registry.c.erb +22 -0
- data/templates/src/analyze/missing_end.c.erb +13 -5
- data/templates/src/ast/ast_nodes.c.erb +41 -2
- data/templates/src/diff/herb_diff_nodes.c.erb +44 -8
- data/templates/src/errors.c.erb +8 -3
- data/templates/src/include/analyze/action_view/helper_registry.h.erb +19 -0
- data/templates/src/include/analyze/herb_directive_kinds.h.erb +25 -0
- data/templates/src/include/errors.h.erb +3 -1
- data/templates/src/include/parser/foreign_content_elements.h.erb +23 -0
- data/templates/src/include/parser/parser_options.h.erb +21 -0
- data/templates/src/include/util/html_elements.h.erb +28 -0
- data/templates/src/parser_options_defaults.c.erb +9 -0
- data/templates/template.rb +564 -9
- data/templates/wasm/error_helpers.cpp.erb +4 -4
- data/templates/wasm/nodes.cpp.erb +12 -12
- data/templates/wasm/nodes.h.erb +3 -3
- data/templates/wasm/parser_options_helpers.cpp.erb +25 -0
- data/templates/wasm/parser_options_helpers.h.erb +12 -0
- metadata +306 -27
- data/config/action_view_helpers/actionview/form_helper/button.yml +0 -38
- data/config/action_view_helpers/actionview/form_helper/submit.yml +0 -35
- data/lib/herb/ast.rb +0 -7
- data/lib/herb/diff_operation.rb +0 -34
- data/lib/herb/diff_result.rb +0 -59
- data/lib/herb/engine/error_formatter.rb +0 -432
- data/lib/herb/engine/parser_error_overlay.rb +0 -773
- data/lib/herb/engine/validation_error_overlay.rb +0 -182
- data/lib/herb/engine/validation_errors.rb +0 -65
- data/lib/herb/engine/validator.rb +0 -80
- data/sig/herb/ast.rbs +0 -6
- data/sig/herb/diff_operation.rbs +0 -34
- data/sig/herb/diff_result.rbs +0 -34
- data/sig/herb/engine/debug.rbs +0 -38
- data/sig/herb/engine/error_formatter.rbs +0 -47
- data/sig/herb/engine/parser_error_overlay.rbs +0 -41
- data/sig/herb/engine/validation_error_overlay.rbs +0 -35
- data/sig/herb/engine/validation_errors.rbs +0 -45
- data/sig/herb/engine/validator.rbs +0 -41
- data/sig/herb_c_extension.rbs +0 -10
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/render_graph/partial_call_site.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RenderGraph
|
|
6
|
+
class PartialCallSite < Data
|
|
7
|
+
attr_reader caller(): untyped
|
|
8
|
+
|
|
9
|
+
attr_reader locals(): untyped
|
|
10
|
+
|
|
11
|
+
attr_reader ancestors(): untyped
|
|
12
|
+
|
|
13
|
+
attr_reader ancestor_attributes(): untyped
|
|
14
|
+
|
|
15
|
+
attr_reader via(): untyped
|
|
16
|
+
|
|
17
|
+
attr_reader location(): untyped
|
|
18
|
+
|
|
19
|
+
def self.new: (untyped caller, untyped locals, untyped ancestors, untyped ancestor_attributes, untyped via, untyped location) -> instance
|
|
20
|
+
| (caller: untyped, locals: untyped, ancestors: untyped, ancestor_attributes: untyped, via: untyped, location: untyped) -> instance
|
|
21
|
+
|
|
22
|
+
def self.members: () -> [ :caller, :locals, :ancestors, :ancestor_attributes, :via, :location ]
|
|
23
|
+
|
|
24
|
+
def members: () -> [ :caller, :locals, :ancestors, :ancestor_attributes, :via, :location ]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class PartialCallSite
|
|
28
|
+
# : (Hash[String, untyped]) -> PartialCallSite
|
|
29
|
+
def self.from: (Hash[String, untyped]) -> PartialCallSite
|
|
30
|
+
|
|
31
|
+
# : () -> Hash[String, untyped]
|
|
32
|
+
def to_h: () -> Hash[String, untyped]
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/render_graph/partial_context.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RenderGraph
|
|
6
|
+
class PartialContext < Data
|
|
7
|
+
attr_reader chains(): untyped
|
|
8
|
+
|
|
9
|
+
attr_reader resolved(): untyped
|
|
10
|
+
|
|
11
|
+
def self.new: (untyped chains, untyped resolved) -> instance
|
|
12
|
+
| (chains: untyped, resolved: untyped) -> instance
|
|
13
|
+
|
|
14
|
+
def self.members: () -> [ :chains, :resolved ]
|
|
15
|
+
|
|
16
|
+
def members: () -> [ :chains, :resolved ]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
class PartialContext
|
|
20
|
+
# : (Array[String], *String) -> Symbol
|
|
21
|
+
def ancestor_verdict: (Array[String], *String) -> Symbol
|
|
22
|
+
|
|
23
|
+
# : (Array[String], *String) -> String?
|
|
24
|
+
def closest_ancestor: (Array[String], *String) -> String?
|
|
25
|
+
|
|
26
|
+
# : (Array[String], Array[String]) -> String?
|
|
27
|
+
def innermost: (Array[String], Array[String]) -> String?
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/render_graph/template_roots.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RenderGraph
|
|
6
|
+
class TemplateRoots < Data
|
|
7
|
+
attr_reader tags(): untyped
|
|
8
|
+
|
|
9
|
+
attr_reader conditional_tags(): untyped
|
|
10
|
+
|
|
11
|
+
attr_reader renders(): untyped
|
|
12
|
+
|
|
13
|
+
attr_reader resolved(): untyped
|
|
14
|
+
|
|
15
|
+
def self.new: (untyped tags, untyped conditional_tags, untyped renders, untyped resolved) -> instance
|
|
16
|
+
| (tags: untyped, conditional_tags: untyped, renders: untyped, resolved: untyped) -> instance
|
|
17
|
+
|
|
18
|
+
def self.members: () -> [ :tags, :conditional_tags, :renders, :resolved ]
|
|
19
|
+
|
|
20
|
+
def members: () -> [ :tags, :conditional_tags, :renders, :resolved ]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class TemplateRoots
|
|
24
|
+
# : (Hash[String, untyped]) -> TemplateRoots
|
|
25
|
+
def self.from: (Hash[String, untyped]) -> TemplateRoots
|
|
26
|
+
|
|
27
|
+
# : () -> Hash[String, untyped]
|
|
28
|
+
def to_h: () -> Hash[String, untyped]
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/render_graph.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RenderGraph
|
|
6
|
+
MAX_ANCESTOR_CHAINS: Integer
|
|
7
|
+
|
|
8
|
+
NO_ROOTS: TemplateRoots
|
|
9
|
+
|
|
10
|
+
UNRESOLVED: PartialContext
|
|
11
|
+
|
|
12
|
+
DOCUMENT_ROOT: PartialContext
|
|
13
|
+
|
|
14
|
+
# : (Hash[String, untyped]) -> RenderGraph
|
|
15
|
+
def self.from: (Hash[String, untyped]) -> RenderGraph
|
|
16
|
+
|
|
17
|
+
# : (?Hash[String, Array[PartialCallSite]], ?Hash[String, TemplateRoots], ?Set[String], ?Hash[String, Integer], ?Set[String]) -> void
|
|
18
|
+
def initialize: (?Hash[String, Array[PartialCallSite]], ?Hash[String, TemplateRoots], ?Set[String], ?Hash[String, Integer], ?Set[String]) -> void
|
|
19
|
+
|
|
20
|
+
# : () -> Integer
|
|
21
|
+
def unresolved_render_count: () -> Integer
|
|
22
|
+
|
|
23
|
+
# : () -> Integer
|
|
24
|
+
def skipped_file_count: () -> Integer
|
|
25
|
+
|
|
26
|
+
# : () -> bool
|
|
27
|
+
def complete?: () -> bool
|
|
28
|
+
|
|
29
|
+
# : (String) -> TemplateRoots
|
|
30
|
+
def roots_of: (String) -> TemplateRoots
|
|
31
|
+
|
|
32
|
+
# : (String, TemplateRoots) -> void
|
|
33
|
+
def set_roots: (String, TemplateRoots) -> void
|
|
34
|
+
|
|
35
|
+
# : (String) -> Array[PartialCallSite]
|
|
36
|
+
def callers_of: (String) -> Array[PartialCallSite]
|
|
37
|
+
|
|
38
|
+
# : (String) -> void
|
|
39
|
+
def add_document_root: (String) -> void
|
|
40
|
+
|
|
41
|
+
# : (String) -> bool
|
|
42
|
+
def document_root?: (String) -> bool
|
|
43
|
+
|
|
44
|
+
# : (String) -> void
|
|
45
|
+
def skip: (String) -> void
|
|
46
|
+
|
|
47
|
+
# : (String, Hash[String, Array[PartialCallSite]], ?Integer) -> bool
|
|
48
|
+
def replace_calls_from: (String, Hash[String, Array[PartialCallSite]], ?Integer) -> bool
|
|
49
|
+
|
|
50
|
+
# : (String) -> bool
|
|
51
|
+
def remove_calls_to: (String) -> bool
|
|
52
|
+
|
|
53
|
+
# : (String) -> InferredSignature
|
|
54
|
+
def infer_signature: (String) -> InferredSignature
|
|
55
|
+
|
|
56
|
+
# : (String) -> PartialContext
|
|
57
|
+
def context_of: (String) -> PartialContext
|
|
58
|
+
|
|
59
|
+
# : (Array[String], *String) -> Symbol
|
|
60
|
+
def descendant_verdict: (Array[String], *String) -> Symbol
|
|
61
|
+
|
|
62
|
+
# : () -> Integer
|
|
63
|
+
def size: () -> Integer
|
|
64
|
+
|
|
65
|
+
# : () -> Hash[String, untyped]
|
|
66
|
+
def to_h: () -> Hash[String, untyped]
|
|
67
|
+
|
|
68
|
+
private
|
|
69
|
+
|
|
70
|
+
# : (String, Integer) -> bool
|
|
71
|
+
def replace_unresolved_from: (String, Integer) -> bool
|
|
72
|
+
|
|
73
|
+
# : (String, Array[String], Set[String]) -> Symbol
|
|
74
|
+
def root_verdict: (String, Array[String], Set[String]) -> Symbol
|
|
75
|
+
|
|
76
|
+
# : (String, Set[String]) -> PartialContext
|
|
77
|
+
def resolve_context: (String, Set[String]) -> PartialContext
|
|
78
|
+
|
|
79
|
+
# : (PartialCallSite) -> CallFrame
|
|
80
|
+
def frame_for: (PartialCallSite) -> CallFrame
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_locals_index/local.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RubyLocalsIndex
|
|
6
|
+
class Local
|
|
7
|
+
attr_reader name: String
|
|
8
|
+
|
|
9
|
+
attr_reader declaration: Herb::Location
|
|
10
|
+
|
|
11
|
+
attr_reader usages: Array[Herb::Location]
|
|
12
|
+
|
|
13
|
+
# : (String, Herb::Location, Array[Herb::Location]) -> void
|
|
14
|
+
def initialize: (String, Herb::Location, Array[Herb::Location]) -> void
|
|
15
|
+
|
|
16
|
+
# : () -> Array[Herb::Location]
|
|
17
|
+
def locations: () -> Array[Herb::Location]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_locals_index/named_reference.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RubyLocalsIndex
|
|
6
|
+
# A name, with where it appears in the source as a byte offset and length,
|
|
7
|
+
# which is how Prism reports it.
|
|
8
|
+
class NamedReference
|
|
9
|
+
attr_reader name: String
|
|
10
|
+
|
|
11
|
+
attr_reader start_offset: Integer
|
|
12
|
+
|
|
13
|
+
attr_reader length: Integer
|
|
14
|
+
|
|
15
|
+
# : (String, Integer, Integer) -> void
|
|
16
|
+
def initialize: (String, Integer, Integer) -> void
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_locals_index/offset_table.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RubyLocalsIndex
|
|
6
|
+
# Prism reports byte offsets into the whole template while the Herb AST
|
|
7
|
+
# reports lines and 0-based character columns, so one of them has to be
|
|
8
|
+
# translated. The line table stays in bytes to index into the source, and
|
|
9
|
+
# only the column is counted in characters.
|
|
10
|
+
class OffsetTable
|
|
11
|
+
attr_reader source: String
|
|
12
|
+
|
|
13
|
+
attr_reader line_starts: Array[Integer]
|
|
14
|
+
|
|
15
|
+
# : (String) -> void
|
|
16
|
+
def initialize: (String) -> void
|
|
17
|
+
|
|
18
|
+
# : (NamedReference) -> Herb::Location
|
|
19
|
+
def location_for: (NamedReference) -> Herb::Location
|
|
20
|
+
|
|
21
|
+
# : (Integer) -> [Integer, Integer]
|
|
22
|
+
def position_at: (Integer) -> [ Integer, Integer ]
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_locals_index/reference_collector.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RubyLocalsIndex
|
|
6
|
+
class ReferenceCollector
|
|
7
|
+
attr_reader local_reads: Array[NamedReference]
|
|
8
|
+
|
|
9
|
+
attr_reader bare_calls: Array[NamedReference]
|
|
10
|
+
|
|
11
|
+
attr_reader parameters: Array[NamedReference]
|
|
12
|
+
|
|
13
|
+
attr_reader assignments: Array[NamedReference]
|
|
14
|
+
|
|
15
|
+
# : (Prism::Node) -> void
|
|
16
|
+
def initialize: (Prism::Node) -> void
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
# : (Prism::Node) -> void
|
|
21
|
+
def walk: (Prism::Node) -> void
|
|
22
|
+
|
|
23
|
+
# : (Prism::Node) -> void
|
|
24
|
+
def record: (Prism::Node) -> void
|
|
25
|
+
|
|
26
|
+
# : (Prism::Node) -> void
|
|
27
|
+
def record_read: (Prism::Node) -> void
|
|
28
|
+
|
|
29
|
+
# : (Prism::Node) -> void
|
|
30
|
+
def record_binding: (Prism::Node) -> void
|
|
31
|
+
|
|
32
|
+
# : (Prism::CallNode) -> bool
|
|
33
|
+
def bare_call?: (Prism::CallNode) -> bool
|
|
34
|
+
|
|
35
|
+
# : (Array[NamedReference], Symbol?, Prism::Location?) -> void
|
|
36
|
+
def add: (Array[NamedReference], Symbol?, Prism::Location?) -> void
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_locals_index/state_locals.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RubyLocalsIndex
|
|
6
|
+
# Finds `herb:state` declarations so a state read indexes like a local instead of an
|
|
7
|
+
# unknown name.
|
|
8
|
+
module StateLocals
|
|
9
|
+
def self?.locals: (untyped document, untyped references, untyped offsets, untyped declared) -> untyped
|
|
10
|
+
|
|
11
|
+
def self?.directives: (untyped document) -> untyped
|
|
12
|
+
|
|
13
|
+
def self?.declarations_in: (untyped node, untyped known) -> untyped
|
|
14
|
+
|
|
15
|
+
def self?.usages: (untyped name, untyped references, untyped offsets) -> untyped
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_locals_index.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class RubyLocalsIndex
|
|
6
|
+
KEYWORD_KIND: String
|
|
7
|
+
|
|
8
|
+
attr_reader locals: Array[Local]
|
|
9
|
+
|
|
10
|
+
attr_reader assignment_names: Set[String]
|
|
11
|
+
|
|
12
|
+
# : (String) -> RubyLocalsIndex
|
|
13
|
+
def self.from_source: (String) -> RubyLocalsIndex
|
|
14
|
+
|
|
15
|
+
# : (Herb::AST::DocumentNode, String) -> RubyLocalsIndex
|
|
16
|
+
def self.from_document: (Herb::AST::DocumentNode, String) -> RubyLocalsIndex
|
|
17
|
+
|
|
18
|
+
# : (Array[Local], ?Set[String]) -> void
|
|
19
|
+
def initialize: (Array[Local], ?Set[String]) -> void
|
|
20
|
+
|
|
21
|
+
# : (Integer, Integer) -> Local?
|
|
22
|
+
def at: (Integer, Integer) -> Local?
|
|
23
|
+
|
|
24
|
+
# : (String) -> Local?
|
|
25
|
+
def find: (String) -> Local?
|
|
26
|
+
|
|
27
|
+
# Every name the template binds, regardless of where.
|
|
28
|
+
# : () -> Set[String]
|
|
29
|
+
def names: () -> Set[String]
|
|
30
|
+
|
|
31
|
+
# : (Herb::Location, Integer, Integer) -> bool
|
|
32
|
+
def self.covers?: (Herb::Location, Integer, Integer) -> bool
|
|
33
|
+
|
|
34
|
+
# : (Herb::Location, Herb::Location) -> bool
|
|
35
|
+
def self.encloses?: (Herb::Location, Herb::Location) -> bool
|
|
36
|
+
|
|
37
|
+
# : (Herb::AST::DocumentNode, ReferenceCollector, OffsetTable) -> Array[Local]
|
|
38
|
+
def self.strict_locals: (Herb::AST::DocumentNode, ReferenceCollector, OffsetTable) -> Array[Local]
|
|
39
|
+
|
|
40
|
+
# : (Herb::AST::DocumentNode) -> Array[[String, Herb::Location]]
|
|
41
|
+
def self.declarations: (Herb::AST::DocumentNode) -> Array[[ String, Herb::Location ]]
|
|
42
|
+
|
|
43
|
+
# : (Herb::AST::Node) -> [String, Herb::Location]?
|
|
44
|
+
def self.declaration_for: (Herb::AST::Node) -> [ String, Herb::Location ]?
|
|
45
|
+
|
|
46
|
+
# : (Herb::AST::DocumentNode, ReferenceCollector, OffsetTable) -> Array[Local]
|
|
47
|
+
def self.block_locals: (Herb::AST::DocumentNode, ReferenceCollector, OffsetTable) -> Array[Local]
|
|
48
|
+
|
|
49
|
+
# : (NamedReference, ReferenceCollector, OffsetTable, Herb::Location?) -> Array[Herb::Location]
|
|
50
|
+
def self.reads_in_scope: (NamedReference, ReferenceCollector, OffsetTable, Herb::Location?) -> Array[Herb::Location]
|
|
51
|
+
|
|
52
|
+
# : (Herb::AST::DocumentNode) -> Array[Herb::Location]
|
|
53
|
+
def self.block_locations: (Herb::AST::DocumentNode) -> Array[Herb::Location]
|
|
54
|
+
|
|
55
|
+
# : (Herb::AST::Node) -> bool
|
|
56
|
+
def self.block_node?: (Herb::AST::Node) -> bool
|
|
57
|
+
|
|
58
|
+
# : (Array[Herb::Location], Herb::Location) -> Herb::Location?
|
|
59
|
+
def self.innermost_enclosing: (Array[Herb::Location], Herb::Location) -> Herb::Location?
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/ruby_reference.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
# Answers whether a snippet of Ruby references a name, instead of merely containing its
|
|
6
|
+
# characters. `render "form"` does not reference a local named `form`, and `item.title` does
|
|
7
|
+
# not reference a local named `title`.
|
|
8
|
+
#
|
|
9
|
+
# Herb::Analysis::RubyReference.references?("render 'form'", "form") #=> false
|
|
10
|
+
# Herb::Analysis::RubyReference.references?("render form", "form") #=> true
|
|
11
|
+
#
|
|
12
|
+
# A name that cannot be parsed falls back to matching the source, since a dependency that is
|
|
13
|
+
# missed goes stale while one that is imagined only costs a rebuild.
|
|
14
|
+
class RubyReference
|
|
15
|
+
# : (String?, String?) -> bool
|
|
16
|
+
def self.references?: (String?, String?) -> bool
|
|
17
|
+
|
|
18
|
+
# : (String) -> Regexp
|
|
19
|
+
def self.boundary: (String) -> Regexp
|
|
20
|
+
|
|
21
|
+
# : (String) -> Array[untyped]?
|
|
22
|
+
def self.nodes_in: (String) -> Array[untyped]?
|
|
23
|
+
|
|
24
|
+
# : (untyped, String) -> bool
|
|
25
|
+
def self.names?: (untyped, String) -> bool
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/template_dependencies/dependency_collector.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class TemplateDependencies
|
|
6
|
+
class DependencyCollector < ::Herb::Visitor
|
|
7
|
+
attr_reader instance_variables: untyped
|
|
8
|
+
|
|
9
|
+
attr_reader constants: untyped
|
|
10
|
+
|
|
11
|
+
attr_reader locals_declared: untyped
|
|
12
|
+
|
|
13
|
+
attr_reader locals_received: untyped
|
|
14
|
+
|
|
15
|
+
attr_reader helper_calls: untyped
|
|
16
|
+
|
|
17
|
+
attr_reader unknown_calls: untyped
|
|
18
|
+
|
|
19
|
+
attr_reader render_calls: untyped
|
|
20
|
+
|
|
21
|
+
def initialize: (untyped helper_registry, untyped custom_helpers, ?untyped prescanned_locals) -> untyped
|
|
22
|
+
|
|
23
|
+
def visit_erb_iteration_block_node: (untyped node) -> untyped
|
|
24
|
+
|
|
25
|
+
def visit_erb_block_node: (untyped node) -> untyped
|
|
26
|
+
|
|
27
|
+
def visit_erb_node: (untyped node) -> untyped
|
|
28
|
+
|
|
29
|
+
def visit_erb_render_node: (untyped node) -> untyped
|
|
30
|
+
|
|
31
|
+
def visit_erb_strict_locals_node: (untyped node) -> untyped
|
|
32
|
+
|
|
33
|
+
private
|
|
34
|
+
|
|
35
|
+
def analyze_erb_node: (untyped erb_node) -> untyped
|
|
36
|
+
|
|
37
|
+
# : (untyped, iterating: bool) { () -> void } -> void
|
|
38
|
+
def within_block: (untyped, iterating: bool) { () -> void } -> void
|
|
39
|
+
|
|
40
|
+
def block_parameters: (untyped code) -> untyped
|
|
41
|
+
|
|
42
|
+
def collect_parameters: (untyped node, untyped names) -> untyped
|
|
43
|
+
|
|
44
|
+
def analyze_ruby_expression: (untyped code) -> untyped
|
|
45
|
+
|
|
46
|
+
def walk_prism_node: (untyped node) -> untyped
|
|
47
|
+
|
|
48
|
+
def check_call_node: (untyped node) -> untyped
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/template_dependencies/node_dependency_collector.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class TemplateDependencies
|
|
6
|
+
class NodeDependencyCollector < ::Herb::Visitor
|
|
7
|
+
BRANCH_BODY_PROPERTIES: Array[Symbol]
|
|
8
|
+
|
|
9
|
+
BRANCH_CONTINUATION_PROPERTIES: Array[Symbol]
|
|
10
|
+
|
|
11
|
+
ASSIGNMENT_NODES: Array[untyped]
|
|
12
|
+
|
|
13
|
+
attr_reader affected: untyped
|
|
14
|
+
|
|
15
|
+
def initialize: (untyped state, untyped helper_registry, untyped custom_helpers, ?conditions_only: untyped) -> untyped
|
|
16
|
+
|
|
17
|
+
def visit_document_node: (untyped node) -> untyped
|
|
18
|
+
|
|
19
|
+
def visit_html_element_node: (untyped node) -> untyped
|
|
20
|
+
|
|
21
|
+
def visit_html_open_tag_node: (untyped node) -> untyped
|
|
22
|
+
|
|
23
|
+
def visit_erb_content_node: (untyped node) -> untyped
|
|
24
|
+
|
|
25
|
+
def visit_erb_if_node: (untyped node) -> untyped
|
|
26
|
+
|
|
27
|
+
def visit_erb_unless_node: (untyped node) -> untyped
|
|
28
|
+
|
|
29
|
+
def visit_erb_case_node: (untyped node) -> untyped
|
|
30
|
+
|
|
31
|
+
def visit_erb_node: (untyped node) -> untyped
|
|
32
|
+
|
|
33
|
+
def visit_erb_render_node: (untyped node) -> untyped
|
|
34
|
+
|
|
35
|
+
def visit_erb_block_node: (untyped node) -> untyped
|
|
36
|
+
|
|
37
|
+
def visit_erb_iteration_block_node: (untyped node) -> untyped
|
|
38
|
+
|
|
39
|
+
def visit_erb_while_node: (untyped node) -> untyped
|
|
40
|
+
|
|
41
|
+
def visit_erb_until_node: (untyped node) -> untyped
|
|
42
|
+
|
|
43
|
+
def visit_erb_for_node: (untyped node) -> untyped
|
|
44
|
+
|
|
45
|
+
private
|
|
46
|
+
|
|
47
|
+
def visit_children_with_paths: (untyped children) -> untyped
|
|
48
|
+
|
|
49
|
+
def check_block_for_state: (untyped node, untyped type) -> untyped
|
|
50
|
+
|
|
51
|
+
def visit_branching_node: (untyped node) -> untyped
|
|
52
|
+
|
|
53
|
+
def bind_assignments: (untyped node) -> untyped
|
|
54
|
+
|
|
55
|
+
def assigned_names: (untyped code) -> untyped
|
|
56
|
+
|
|
57
|
+
def collect_assignments: (untyped node, untyped names) -> untyped
|
|
58
|
+
|
|
59
|
+
def right_hand_side: (untyped node) -> untyped
|
|
60
|
+
|
|
61
|
+
def bindings_for: (untyped node) -> untyped
|
|
62
|
+
|
|
63
|
+
def block_parameters: (untyped code) -> untyped
|
|
64
|
+
|
|
65
|
+
def collect_parameters: (untyped node, untyped names) -> untyped
|
|
66
|
+
|
|
67
|
+
def own_expression: (untyped node) -> untyped
|
|
68
|
+
|
|
69
|
+
def collect_all_expressions: (untyped node) -> untyped
|
|
70
|
+
|
|
71
|
+
def check_erb_expression: (untyped node, untyped type) -> untyped
|
|
72
|
+
|
|
73
|
+
def check_attribute: (untyped attribute_node, untyped path) -> untyped
|
|
74
|
+
|
|
75
|
+
def references_state?: (untyped code) -> untyped
|
|
76
|
+
|
|
77
|
+
def references_name?: (untyped code, untyped name) -> untyped
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Generated from lib/herb/analysis/template_dependencies.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Herb
|
|
4
|
+
module Analysis
|
|
5
|
+
class TemplateDependencies
|
|
6
|
+
class FlowNode < Data
|
|
7
|
+
attr_reader file(): untyped
|
|
8
|
+
|
|
9
|
+
attr_reader names(): untyped
|
|
10
|
+
|
|
11
|
+
attr_reader via(): untyped
|
|
12
|
+
|
|
13
|
+
attr_reader nodes(): untyped
|
|
14
|
+
|
|
15
|
+
attr_reader children(): untyped
|
|
16
|
+
|
|
17
|
+
def self.new: (untyped file, untyped names, untyped via, untyped nodes, untyped children) -> instance
|
|
18
|
+
| (file: untyped, names: untyped, via: untyped, nodes: untyped, children: untyped) -> instance
|
|
19
|
+
|
|
20
|
+
def self.members: () -> [ :file, :names, :via, :nodes, :children ]
|
|
21
|
+
|
|
22
|
+
def members: () -> [ :file, :names, :via, :nodes, :children ]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
class Result < Data
|
|
26
|
+
attr_reader file(): untyped
|
|
27
|
+
|
|
28
|
+
attr_reader instance_variables(): untyped
|
|
29
|
+
|
|
30
|
+
attr_reader constants(): untyped
|
|
31
|
+
|
|
32
|
+
attr_reader locals_declared(): untyped
|
|
33
|
+
|
|
34
|
+
attr_reader locals_received(): untyped
|
|
35
|
+
|
|
36
|
+
attr_reader render_calls(): untyped
|
|
37
|
+
|
|
38
|
+
attr_reader helper_calls(): untyped
|
|
39
|
+
|
|
40
|
+
attr_reader unknown_calls(): untyped
|
|
41
|
+
|
|
42
|
+
def self.new: (untyped file, untyped instance_variables, untyped constants, untyped locals_declared, untyped locals_received, untyped render_calls, untyped helper_calls, untyped unknown_calls) -> instance
|
|
43
|
+
| (file: untyped, instance_variables: untyped, constants: untyped, locals_declared: untyped, locals_received: untyped, render_calls: untyped, helper_calls: untyped, unknown_calls: untyped) -> instance
|
|
44
|
+
|
|
45
|
+
def self.members: () -> [ :file, :instance_variables, :constants, :locals_declared, :locals_received, :render_calls, :helper_calls, :unknown_calls ]
|
|
46
|
+
|
|
47
|
+
def members: () -> [ :file, :instance_variables, :constants, :locals_declared, :locals_received, :render_calls, :helper_calls, :unknown_calls ]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def initialize: (untyped project_path) -> untyped
|
|
51
|
+
|
|
52
|
+
def analyze: (untyped file_path) -> untyped
|
|
53
|
+
|
|
54
|
+
def affected_templates: (untyped entry_point, untyped state) -> untyped
|
|
55
|
+
|
|
56
|
+
def state_flow: (untyped entry_point, untyped state) -> untyped
|
|
57
|
+
|
|
58
|
+
def affected_nodes: (untyped file_path, untyped state, ?conditions_only: untyped) -> untyped
|
|
59
|
+
|
|
60
|
+
def nodes_in: (untyped ast, untyped state, ?conditions_only: untyped) -> untyped
|
|
61
|
+
|
|
62
|
+
def dependency_index: (untyped file_path) -> untyped
|
|
63
|
+
|
|
64
|
+
# @rbs!
|
|
65
|
+
# KERNEL_METHODS: Array[String]
|
|
66
|
+
KERNEL_METHODS: untyped
|
|
67
|
+
|
|
68
|
+
def scan_helpers!: () -> untyped
|
|
69
|
+
|
|
70
|
+
private
|
|
71
|
+
|
|
72
|
+
# : (String) -> Set[String]
|
|
73
|
+
def guarded_locals: (String) -> Set[String]
|
|
74
|
+
|
|
75
|
+
# : () -> Set[String]
|
|
76
|
+
def scan_helper_methods!: () -> Set[String]
|
|
77
|
+
|
|
78
|
+
# : () -> Set[String]
|
|
79
|
+
def scan_routes!: () -> Set[String]
|
|
80
|
+
|
|
81
|
+
# : (String) -> void
|
|
82
|
+
def add_route_pair: (String) -> void
|
|
83
|
+
|
|
84
|
+
# : (String, String) -> String?
|
|
85
|
+
def symbol_after: (String, String) -> String?
|
|
86
|
+
|
|
87
|
+
# @rbs!
|
|
88
|
+
# UNCOUNTABLE: Array[String]
|
|
89
|
+
UNCOUNTABLE: untyped
|
|
90
|
+
|
|
91
|
+
# : (String, String) -> String?
|
|
92
|
+
def keyword_value: (String, String) -> String?
|
|
93
|
+
|
|
94
|
+
# : (String) -> String?
|
|
95
|
+
def route_alias: (String) -> String?
|
|
96
|
+
|
|
97
|
+
# : (String) -> String
|
|
98
|
+
def singularize: (String) -> String
|
|
99
|
+
|
|
100
|
+
def trace_state: (untyped entry_point, untyped state) -> untyped
|
|
101
|
+
|
|
102
|
+
def flow_node: (untyped trace, untyped file, untyped via, untyped path) -> untyped
|
|
103
|
+
|
|
104
|
+
def nodes_for: (untyped file, untyped names) -> untyped
|
|
105
|
+
|
|
106
|
+
def collect_reachable_files: (untyped entry_point) -> untyped
|
|
107
|
+
|
|
108
|
+
def component_methods_for: (untyped template_path) -> untyped
|
|
109
|
+
|
|
110
|
+
def partial_index: () -> untyped
|
|
111
|
+
|
|
112
|
+
def iterated_names: (untyped call, untyped carrying) -> untyped
|
|
113
|
+
|
|
114
|
+
def expression_references?: (untyped expression, untyped name) -> untyped
|
|
115
|
+
|
|
116
|
+
def extract_helper_methods: (untyped file) -> untyped
|
|
117
|
+
|
|
118
|
+
def walk_for_defs: (untyped node, untyped methods) -> untyped
|
|
119
|
+
|
|
120
|
+
def load_helper_registry: () -> untyped
|
|
121
|
+
|
|
122
|
+
def find_view_root: () -> untyped
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|