herb 0.10.1 → 0.11.1
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 +17 -7
- 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 +1249 -786
- data/exe/herb +2 -0
- data/ext/herb/error_helpers.c +379 -17
- data/ext/herb/error_helpers.h +1 -1
- data/ext/herb/extconf.rb +4 -2
- data/ext/herb/extension.c +137 -74
- data/ext/herb/extension_helpers.c +81 -35
- data/ext/herb/extension_helpers.h +4 -1
- data/ext/herb/nodes.c +859 -374
- 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 +3 -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 +1368 -105
- data/lib/herb/backend.rb +73 -0
- data/lib/herb/bootstrap.rb +8 -8
- data/lib/herb/cli.rb +555 -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 +180 -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 +387 -113
- 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 +864 -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 +152 -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 +1325 -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 +2267 -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} +122 -94
- 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 -259
- data/lib/herb/ensure_installed.rb +43 -0
- data/lib/herb/errors.rb +681 -153
- 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 +69 -40
- data/lib/herb/position.rb +19 -0
- data/lib/herb/prism_inspect.rb +1 -4
- data/lib/herb/project.rb +39 -23
- 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 +668 -89
- data/sig/herb/backend.rbs +52 -0
- data/sig/herb/bootstrap.rbs +2 -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 +64 -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 +74 -24
- 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 +352 -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 +99 -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 +603 -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 +311 -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 +53 -19
- 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/manifest.yaml +13 -0
- data/sig/serialized_ast_errors.rbs +62 -1
- data/sig/serialized_ast_nodes.rbs +59 -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 +63 -3
- data/src/analyze/action_view/tag_helpers.c +502 -111
- data/src/analyze/analyze.c +306 -89
- data/src/analyze/analyze_helpers.c +502 -237
- data/src/analyze/analyzed_ruby.c +2 -0
- data/src/analyze/builders.c +80 -51
- data/src/analyze/conditional_elements.c +13 -8
- data/src/analyze/conditional_open_tags.c +11 -5
- data/src/analyze/control_type.c +36 -13
- 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 +45 -13
- data/src/analyze/render_nodes.c +348 -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 +914 -113
- data/src/ast/ast_pretty_print.c +166 -3
- 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 +1124 -105
- data/src/extract.c +227 -144
- data/src/herb.c +43 -8
- 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 -22
- data/src/include/analyze/analyzed_ruby.h +25 -0
- data/src/include/analyze/builders.h +16 -0
- data/src/include/analyze/helpers.h +25 -24
- 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 +78 -3
- data/src/include/ast/ast_pretty_print.h +1 -1
- data/src/include/diff/herb_diff.h +11 -0
- data/src/include/errors.h +163 -38
- 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.h +1 -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 +5 -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_clock.h +15 -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 +40 -26
- data/src/include/parser/parser_helpers.h +13 -11
- data/src/include/parser/parser_options.h +41 -0
- data/src/include/prism/herb_prism_node.h +6 -1
- 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 +89 -1
- data/src/lexer.c +228 -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 +658 -385
- data/src/parser_options_defaults.c +30 -0
- data/src/prism/prism_helpers.c +94 -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 +19 -14
- 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 +21 -17
- 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 +103 -20
- 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 +18 -13
- 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 +21 -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 +17 -27
- 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 +309 -30
- 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 -771
- 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
- data/sig/vendor/did_you_mean.rbs +0 -6
- data/sig/vendor/parallel.rbs +0 -4
data/exe/herb
CHANGED
data/ext/herb/error_helpers.c
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// NOTE: This file is generated by the templates/template.rb script and should not
|
|
2
|
-
// be modified manually. See
|
|
2
|
+
// be modified manually. See templates/ext/herb/error_helpers.c.erb
|
|
3
3
|
|
|
4
4
|
#include <ruby.h>
|
|
5
5
|
|
|
@@ -28,15 +28,25 @@ static VALUE cERBControlFlowScopeError;
|
|
|
28
28
|
static VALUE cMissingERBEndTagError;
|
|
29
29
|
static VALUE cERBMultipleBlocksInTagError;
|
|
30
30
|
static VALUE cERBCaseWithConditionsError;
|
|
31
|
+
static VALUE cERBCaseInlinePatternMatchError;
|
|
31
32
|
static VALUE cConditionalElementMultipleTagsError;
|
|
32
33
|
static VALUE cConditionalElementConditionMismatchError;
|
|
34
|
+
static VALUE cUnclosedCommentError;
|
|
35
|
+
static VALUE cNestedCommentError;
|
|
33
36
|
static VALUE cInvalidCommentClosingTagError;
|
|
34
37
|
static VALUE cOmittedClosingTagError;
|
|
35
38
|
static VALUE cUnclosedOpenTagError;
|
|
36
39
|
static VALUE cUnclosedCloseTagError;
|
|
40
|
+
static VALUE cEndTagWithTrailingSolidusError;
|
|
37
41
|
static VALUE cUnclosedQuoteError;
|
|
38
42
|
static VALUE cMissingAttributeValueError;
|
|
43
|
+
static VALUE cMissingWhitespaceBetweenAttributesError;
|
|
44
|
+
static VALUE cUnexpectedCharacterInAttributeNameError;
|
|
45
|
+
static VALUE cUnexpectedCharacterInUnquotedAttributeValueError;
|
|
46
|
+
static VALUE cUnexpectedEqualsSignBeforeAttributeNameError;
|
|
47
|
+
static VALUE cUnexpectedSolidusInTagError;
|
|
39
48
|
static VALUE cUnclosedERBTagError;
|
|
49
|
+
static VALUE cMalformedERBClosingTagError;
|
|
40
50
|
static VALUE cStrayERBClosingTagError;
|
|
41
51
|
static VALUE cNestedERBTagError;
|
|
42
52
|
static VALUE cRenderAmbiguousLocalsError;
|
|
@@ -51,8 +61,13 @@ static VALUE cStrictLocalsBlockArgumentError;
|
|
|
51
61
|
static VALUE cStrictLocalsSplatArgumentError;
|
|
52
62
|
static VALUE cStrictLocalsMissingParenthesisError;
|
|
53
63
|
static VALUE cStrictLocalsDuplicateDeclarationError;
|
|
64
|
+
static VALUE cHerbStateMissingParenthesisError;
|
|
65
|
+
static VALUE cHerbStateNonCanonicalDirectiveError;
|
|
66
|
+
static VALUE cHerbStateInvalidParameterError;
|
|
67
|
+
static VALUE cHerbStateDuplicateDeclarationError;
|
|
54
68
|
static VALUE cVoidElementContentError;
|
|
55
69
|
static VALUE cDotNotationCasingError;
|
|
70
|
+
static VALUE cTimeoutError;
|
|
56
71
|
|
|
57
72
|
void rb_init_error_classes(void) {
|
|
58
73
|
mErrors = rb_define_module_under(mHerb, "Errors");
|
|
@@ -69,15 +84,25 @@ void rb_init_error_classes(void) {
|
|
|
69
84
|
cMissingERBEndTagError = rb_define_class_under(mErrors, "MissingERBEndTagError", cError);
|
|
70
85
|
cERBMultipleBlocksInTagError = rb_define_class_under(mErrors, "ERBMultipleBlocksInTagError", cError);
|
|
71
86
|
cERBCaseWithConditionsError = rb_define_class_under(mErrors, "ERBCaseWithConditionsError", cError);
|
|
87
|
+
cERBCaseInlinePatternMatchError = rb_define_class_under(mErrors, "ERBCaseInlinePatternMatchError", cError);
|
|
72
88
|
cConditionalElementMultipleTagsError = rb_define_class_under(mErrors, "ConditionalElementMultipleTagsError", cError);
|
|
73
89
|
cConditionalElementConditionMismatchError = rb_define_class_under(mErrors, "ConditionalElementConditionMismatchError", cError);
|
|
90
|
+
cUnclosedCommentError = rb_define_class_under(mErrors, "UnclosedCommentError", cError);
|
|
91
|
+
cNestedCommentError = rb_define_class_under(mErrors, "NestedCommentError", cError);
|
|
74
92
|
cInvalidCommentClosingTagError = rb_define_class_under(mErrors, "InvalidCommentClosingTagError", cError);
|
|
75
93
|
cOmittedClosingTagError = rb_define_class_under(mErrors, "OmittedClosingTagError", cError);
|
|
76
94
|
cUnclosedOpenTagError = rb_define_class_under(mErrors, "UnclosedOpenTagError", cError);
|
|
77
95
|
cUnclosedCloseTagError = rb_define_class_under(mErrors, "UnclosedCloseTagError", cError);
|
|
96
|
+
cEndTagWithTrailingSolidusError = rb_define_class_under(mErrors, "EndTagWithTrailingSolidusError", cError);
|
|
78
97
|
cUnclosedQuoteError = rb_define_class_under(mErrors, "UnclosedQuoteError", cError);
|
|
79
98
|
cMissingAttributeValueError = rb_define_class_under(mErrors, "MissingAttributeValueError", cError);
|
|
99
|
+
cMissingWhitespaceBetweenAttributesError = rb_define_class_under(mErrors, "MissingWhitespaceBetweenAttributesError", cError);
|
|
100
|
+
cUnexpectedCharacterInAttributeNameError = rb_define_class_under(mErrors, "UnexpectedCharacterInAttributeNameError", cError);
|
|
101
|
+
cUnexpectedCharacterInUnquotedAttributeValueError = rb_define_class_under(mErrors, "UnexpectedCharacterInUnquotedAttributeValueError", cError);
|
|
102
|
+
cUnexpectedEqualsSignBeforeAttributeNameError = rb_define_class_under(mErrors, "UnexpectedEqualsSignBeforeAttributeNameError", cError);
|
|
103
|
+
cUnexpectedSolidusInTagError = rb_define_class_under(mErrors, "UnexpectedSolidusInTagError", cError);
|
|
80
104
|
cUnclosedERBTagError = rb_define_class_under(mErrors, "UnclosedERBTagError", cError);
|
|
105
|
+
cMalformedERBClosingTagError = rb_define_class_under(mErrors, "MalformedERBClosingTagError", cError);
|
|
81
106
|
cStrayERBClosingTagError = rb_define_class_under(mErrors, "StrayERBClosingTagError", cError);
|
|
82
107
|
cNestedERBTagError = rb_define_class_under(mErrors, "NestedERBTagError", cError);
|
|
83
108
|
cRenderAmbiguousLocalsError = rb_define_class_under(mErrors, "RenderAmbiguousLocalsError", cError);
|
|
@@ -92,8 +117,13 @@ void rb_init_error_classes(void) {
|
|
|
92
117
|
cStrictLocalsSplatArgumentError = rb_define_class_under(mErrors, "StrictLocalsSplatArgumentError", cError);
|
|
93
118
|
cStrictLocalsMissingParenthesisError = rb_define_class_under(mErrors, "StrictLocalsMissingParenthesisError", cError);
|
|
94
119
|
cStrictLocalsDuplicateDeclarationError = rb_define_class_under(mErrors, "StrictLocalsDuplicateDeclarationError", cError);
|
|
120
|
+
cHerbStateMissingParenthesisError = rb_define_class_under(mErrors, "HerbStateMissingParenthesisError", cError);
|
|
121
|
+
cHerbStateNonCanonicalDirectiveError = rb_define_class_under(mErrors, "HerbStateNonCanonicalDirectiveError", cError);
|
|
122
|
+
cHerbStateInvalidParameterError = rb_define_class_under(mErrors, "HerbStateInvalidParameterError", cError);
|
|
123
|
+
cHerbStateDuplicateDeclarationError = rb_define_class_under(mErrors, "HerbStateDuplicateDeclarationError", cError);
|
|
95
124
|
cVoidElementContentError = rb_define_class_under(mErrors, "VoidElementContentError", cError);
|
|
96
125
|
cDotNotationCasingError = rb_define_class_under(mErrors, "DotNotationCasingError", cError);
|
|
126
|
+
cTimeoutError = rb_define_class_under(mErrors, "TimeoutError", cError);
|
|
97
127
|
}
|
|
98
128
|
|
|
99
129
|
static VALUE rb_unexpected_error_from_c_struct(UNEXPECTED_ERROR_T* unexpected_error) {
|
|
@@ -132,7 +162,7 @@ static VALUE rb_unexpected_token_error_from_c_struct(UNEXPECTED_TOKEN_ERROR_T* u
|
|
|
132
162
|
|
|
133
163
|
hb_string_T _expected_type_string = token_type_to_string(unexpected_token_error->expected_type);
|
|
134
164
|
VALUE unexpected_token_error_expected_type = rb_utf8_str_new(_expected_type_string.data, _expected_type_string.length);
|
|
135
|
-
VALUE unexpected_token_error_found = rb_token_from_c_struct(unexpected_token_error->found);
|
|
165
|
+
VALUE unexpected_token_error_found = rb_token_from_c_struct(unexpected_token_error->found, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
136
166
|
|
|
137
167
|
VALUE args[5] = {
|
|
138
168
|
type,
|
|
@@ -154,7 +184,7 @@ static VALUE rb_missing_opening_tag_error_from_c_struct(MISSING_OPENING_TAG_ERRO
|
|
|
154
184
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
155
185
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
156
186
|
|
|
157
|
-
VALUE missing_opening_tag_error_closing_tag = rb_token_from_c_struct(missing_opening_tag_error->closing_tag);
|
|
187
|
+
VALUE missing_opening_tag_error_closing_tag = rb_token_from_c_struct(missing_opening_tag_error->closing_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
158
188
|
|
|
159
189
|
VALUE args[4] = {
|
|
160
190
|
type,
|
|
@@ -175,7 +205,7 @@ static VALUE rb_missing_closing_tag_error_from_c_struct(MISSING_CLOSING_TAG_ERRO
|
|
|
175
205
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
176
206
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
177
207
|
|
|
178
|
-
VALUE missing_closing_tag_error_opening_tag = rb_token_from_c_struct(missing_closing_tag_error->opening_tag);
|
|
208
|
+
VALUE missing_closing_tag_error_opening_tag = rb_token_from_c_struct(missing_closing_tag_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
179
209
|
|
|
180
210
|
VALUE args[4] = {
|
|
181
211
|
type,
|
|
@@ -196,8 +226,8 @@ static VALUE rb_tag_names_mismatch_error_from_c_struct(TAG_NAMES_MISMATCH_ERROR_
|
|
|
196
226
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
197
227
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
198
228
|
|
|
199
|
-
VALUE tag_names_mismatch_error_opening_tag = rb_token_from_c_struct(tag_names_mismatch_error->opening_tag);
|
|
200
|
-
VALUE tag_names_mismatch_error_closing_tag = rb_token_from_c_struct(tag_names_mismatch_error->closing_tag);
|
|
229
|
+
VALUE tag_names_mismatch_error_opening_tag = rb_token_from_c_struct(tag_names_mismatch_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
230
|
+
VALUE tag_names_mismatch_error_closing_tag = rb_token_from_c_struct(tag_names_mismatch_error->closing_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
201
231
|
|
|
202
232
|
VALUE args[5] = {
|
|
203
233
|
type,
|
|
@@ -219,7 +249,7 @@ static VALUE rb_void_element_closing_tag_error_from_c_struct(VOID_ELEMENT_CLOSIN
|
|
|
219
249
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
220
250
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
221
251
|
|
|
222
|
-
VALUE void_element_closing_tag_error_tag_name = rb_token_from_c_struct(void_element_closing_tag_error->tag_name);
|
|
252
|
+
VALUE void_element_closing_tag_error_tag_name = rb_token_from_c_struct(void_element_closing_tag_error->tag_name, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
223
253
|
VALUE void_element_closing_tag_error_expected = rb_utf8_str_new(void_element_closing_tag_error->expected.data, void_element_closing_tag_error->expected.length);
|
|
224
254
|
VALUE void_element_closing_tag_error_found = rb_utf8_str_new(void_element_closing_tag_error->found.data, void_element_closing_tag_error->found.length);
|
|
225
255
|
|
|
@@ -244,7 +274,7 @@ static VALUE rb_unclosed_element_error_from_c_struct(UNCLOSED_ELEMENT_ERROR_T* u
|
|
|
244
274
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
245
275
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
246
276
|
|
|
247
|
-
VALUE unclosed_element_error_opening_tag = rb_token_from_c_struct(unclosed_element_error->opening_tag);
|
|
277
|
+
VALUE unclosed_element_error_opening_tag = rb_token_from_c_struct(unclosed_element_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
248
278
|
|
|
249
279
|
VALUE args[4] = {
|
|
250
280
|
type,
|
|
@@ -361,6 +391,25 @@ static VALUE rb_erb_case_with_conditions_error_from_c_struct(ERB_CASE_WITH_CONDI
|
|
|
361
391
|
return rb_class_new_instance(3, args, cERBCaseWithConditionsError);
|
|
362
392
|
};
|
|
363
393
|
|
|
394
|
+
static VALUE rb_erb_case_inline_pattern_match_error_from_c_struct(ERB_CASE_INLINE_PATTERN_MATCH_ERROR_T* erb_case_inline_pattern_match_error) {
|
|
395
|
+
if (erb_case_inline_pattern_match_error == NULL) { return Qnil; }
|
|
396
|
+
|
|
397
|
+
ERROR_T* error = &erb_case_inline_pattern_match_error->base;
|
|
398
|
+
|
|
399
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
400
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
401
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
VALUE args[3] = {
|
|
405
|
+
type,
|
|
406
|
+
location,
|
|
407
|
+
message
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
return rb_class_new_instance(3, args, cERBCaseInlinePatternMatchError);
|
|
411
|
+
};
|
|
412
|
+
|
|
364
413
|
static VALUE rb_conditional_element_multiple_tags_error_from_c_struct(CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR_T* conditional_element_multiple_tags_error) {
|
|
365
414
|
if (conditional_element_multiple_tags_error == NULL) { return Qnil; }
|
|
366
415
|
|
|
@@ -417,6 +466,50 @@ static VALUE rb_conditional_element_condition_mismatch_error_from_c_struct(CONDI
|
|
|
417
466
|
return rb_class_new_instance(10, args, cConditionalElementConditionMismatchError);
|
|
418
467
|
};
|
|
419
468
|
|
|
469
|
+
static VALUE rb_unclosed_comment_error_from_c_struct(UNCLOSED_COMMENT_ERROR_T* unclosed_comment_error) {
|
|
470
|
+
if (unclosed_comment_error == NULL) { return Qnil; }
|
|
471
|
+
|
|
472
|
+
ERROR_T* error = &unclosed_comment_error->base;
|
|
473
|
+
|
|
474
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
475
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
476
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
477
|
+
|
|
478
|
+
VALUE unclosed_comment_error_comment_start = rb_token_from_c_struct(unclosed_comment_error->comment_start, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
479
|
+
|
|
480
|
+
VALUE args[4] = {
|
|
481
|
+
type,
|
|
482
|
+
location,
|
|
483
|
+
message,
|
|
484
|
+
unclosed_comment_error_comment_start
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
return rb_class_new_instance(4, args, cUnclosedCommentError);
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
static VALUE rb_nested_comment_error_from_c_struct(NESTED_COMMENT_ERROR_T* nested_comment_error) {
|
|
491
|
+
if (nested_comment_error == NULL) { return Qnil; }
|
|
492
|
+
|
|
493
|
+
ERROR_T* error = &nested_comment_error->base;
|
|
494
|
+
|
|
495
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
496
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
497
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
498
|
+
|
|
499
|
+
VALUE nested_comment_error_comment_start = rb_token_from_c_struct(nested_comment_error->comment_start, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
500
|
+
VALUE nested_comment_error_nested_start = rb_token_from_c_struct(nested_comment_error->nested_start, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
501
|
+
|
|
502
|
+
VALUE args[5] = {
|
|
503
|
+
type,
|
|
504
|
+
location,
|
|
505
|
+
message,
|
|
506
|
+
nested_comment_error_comment_start,
|
|
507
|
+
nested_comment_error_nested_start
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
return rb_class_new_instance(5, args, cNestedCommentError);
|
|
511
|
+
};
|
|
512
|
+
|
|
420
513
|
static VALUE rb_invalid_comment_closing_tag_error_from_c_struct(INVALID_COMMENT_CLOSING_TAG_ERROR_T* invalid_comment_closing_tag_error) {
|
|
421
514
|
if (invalid_comment_closing_tag_error == NULL) { return Qnil; }
|
|
422
515
|
|
|
@@ -426,7 +519,7 @@ static VALUE rb_invalid_comment_closing_tag_error_from_c_struct(INVALID_COMMENT_
|
|
|
426
519
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
427
520
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
428
521
|
|
|
429
|
-
VALUE invalid_comment_closing_tag_error_closing_tag = rb_token_from_c_struct(invalid_comment_closing_tag_error->closing_tag);
|
|
522
|
+
VALUE invalid_comment_closing_tag_error_closing_tag = rb_token_from_c_struct(invalid_comment_closing_tag_error->closing_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
430
523
|
|
|
431
524
|
VALUE args[4] = {
|
|
432
525
|
type,
|
|
@@ -447,7 +540,7 @@ static VALUE rb_omitted_closing_tag_error_from_c_struct(OMITTED_CLOSING_TAG_ERRO
|
|
|
447
540
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
448
541
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
449
542
|
|
|
450
|
-
VALUE omitted_closing_tag_error_opening_tag = rb_token_from_c_struct(omitted_closing_tag_error->opening_tag);
|
|
543
|
+
VALUE omitted_closing_tag_error_opening_tag = rb_token_from_c_struct(omitted_closing_tag_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
451
544
|
VALUE omitted_closing_tag_error_insertion_point = rb_position_from_c_struct(omitted_closing_tag_error->insertion_point);
|
|
452
545
|
|
|
453
546
|
VALUE args[5] = {
|
|
@@ -470,7 +563,7 @@ static VALUE rb_unclosed_open_tag_error_from_c_struct(UNCLOSED_OPEN_TAG_ERROR_T*
|
|
|
470
563
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
471
564
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
472
565
|
|
|
473
|
-
VALUE unclosed_open_tag_error_tag_name = rb_token_from_c_struct(unclosed_open_tag_error->tag_name);
|
|
566
|
+
VALUE unclosed_open_tag_error_tag_name = rb_token_from_c_struct(unclosed_open_tag_error->tag_name, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
474
567
|
|
|
475
568
|
VALUE args[4] = {
|
|
476
569
|
type,
|
|
@@ -491,7 +584,7 @@ static VALUE rb_unclosed_close_tag_error_from_c_struct(UNCLOSED_CLOSE_TAG_ERROR_
|
|
|
491
584
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
492
585
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
493
586
|
|
|
494
|
-
VALUE unclosed_close_tag_error_tag_name = rb_token_from_c_struct(unclosed_close_tag_error->tag_name);
|
|
587
|
+
VALUE unclosed_close_tag_error_tag_name = rb_token_from_c_struct(unclosed_close_tag_error->tag_name, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
495
588
|
|
|
496
589
|
VALUE args[4] = {
|
|
497
590
|
type,
|
|
@@ -503,6 +596,27 @@ static VALUE rb_unclosed_close_tag_error_from_c_struct(UNCLOSED_CLOSE_TAG_ERROR_
|
|
|
503
596
|
return rb_class_new_instance(4, args, cUnclosedCloseTagError);
|
|
504
597
|
};
|
|
505
598
|
|
|
599
|
+
static VALUE rb_end_tag_with_trailing_solidus_error_from_c_struct(END_TAG_WITH_TRAILING_SOLIDUS_ERROR_T* end_tag_with_trailing_solidus_error) {
|
|
600
|
+
if (end_tag_with_trailing_solidus_error == NULL) { return Qnil; }
|
|
601
|
+
|
|
602
|
+
ERROR_T* error = &end_tag_with_trailing_solidus_error->base;
|
|
603
|
+
|
|
604
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
605
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
606
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
607
|
+
|
|
608
|
+
VALUE end_tag_with_trailing_solidus_error_tag_name = rb_token_from_c_struct(end_tag_with_trailing_solidus_error->tag_name, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
609
|
+
|
|
610
|
+
VALUE args[4] = {
|
|
611
|
+
type,
|
|
612
|
+
location,
|
|
613
|
+
message,
|
|
614
|
+
end_tag_with_trailing_solidus_error_tag_name
|
|
615
|
+
};
|
|
616
|
+
|
|
617
|
+
return rb_class_new_instance(4, args, cEndTagWithTrailingSolidusError);
|
|
618
|
+
};
|
|
619
|
+
|
|
506
620
|
static VALUE rb_unclosed_quote_error_from_c_struct(UNCLOSED_QUOTE_ERROR_T* unclosed_quote_error) {
|
|
507
621
|
if (unclosed_quote_error == NULL) { return Qnil; }
|
|
508
622
|
|
|
@@ -512,7 +626,7 @@ static VALUE rb_unclosed_quote_error_from_c_struct(UNCLOSED_QUOTE_ERROR_T* unclo
|
|
|
512
626
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
513
627
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
514
628
|
|
|
515
|
-
VALUE unclosed_quote_error_opening_quote = rb_token_from_c_struct(unclosed_quote_error->opening_quote);
|
|
629
|
+
VALUE unclosed_quote_error_opening_quote = rb_token_from_c_struct(unclosed_quote_error->opening_quote, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
516
630
|
|
|
517
631
|
VALUE args[4] = {
|
|
518
632
|
type,
|
|
@@ -545,6 +659,111 @@ static VALUE rb_missing_attribute_value_error_from_c_struct(MISSING_ATTRIBUTE_VA
|
|
|
545
659
|
return rb_class_new_instance(4, args, cMissingAttributeValueError);
|
|
546
660
|
};
|
|
547
661
|
|
|
662
|
+
static VALUE rb_missing_whitespace_between_attributes_error_from_c_struct(MISSING_WHITESPACE_BETWEEN_ATTRIBUTES_ERROR_T* missing_whitespace_between_attributes_error) {
|
|
663
|
+
if (missing_whitespace_between_attributes_error == NULL) { return Qnil; }
|
|
664
|
+
|
|
665
|
+
ERROR_T* error = &missing_whitespace_between_attributes_error->base;
|
|
666
|
+
|
|
667
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
668
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
669
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
670
|
+
|
|
671
|
+
VALUE missing_whitespace_between_attributes_error_found = rb_token_from_c_struct(missing_whitespace_between_attributes_error->found, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
672
|
+
|
|
673
|
+
VALUE args[4] = {
|
|
674
|
+
type,
|
|
675
|
+
location,
|
|
676
|
+
message,
|
|
677
|
+
missing_whitespace_between_attributes_error_found
|
|
678
|
+
};
|
|
679
|
+
|
|
680
|
+
return rb_class_new_instance(4, args, cMissingWhitespaceBetweenAttributesError);
|
|
681
|
+
};
|
|
682
|
+
|
|
683
|
+
static VALUE rb_unexpected_character_in_attribute_name_error_from_c_struct(UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME_ERROR_T* unexpected_character_in_attribute_name_error) {
|
|
684
|
+
if (unexpected_character_in_attribute_name_error == NULL) { return Qnil; }
|
|
685
|
+
|
|
686
|
+
ERROR_T* error = &unexpected_character_in_attribute_name_error->base;
|
|
687
|
+
|
|
688
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
689
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
690
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
691
|
+
|
|
692
|
+
VALUE unexpected_character_in_attribute_name_error_character = rb_token_from_c_struct(unexpected_character_in_attribute_name_error->character, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
693
|
+
|
|
694
|
+
VALUE args[4] = {
|
|
695
|
+
type,
|
|
696
|
+
location,
|
|
697
|
+
message,
|
|
698
|
+
unexpected_character_in_attribute_name_error_character
|
|
699
|
+
};
|
|
700
|
+
|
|
701
|
+
return rb_class_new_instance(4, args, cUnexpectedCharacterInAttributeNameError);
|
|
702
|
+
};
|
|
703
|
+
|
|
704
|
+
static VALUE rb_unexpected_character_in_unquoted_attribute_value_error_from_c_struct(UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE_ERROR_T* unexpected_character_in_unquoted_attribute_value_error) {
|
|
705
|
+
if (unexpected_character_in_unquoted_attribute_value_error == NULL) { return Qnil; }
|
|
706
|
+
|
|
707
|
+
ERROR_T* error = &unexpected_character_in_unquoted_attribute_value_error->base;
|
|
708
|
+
|
|
709
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
710
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
711
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
712
|
+
|
|
713
|
+
VALUE unexpected_character_in_unquoted_attribute_value_error_character = rb_token_from_c_struct(unexpected_character_in_unquoted_attribute_value_error->character, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
714
|
+
|
|
715
|
+
VALUE args[4] = {
|
|
716
|
+
type,
|
|
717
|
+
location,
|
|
718
|
+
message,
|
|
719
|
+
unexpected_character_in_unquoted_attribute_value_error_character
|
|
720
|
+
};
|
|
721
|
+
|
|
722
|
+
return rb_class_new_instance(4, args, cUnexpectedCharacterInUnquotedAttributeValueError);
|
|
723
|
+
};
|
|
724
|
+
|
|
725
|
+
static VALUE rb_unexpected_equals_sign_before_attribute_name_error_from_c_struct(UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME_ERROR_T* unexpected_equals_sign_before_attribute_name_error) {
|
|
726
|
+
if (unexpected_equals_sign_before_attribute_name_error == NULL) { return Qnil; }
|
|
727
|
+
|
|
728
|
+
ERROR_T* error = &unexpected_equals_sign_before_attribute_name_error->base;
|
|
729
|
+
|
|
730
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
731
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
732
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
733
|
+
|
|
734
|
+
VALUE unexpected_equals_sign_before_attribute_name_error_equals = rb_token_from_c_struct(unexpected_equals_sign_before_attribute_name_error->equals, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
735
|
+
|
|
736
|
+
VALUE args[4] = {
|
|
737
|
+
type,
|
|
738
|
+
location,
|
|
739
|
+
message,
|
|
740
|
+
unexpected_equals_sign_before_attribute_name_error_equals
|
|
741
|
+
};
|
|
742
|
+
|
|
743
|
+
return rb_class_new_instance(4, args, cUnexpectedEqualsSignBeforeAttributeNameError);
|
|
744
|
+
};
|
|
745
|
+
|
|
746
|
+
static VALUE rb_unexpected_solidus_in_tag_error_from_c_struct(UNEXPECTED_SOLIDUS_IN_TAG_ERROR_T* unexpected_solidus_in_tag_error) {
|
|
747
|
+
if (unexpected_solidus_in_tag_error == NULL) { return Qnil; }
|
|
748
|
+
|
|
749
|
+
ERROR_T* error = &unexpected_solidus_in_tag_error->base;
|
|
750
|
+
|
|
751
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
752
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
753
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
754
|
+
|
|
755
|
+
VALUE unexpected_solidus_in_tag_error_solidus = rb_token_from_c_struct(unexpected_solidus_in_tag_error->solidus, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
756
|
+
|
|
757
|
+
VALUE args[4] = {
|
|
758
|
+
type,
|
|
759
|
+
location,
|
|
760
|
+
message,
|
|
761
|
+
unexpected_solidus_in_tag_error_solidus
|
|
762
|
+
};
|
|
763
|
+
|
|
764
|
+
return rb_class_new_instance(4, args, cUnexpectedSolidusInTagError);
|
|
765
|
+
};
|
|
766
|
+
|
|
548
767
|
static VALUE rb_unclosed_erb_tag_error_from_c_struct(UNCLOSED_ERB_TAG_ERROR_T* unclosed_erb_tag_error) {
|
|
549
768
|
if (unclosed_erb_tag_error == NULL) { return Qnil; }
|
|
550
769
|
|
|
@@ -554,7 +773,7 @@ static VALUE rb_unclosed_erb_tag_error_from_c_struct(UNCLOSED_ERB_TAG_ERROR_T* u
|
|
|
554
773
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
555
774
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
556
775
|
|
|
557
|
-
VALUE unclosed_erb_tag_error_opening_tag = rb_token_from_c_struct(unclosed_erb_tag_error->opening_tag);
|
|
776
|
+
VALUE unclosed_erb_tag_error_opening_tag = rb_token_from_c_struct(unclosed_erb_tag_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
558
777
|
|
|
559
778
|
VALUE args[4] = {
|
|
560
779
|
type,
|
|
@@ -566,6 +785,29 @@ static VALUE rb_unclosed_erb_tag_error_from_c_struct(UNCLOSED_ERB_TAG_ERROR_T* u
|
|
|
566
785
|
return rb_class_new_instance(4, args, cUnclosedERBTagError);
|
|
567
786
|
};
|
|
568
787
|
|
|
788
|
+
static VALUE rb_malformed_erb_closing_tag_error_from_c_struct(MALFORMED_ERB_CLOSING_TAG_ERROR_T* malformed_erb_closing_tag_error) {
|
|
789
|
+
if (malformed_erb_closing_tag_error == NULL) { return Qnil; }
|
|
790
|
+
|
|
791
|
+
ERROR_T* error = &malformed_erb_closing_tag_error->base;
|
|
792
|
+
|
|
793
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
794
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
795
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
796
|
+
|
|
797
|
+
VALUE malformed_erb_closing_tag_error_opening_tag = rb_token_from_c_struct(malformed_erb_closing_tag_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
798
|
+
VALUE malformed_erb_closing_tag_error_closing_tag = rb_token_from_c_struct(malformed_erb_closing_tag_error->closing_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
799
|
+
|
|
800
|
+
VALUE args[5] = {
|
|
801
|
+
type,
|
|
802
|
+
location,
|
|
803
|
+
message,
|
|
804
|
+
malformed_erb_closing_tag_error_opening_tag,
|
|
805
|
+
malformed_erb_closing_tag_error_closing_tag
|
|
806
|
+
};
|
|
807
|
+
|
|
808
|
+
return rb_class_new_instance(5, args, cMalformedERBClosingTagError);
|
|
809
|
+
};
|
|
810
|
+
|
|
569
811
|
static VALUE rb_stray_erb_closing_tag_error_from_c_struct(STRAY_ERB_CLOSING_TAG_ERROR_T* stray_erb_closing_tag_error) {
|
|
570
812
|
if (stray_erb_closing_tag_error == NULL) { return Qnil; }
|
|
571
813
|
|
|
@@ -594,7 +836,7 @@ static VALUE rb_nested_erb_tag_error_from_c_struct(NESTED_ERB_TAG_ERROR_T* neste
|
|
|
594
836
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
595
837
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
596
838
|
|
|
597
|
-
VALUE nested_erb_tag_error_opening_tag = rb_token_from_c_struct(nested_erb_tag_error->opening_tag);
|
|
839
|
+
VALUE nested_erb_tag_error_opening_tag = rb_token_from_c_struct(nested_erb_tag_error->opening_tag, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
598
840
|
VALUE nested_erb_tag_error_nested_tag_line = ULONG2NUM(nested_erb_tag_error->nested_tag_line);
|
|
599
841
|
VALUE nested_erb_tag_error_nested_tag_column = ULONG2NUM(nested_erb_tag_error->nested_tag_column);
|
|
600
842
|
|
|
@@ -860,6 +1102,90 @@ static VALUE rb_strict_locals_duplicate_declaration_error_from_c_struct(STRICT_L
|
|
|
860
1102
|
return rb_class_new_instance(3, args, cStrictLocalsDuplicateDeclarationError);
|
|
861
1103
|
};
|
|
862
1104
|
|
|
1105
|
+
static VALUE rb_herb_state_missing_parenthesis_error_from_c_struct(HERB_STATE_MISSING_PARENTHESIS_ERROR_T* herb_state_missing_parenthesis_error) {
|
|
1106
|
+
if (herb_state_missing_parenthesis_error == NULL) { return Qnil; }
|
|
1107
|
+
|
|
1108
|
+
ERROR_T* error = &herb_state_missing_parenthesis_error->base;
|
|
1109
|
+
|
|
1110
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
1111
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
1112
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
1113
|
+
|
|
1114
|
+
VALUE herb_state_missing_parenthesis_error_rest = rb_utf8_str_new(herb_state_missing_parenthesis_error->rest.data, herb_state_missing_parenthesis_error->rest.length);
|
|
1115
|
+
|
|
1116
|
+
VALUE args[4] = {
|
|
1117
|
+
type,
|
|
1118
|
+
location,
|
|
1119
|
+
message,
|
|
1120
|
+
herb_state_missing_parenthesis_error_rest
|
|
1121
|
+
};
|
|
1122
|
+
|
|
1123
|
+
return rb_class_new_instance(4, args, cHerbStateMissingParenthesisError);
|
|
1124
|
+
};
|
|
1125
|
+
|
|
1126
|
+
static VALUE rb_herb_state_non_canonical_directive_error_from_c_struct(HERB_STATE_NON_CANONICAL_DIRECTIVE_ERROR_T* herb_state_non_canonical_directive_error) {
|
|
1127
|
+
if (herb_state_non_canonical_directive_error == NULL) { return Qnil; }
|
|
1128
|
+
|
|
1129
|
+
ERROR_T* error = &herb_state_non_canonical_directive_error->base;
|
|
1130
|
+
|
|
1131
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
1132
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
1133
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
1134
|
+
|
|
1135
|
+
VALUE herb_state_non_canonical_directive_error_found = rb_utf8_str_new(herb_state_non_canonical_directive_error->found.data, herb_state_non_canonical_directive_error->found.length);
|
|
1136
|
+
VALUE herb_state_non_canonical_directive_error_expected = rb_utf8_str_new(herb_state_non_canonical_directive_error->expected.data, herb_state_non_canonical_directive_error->expected.length);
|
|
1137
|
+
|
|
1138
|
+
VALUE args[5] = {
|
|
1139
|
+
type,
|
|
1140
|
+
location,
|
|
1141
|
+
message,
|
|
1142
|
+
herb_state_non_canonical_directive_error_found,
|
|
1143
|
+
herb_state_non_canonical_directive_error_expected
|
|
1144
|
+
};
|
|
1145
|
+
|
|
1146
|
+
return rb_class_new_instance(5, args, cHerbStateNonCanonicalDirectiveError);
|
|
1147
|
+
};
|
|
1148
|
+
|
|
1149
|
+
static VALUE rb_herb_state_invalid_parameter_error_from_c_struct(HERB_STATE_INVALID_PARAMETER_ERROR_T* herb_state_invalid_parameter_error) {
|
|
1150
|
+
if (herb_state_invalid_parameter_error == NULL) { return Qnil; }
|
|
1151
|
+
|
|
1152
|
+
ERROR_T* error = &herb_state_invalid_parameter_error->base;
|
|
1153
|
+
|
|
1154
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
1155
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
1156
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
1157
|
+
|
|
1158
|
+
VALUE herb_state_invalid_parameter_error_parameter = rb_utf8_str_new(herb_state_invalid_parameter_error->parameter.data, herb_state_invalid_parameter_error->parameter.length);
|
|
1159
|
+
|
|
1160
|
+
VALUE args[4] = {
|
|
1161
|
+
type,
|
|
1162
|
+
location,
|
|
1163
|
+
message,
|
|
1164
|
+
herb_state_invalid_parameter_error_parameter
|
|
1165
|
+
};
|
|
1166
|
+
|
|
1167
|
+
return rb_class_new_instance(4, args, cHerbStateInvalidParameterError);
|
|
1168
|
+
};
|
|
1169
|
+
|
|
1170
|
+
static VALUE rb_herb_state_duplicate_declaration_error_from_c_struct(HERB_STATE_DUPLICATE_DECLARATION_ERROR_T* herb_state_duplicate_declaration_error) {
|
|
1171
|
+
if (herb_state_duplicate_declaration_error == NULL) { return Qnil; }
|
|
1172
|
+
|
|
1173
|
+
ERROR_T* error = &herb_state_duplicate_declaration_error->base;
|
|
1174
|
+
|
|
1175
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
1176
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
1177
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
VALUE args[3] = {
|
|
1181
|
+
type,
|
|
1182
|
+
location,
|
|
1183
|
+
message
|
|
1184
|
+
};
|
|
1185
|
+
|
|
1186
|
+
return rb_class_new_instance(3, args, cHerbStateDuplicateDeclarationError);
|
|
1187
|
+
};
|
|
1188
|
+
|
|
863
1189
|
static VALUE rb_void_element_content_error_from_c_struct(VOID_ELEMENT_CONTENT_ERROR_T* void_element_content_error) {
|
|
864
1190
|
if (void_element_content_error == NULL) { return Qnil; }
|
|
865
1191
|
|
|
@@ -869,7 +1195,7 @@ static VALUE rb_void_element_content_error_from_c_struct(VOID_ELEMENT_CONTENT_ER
|
|
|
869
1195
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
870
1196
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
871
1197
|
|
|
872
|
-
VALUE void_element_content_error_tag_name = rb_token_from_c_struct(void_element_content_error->tag_name);
|
|
1198
|
+
VALUE void_element_content_error_tag_name = rb_token_from_c_struct(void_element_content_error->tag_name, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
873
1199
|
VALUE void_element_content_error_helper_name = rb_utf8_str_new(void_element_content_error->helper_name.data, void_element_content_error->helper_name.length);
|
|
874
1200
|
VALUE void_element_content_error_content_type = rb_utf8_str_new(void_element_content_error->content_type.data, void_element_content_error->content_type.length);
|
|
875
1201
|
|
|
@@ -894,7 +1220,7 @@ static VALUE rb_dot_notation_casing_error_from_c_struct(DOT_NOTATION_CASING_ERRO
|
|
|
894
1220
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
895
1221
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
896
1222
|
|
|
897
|
-
VALUE dot_notation_casing_error_segment = rb_token_from_c_struct(dot_notation_casing_error->segment);
|
|
1223
|
+
VALUE dot_notation_casing_error_segment = rb_token_from_c_struct(dot_notation_casing_error->segment, &HERB_DEFAULT_PARSER_OPTIONS);
|
|
898
1224
|
|
|
899
1225
|
VALUE args[4] = {
|
|
900
1226
|
type,
|
|
@@ -906,6 +1232,27 @@ static VALUE rb_dot_notation_casing_error_from_c_struct(DOT_NOTATION_CASING_ERRO
|
|
|
906
1232
|
return rb_class_new_instance(4, args, cDotNotationCasingError);
|
|
907
1233
|
};
|
|
908
1234
|
|
|
1235
|
+
static VALUE rb_timeout_error_from_c_struct(TIMEOUT_ERROR_T* timeout_error) {
|
|
1236
|
+
if (timeout_error == NULL) { return Qnil; }
|
|
1237
|
+
|
|
1238
|
+
ERROR_T* error = &timeout_error->base;
|
|
1239
|
+
|
|
1240
|
+
VALUE type = rb_string_from_hb_string(error_type_to_string(error));
|
|
1241
|
+
VALUE location = rb_location_from_c_struct(error->location);
|
|
1242
|
+
VALUE message = rb_string_from_hb_string(error->message);
|
|
1243
|
+
|
|
1244
|
+
VALUE timeout_error_timeout_ms = ULONG2NUM(timeout_error->timeout_ms);
|
|
1245
|
+
|
|
1246
|
+
VALUE args[4] = {
|
|
1247
|
+
type,
|
|
1248
|
+
location,
|
|
1249
|
+
message,
|
|
1250
|
+
timeout_error_timeout_ms
|
|
1251
|
+
};
|
|
1252
|
+
|
|
1253
|
+
return rb_class_new_instance(4, args, cTimeoutError);
|
|
1254
|
+
};
|
|
1255
|
+
|
|
909
1256
|
|
|
910
1257
|
VALUE rb_error_from_c_struct(ERROR_T* error) {
|
|
911
1258
|
if (!error) { return Qnil; }
|
|
@@ -923,15 +1270,25 @@ VALUE rb_error_from_c_struct(ERROR_T* error) {
|
|
|
923
1270
|
case MISSING_ERB_END_TAG_ERROR: return rb_missing_erb_end_tag_error_from_c_struct((MISSING_ERB_END_TAG_ERROR_T*) error); break;
|
|
924
1271
|
case ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR: return rb_erb_multiple_blocks_in_tag_error_from_c_struct((ERB_MULTIPLE_BLOCKS_IN_TAG_ERROR_T*) error); break;
|
|
925
1272
|
case ERB_CASE_WITH_CONDITIONS_ERROR: return rb_erb_case_with_conditions_error_from_c_struct((ERB_CASE_WITH_CONDITIONS_ERROR_T*) error); break;
|
|
1273
|
+
case ERB_CASE_INLINE_PATTERN_MATCH_ERROR: return rb_erb_case_inline_pattern_match_error_from_c_struct((ERB_CASE_INLINE_PATTERN_MATCH_ERROR_T*) error); break;
|
|
926
1274
|
case CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR: return rb_conditional_element_multiple_tags_error_from_c_struct((CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR_T*) error); break;
|
|
927
1275
|
case CONDITIONAL_ELEMENT_CONDITION_MISMATCH_ERROR: return rb_conditional_element_condition_mismatch_error_from_c_struct((CONDITIONAL_ELEMENT_CONDITION_MISMATCH_ERROR_T*) error); break;
|
|
1276
|
+
case UNCLOSED_COMMENT_ERROR: return rb_unclosed_comment_error_from_c_struct((UNCLOSED_COMMENT_ERROR_T*) error); break;
|
|
1277
|
+
case NESTED_COMMENT_ERROR: return rb_nested_comment_error_from_c_struct((NESTED_COMMENT_ERROR_T*) error); break;
|
|
928
1278
|
case INVALID_COMMENT_CLOSING_TAG_ERROR: return rb_invalid_comment_closing_tag_error_from_c_struct((INVALID_COMMENT_CLOSING_TAG_ERROR_T*) error); break;
|
|
929
1279
|
case OMITTED_CLOSING_TAG_ERROR: return rb_omitted_closing_tag_error_from_c_struct((OMITTED_CLOSING_TAG_ERROR_T*) error); break;
|
|
930
1280
|
case UNCLOSED_OPEN_TAG_ERROR: return rb_unclosed_open_tag_error_from_c_struct((UNCLOSED_OPEN_TAG_ERROR_T*) error); break;
|
|
931
1281
|
case UNCLOSED_CLOSE_TAG_ERROR: return rb_unclosed_close_tag_error_from_c_struct((UNCLOSED_CLOSE_TAG_ERROR_T*) error); break;
|
|
1282
|
+
case END_TAG_WITH_TRAILING_SOLIDUS_ERROR: return rb_end_tag_with_trailing_solidus_error_from_c_struct((END_TAG_WITH_TRAILING_SOLIDUS_ERROR_T*) error); break;
|
|
932
1283
|
case UNCLOSED_QUOTE_ERROR: return rb_unclosed_quote_error_from_c_struct((UNCLOSED_QUOTE_ERROR_T*) error); break;
|
|
933
1284
|
case MISSING_ATTRIBUTE_VALUE_ERROR: return rb_missing_attribute_value_error_from_c_struct((MISSING_ATTRIBUTE_VALUE_ERROR_T*) error); break;
|
|
1285
|
+
case MISSING_WHITESPACE_BETWEEN_ATTRIBUTES_ERROR: return rb_missing_whitespace_between_attributes_error_from_c_struct((MISSING_WHITESPACE_BETWEEN_ATTRIBUTES_ERROR_T*) error); break;
|
|
1286
|
+
case UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME_ERROR: return rb_unexpected_character_in_attribute_name_error_from_c_struct((UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME_ERROR_T*) error); break;
|
|
1287
|
+
case UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE_ERROR: return rb_unexpected_character_in_unquoted_attribute_value_error_from_c_struct((UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE_ERROR_T*) error); break;
|
|
1288
|
+
case UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME_ERROR: return rb_unexpected_equals_sign_before_attribute_name_error_from_c_struct((UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME_ERROR_T*) error); break;
|
|
1289
|
+
case UNEXPECTED_SOLIDUS_IN_TAG_ERROR: return rb_unexpected_solidus_in_tag_error_from_c_struct((UNEXPECTED_SOLIDUS_IN_TAG_ERROR_T*) error); break;
|
|
934
1290
|
case UNCLOSED_ERB_TAG_ERROR: return rb_unclosed_erb_tag_error_from_c_struct((UNCLOSED_ERB_TAG_ERROR_T*) error); break;
|
|
1291
|
+
case MALFORMED_ERB_CLOSING_TAG_ERROR: return rb_malformed_erb_closing_tag_error_from_c_struct((MALFORMED_ERB_CLOSING_TAG_ERROR_T*) error); break;
|
|
935
1292
|
case STRAY_ERB_CLOSING_TAG_ERROR: return rb_stray_erb_closing_tag_error_from_c_struct((STRAY_ERB_CLOSING_TAG_ERROR_T*) error); break;
|
|
936
1293
|
case NESTED_ERB_TAG_ERROR: return rb_nested_erb_tag_error_from_c_struct((NESTED_ERB_TAG_ERROR_T*) error); break;
|
|
937
1294
|
case RENDER_AMBIGUOUS_LOCALS_ERROR: return rb_render_ambiguous_locals_error_from_c_struct((RENDER_AMBIGUOUS_LOCALS_ERROR_T*) error); break;
|
|
@@ -946,8 +1303,13 @@ VALUE rb_error_from_c_struct(ERROR_T* error) {
|
|
|
946
1303
|
case STRICT_LOCALS_SPLAT_ARGUMENT_ERROR: return rb_strict_locals_splat_argument_error_from_c_struct((STRICT_LOCALS_SPLAT_ARGUMENT_ERROR_T*) error); break;
|
|
947
1304
|
case STRICT_LOCALS_MISSING_PARENTHESIS_ERROR: return rb_strict_locals_missing_parenthesis_error_from_c_struct((STRICT_LOCALS_MISSING_PARENTHESIS_ERROR_T*) error); break;
|
|
948
1305
|
case STRICT_LOCALS_DUPLICATE_DECLARATION_ERROR: return rb_strict_locals_duplicate_declaration_error_from_c_struct((STRICT_LOCALS_DUPLICATE_DECLARATION_ERROR_T*) error); break;
|
|
1306
|
+
case HERB_STATE_MISSING_PARENTHESIS_ERROR: return rb_herb_state_missing_parenthesis_error_from_c_struct((HERB_STATE_MISSING_PARENTHESIS_ERROR_T*) error); break;
|
|
1307
|
+
case HERB_STATE_NON_CANONICAL_DIRECTIVE_ERROR: return rb_herb_state_non_canonical_directive_error_from_c_struct((HERB_STATE_NON_CANONICAL_DIRECTIVE_ERROR_T*) error); break;
|
|
1308
|
+
case HERB_STATE_INVALID_PARAMETER_ERROR: return rb_herb_state_invalid_parameter_error_from_c_struct((HERB_STATE_INVALID_PARAMETER_ERROR_T*) error); break;
|
|
1309
|
+
case HERB_STATE_DUPLICATE_DECLARATION_ERROR: return rb_herb_state_duplicate_declaration_error_from_c_struct((HERB_STATE_DUPLICATE_DECLARATION_ERROR_T*) error); break;
|
|
949
1310
|
case VOID_ELEMENT_CONTENT_ERROR: return rb_void_element_content_error_from_c_struct((VOID_ELEMENT_CONTENT_ERROR_T*) error); break;
|
|
950
1311
|
case DOT_NOTATION_CASING_ERROR: return rb_dot_notation_casing_error_from_c_struct((DOT_NOTATION_CASING_ERROR_T*) error); break;
|
|
1312
|
+
case TIMEOUT_ERROR: return rb_timeout_error_from_c_struct((TIMEOUT_ERROR_T*) error); break;
|
|
951
1313
|
}
|
|
952
1314
|
|
|
953
1315
|
return Qnil;
|
data/ext/herb/error_helpers.h
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// NOTE: This file is generated by the templates/template.rb script and should not
|
|
2
|
-
// be modified manually. See
|
|
2
|
+
// be modified manually. See templates/ext/herb/error_helpers.h.erb
|
|
3
3
|
|
|
4
4
|
#ifndef HERB_EXTENSION_ERROR_HELPERS_H
|
|
5
5
|
#define HERB_EXTENSION_ERROR_HELPERS_H
|
data/ext/herb/extconf.rb
CHANGED
|
@@ -7,7 +7,6 @@ extension_name = "herb"
|
|
|
7
7
|
|
|
8
8
|
if Herb::Bootstrap.git_source? && !Herb::Bootstrap.templates_generated?
|
|
9
9
|
puts "Building from source — running bootstrap..."
|
|
10
|
-
Herb::Bootstrap.generate_templates
|
|
11
10
|
|
|
12
11
|
unless Herb::Bootstrap.prism_vendored?
|
|
13
12
|
prism_path = Herb::Bootstrap.find_prism_gem_path
|
|
@@ -30,6 +29,8 @@ if Herb::Bootstrap.git_source? && !Herb::Bootstrap.templates_generated?
|
|
|
30
29
|
Herb::Bootstrap.vendor_prism(prism_gem_path: prism_path)
|
|
31
30
|
end
|
|
32
31
|
|
|
32
|
+
Herb::Bootstrap.generate_templates
|
|
33
|
+
|
|
33
34
|
root_path = Herb::Bootstrap::ROOT_PATH
|
|
34
35
|
sha = `git -C #{root_path} rev-parse --short HEAD 2>/dev/null`.strip
|
|
35
36
|
|
|
@@ -101,7 +102,8 @@ core_src_files = [
|
|
|
101
102
|
"extension.c",
|
|
102
103
|
"nodes.c",
|
|
103
104
|
"error_helpers.c",
|
|
104
|
-
"extension_helpers.c"
|
|
105
|
+
"extension_helpers.c",
|
|
106
|
+
"parser_options_helpers.c"
|
|
105
107
|
]
|
|
106
108
|
|
|
107
109
|
$srcs = core_src_files + herb_src_files + prism_main_files + prism_util_files
|