herb 0.10.4 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +16 -6
- data/README.md +36 -119
- data/Rakefile +2 -11
- data/config/action_view_helpers/actioncable/action_cable_helper/action_cable_meta_tag.yml +12 -8
- data/config/action_view_helpers/actionpack/content_security_policy/content_security_policy?.yml +9 -6
- data/config/action_view_helpers/actionpack/content_security_policy/content_security_policy_nonce.yml +9 -6
- data/config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_path.yml +20 -12
- data/config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_url.yml +30 -18
- data/config/action_view_helpers/actionpack/request_forgery_protection/form_authenticity_token.yml +15 -9
- data/config/action_view_helpers/actionpack/request_forgery_protection/protect_against_forgery?.yml +9 -6
- data/config/action_view_helpers/actiontext/content_helper/render_action_text_content.yml +15 -9
- data/config/action_view_helpers/actiontext/content_helper/sanitize_action_text_content.yml +15 -9
- data/config/action_view_helpers/actiontext/tag_helper/rich_textarea_tag.yml +34 -22
- data/config/action_view_helpers/actionview/active_model_helper/error_message.yml +9 -6
- data/config/action_view_helpers/actionview/active_model_helper/error_wrapping.yml +9 -6
- data/config/action_view_helpers/actionview/active_model_helper/object.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/apply_stylesheet_media_default.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/audio_tag.yml +40 -27
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_discovery_link_tag.yml +37 -23
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_scripts.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_styles.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/favicon_link_tag.yml +32 -22
- data/config/action_view_helpers/actionview/asset_tag_helper/image_decoding.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/image_loading.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/image_tag.yml +67 -46
- data/config/action_view_helpers/actionview/asset_tag_helper/javascript_include_tag.yml +58 -39
- data/config/action_view_helpers/actionview/asset_tag_helper/picture_tag.yml +22 -14
- data/config/action_view_helpers/actionview/asset_tag_helper/preload_link_tag.yml +45 -30
- data/config/action_view_helpers/actionview/asset_tag_helper/preload_links_header.yml +9 -6
- data/config/action_view_helpers/actionview/asset_tag_helper/stylesheet_link_tag.yml +49 -30
- data/config/action_view_helpers/actionview/asset_tag_helper/video_tag.yml +53 -35
- data/config/action_view_helpers/actionview/asset_url_helper/asset_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/asset_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/audio_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/audio_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_extname.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_host.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_path.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/font_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/font_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/image_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/image_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/javascript_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/javascript_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/public_compute_asset_path.yml +9 -6
- data/config/action_view_helpers/actionview/asset_url_helper/stylesheet_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/stylesheet_url.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/video_path.yml +16 -10
- data/config/action_view_helpers/actionview/asset_url_helper/video_url.yml +16 -10
- data/config/action_view_helpers/actionview/atom_feed_helper/atom_feed.yml +52 -27
- data/config/action_view_helpers/actionview/cache_helper/cache.yml +25 -15
- data/config/action_view_helpers/actionview/cache_helper/cache_fragment_name.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/cache_if.yml +20 -12
- data/config/action_view_helpers/actionview/cache_helper/cache_unless.yml +20 -12
- data/config/action_view_helpers/actionview/cache_helper/caching_predicate.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/digest_path_from_template.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/fragment_for.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/fragment_name_with_digest.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/read_fragment_for.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/uncacheable.yml +9 -6
- data/config/action_view_helpers/actionview/cache_helper/write_fragment_for.yml +9 -6
- data/config/action_view_helpers/actionview/capture_helper/capture.yml +9 -6
- data/config/action_view_helpers/actionview/capture_helper/content_for.yml +20 -12
- data/config/action_view_helpers/actionview/capture_helper/content_for_predicate.yml +15 -9
- data/config/action_view_helpers/actionview/capture_helper/provide.yml +15 -9
- data/config/action_view_helpers/actionview/capture_helper/with_output_buffer.yml +9 -6
- data/config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prepend_content_exfiltration_prevention.yml +9 -6
- data/config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prevent_content_exfiltration.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/action_name.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/assign_controller.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/controller.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/controller_name.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/controller_path.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/cookies.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/flash.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/headers.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/logger.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/params.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/request.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/request_forgery_protection_token.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/response.yml +9 -6
- data/config/action_view_helpers/actionview/controller_helper/session.yml +9 -6
- data/config/action_view_helpers/actionview/csp_helper/csp_meta_tag.yml +18 -11
- data/config/action_view_helpers/actionview/csrf_helper/csrf_meta_tags.yml +16 -10
- data/config/action_view_helpers/actionview/date_helper/date_select.yml +85 -51
- data/config/action_view_helpers/actionview/date_helper/datetime_select.yml +65 -39
- data/config/action_view_helpers/actionview/date_helper/distance_of_time_in_words.yml +30 -18
- data/config/action_view_helpers/actionview/date_helper/relative_time_in_words.yml +35 -21
- data/config/action_view_helpers/actionview/date_helper/select_date.yml +50 -30
- data/config/action_view_helpers/actionview/date_helper/select_datetime.yml +65 -39
- data/config/action_view_helpers/actionview/date_helper/select_day.yml +40 -24
- data/config/action_view_helpers/actionview/date_helper/select_hour.yml +50 -30
- data/config/action_view_helpers/actionview/date_helper/select_minute.yml +40 -24
- data/config/action_view_helpers/actionview/date_helper/select_month.yml +60 -36
- data/config/action_view_helpers/actionview/date_helper/select_second.yml +35 -21
- data/config/action_view_helpers/actionview/date_helper/select_time.yml +55 -33
- data/config/action_view_helpers/actionview/date_helper/select_year.yml +45 -27
- data/config/action_view_helpers/actionview/date_helper/time_ago_in_words.yml +21 -13
- data/config/action_view_helpers/actionview/date_helper/time_select.yml +60 -36
- data/config/action_view_helpers/actionview/date_helper/time_tag.yml +32 -20
- data/config/action_view_helpers/actionview/debug_helper/debug.yml +15 -9
- data/config/action_view_helpers/actionview/form_builder/button.yml +60 -0
- data/config/action_view_helpers/actionview/form_builder/submit.yml +48 -0
- data/config/action_view_helpers/actionview/form_helper/apply_form_for_options.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/checkbox.yml +41 -25
- data/config/action_view_helpers/actionview/form_helper/color_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/date_field.yml +35 -21
- data/config/action_view_helpers/actionview/form_helper/datetime_field.yml +41 -25
- data/config/action_view_helpers/actionview/form_helper/email_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/emitted_hidden_id.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/fields.yml +37 -18
- data/config/action_view_helpers/actionview/form_helper/fields_for.yml +33 -15
- data/config/action_view_helpers/actionview/form_helper/file_field.yml +45 -27
- data/config/action_view_helpers/actionview/form_helper/form_for.yml +45 -24
- data/config/action_view_helpers/actionview/form_helper/form_with.yml +56 -30
- data/config/action_view_helpers/actionview/form_helper/form_with_generates_ids.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/form_with_generates_remote_forms.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/hidden_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/label.yml +52 -27
- data/config/action_view_helpers/actionview/form_helper/month_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/multipart.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/multiple_file_field_include_hidden.yml +9 -6
- data/config/action_view_helpers/actionview/form_helper/number_field.yml +45 -27
- data/config/action_view_helpers/actionview/form_helper/password_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/radio_button.yml +30 -18
- data/config/action_view_helpers/actionview/form_helper/range_field.yml +45 -27
- data/config/action_view_helpers/actionview/form_helper/search_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/telephone_field.yml +26 -16
- data/config/action_view_helpers/actionview/form_helper/text_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/textarea.yml +31 -19
- data/config/action_view_helpers/actionview/form_helper/time_field.yml +40 -24
- data/config/action_view_helpers/actionview/form_helper/url_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_helper/week_field.yml +25 -15
- data/config/action_view_helpers/actionview/form_options_helper/collection_checkboxes.yml +58 -31
- data/config/action_view_helpers/actionview/form_options_helper/collection_radio_buttons.yml +57 -30
- data/config/action_view_helpers/actionview/form_options_helper/collection_select.yml +65 -39
- data/config/action_view_helpers/actionview/form_options_helper/grouped_collection_select.yml +65 -39
- data/config/action_view_helpers/actionview/form_options_helper/grouped_options_for_select.yml +35 -21
- data/config/action_view_helpers/actionview/form_options_helper/option_groups_from_collection_for_select.yml +40 -24
- data/config/action_view_helpers/actionview/form_options_helper/options_for_select.yml +20 -12
- data/config/action_view_helpers/actionview/form_options_helper/options_from_collection_for_select.yml +30 -18
- data/config/action_view_helpers/actionview/form_options_helper/select.yml +60 -36
- data/config/action_view_helpers/actionview/form_options_helper/time_zone_options_for_select.yml +25 -15
- data/config/action_view_helpers/actionview/form_options_helper/time_zone_select.yml +50 -30
- data/config/action_view_helpers/actionview/form_options_helper/weekday_options_for_select.yml +30 -18
- data/config/action_view_helpers/actionview/form_options_helper/weekday_select.yml +30 -18
- data/config/action_view_helpers/actionview/form_tag_helper/button_tag.yml +39 -21
- data/config/action_view_helpers/actionview/form_tag_helper/checkbox_tag.yml +33 -21
- data/config/action_view_helpers/actionview/form_tag_helper/color_field_tag.yml +26 -17
- data/config/action_view_helpers/actionview/form_tag_helper/date_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/datetime_field_tag.yml +28 -18
- data/config/action_view_helpers/actionview/form_tag_helper/default_enforce_utf8.yml +9 -6
- data/config/action_view_helpers/actionview/form_tag_helper/email_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/embed_authenticity_token_in_remote_forms.yml +9 -6
- data/config/action_view_helpers/actionview/form_tag_helper/field_id.yml +30 -18
- data/config/action_view_helpers/actionview/form_tag_helper/field_name.yml +30 -18
- data/config/action_view_helpers/actionview/form_tag_helper/field_set_tag.yml +23 -15
- data/config/action_view_helpers/actionview/form_tag_helper/file_field_tag.yml +35 -22
- data/config/action_view_helpers/actionview/form_tag_helper/form_tag.yml +38 -24
- data/config/action_view_helpers/actionview/form_tag_helper/hidden_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/image_submit_tag.yml +31 -21
- data/config/action_view_helpers/actionview/form_tag_helper/label_tag.yml +33 -17
- data/config/action_view_helpers/actionview/form_tag_helper/month_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/number_field_tag.yml +47 -29
- data/config/action_view_helpers/actionview/form_tag_helper/password_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/radio_button_tag.yml +32 -20
- data/config/action_view_helpers/actionview/form_tag_helper/range_field_tag.yml +47 -29
- data/config/action_view_helpers/actionview/form_tag_helper/search_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/select_tag.yml +47 -29
- data/config/action_view_helpers/actionview/form_tag_helper/submit_tag.yml +33 -21
- data/config/action_view_helpers/actionview/form_tag_helper/telephone_field_tag.yml +28 -18
- data/config/action_view_helpers/actionview/form_tag_helper/text_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/textarea_tag.yml +31 -20
- data/config/action_view_helpers/actionview/form_tag_helper/time_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/url_field_tag.yml +27 -17
- data/config/action_view_helpers/actionview/form_tag_helper/utf8_enforcer_tag.yml +9 -6
- data/config/action_view_helpers/actionview/form_tag_helper/week_field_tag.yml +28 -18
- data/config/action_view_helpers/actionview/javascript_helper/escape_javascript.yml +16 -10
- data/config/action_view_helpers/actionview/javascript_helper/javascript_cdata_section.yml +9 -6
- data/config/action_view_helpers/actionview/javascript_helper/javascript_tag.yml +41 -27
- data/config/action_view_helpers/actionview/number_helper/number_to_currency.yml +29 -18
- data/config/action_view_helpers/actionview/number_helper/number_to_human.yml +25 -15
- data/config/action_view_helpers/actionview/number_helper/number_to_human_size.yml +20 -12
- data/config/action_view_helpers/actionview/number_helper/number_to_percentage.yml +20 -12
- data/config/action_view_helpers/actionview/number_helper/number_to_phone.yml +33 -20
- data/config/action_view_helpers/actionview/number_helper/number_with_delimiter.yml +21 -13
- data/config/action_view_helpers/actionview/number_helper/number_with_precision.yml +25 -15
- data/config/action_view_helpers/actionview/output_safety_helper/raw.yml +15 -9
- data/config/action_view_helpers/actionview/output_safety_helper/safe_join.yml +20 -12
- data/config/action_view_helpers/actionview/output_safety_helper/to_sentence.yml +24 -15
- data/config/action_view_helpers/actionview/record_identifier/dom_class.yml +20 -12
- data/config/action_view_helpers/actionview/record_identifier/dom_id.yml +20 -12
- data/config/action_view_helpers/actionview/record_identifier/dom_target.yml +15 -9
- data/config/action_view_helpers/actionview/record_identifier/model_name_from_record_or_class.yml +9 -6
- data/config/action_view_helpers/actionview/rendering_helper/render.yml +108 -22
- data/config/action_view_helpers/actionview/sanitize_helper/sanitize.yml +25 -15
- data/config/action_view_helpers/actionview/sanitize_helper/sanitize_css.yml +15 -9
- data/config/action_view_helpers/actionview/sanitize_helper/sanitizer_vendor.yml +9 -6
- data/config/action_view_helpers/actionview/sanitize_helper/strip_links.yml +15 -9
- data/config/action_view_helpers/actionview/sanitize_helper/strip_tags.yml +15 -9
- data/config/action_view_helpers/actionview/tag_helper/cdata_section.yml +15 -9
- data/config/action_view_helpers/actionview/tag_helper/content_tag.yml +59 -38
- data/config/action_view_helpers/actionview/tag_helper/escape_once.yml +15 -9
- data/config/action_view_helpers/actionview/tag_helper/tag.yml +54 -31
- data/config/action_view_helpers/actionview/tag_helper/token_list.yml +16 -10
- data/config/action_view_helpers/actionview/text_helper/concat.yml +15 -9
- data/config/action_view_helpers/actionview/text_helper/current_cycle.yml +15 -9
- data/config/action_view_helpers/actionview/text_helper/cycle.yml +23 -14
- data/config/action_view_helpers/actionview/text_helper/excerpt.yml +33 -20
- data/config/action_view_helpers/actionview/text_helper/highlight.yml +37 -18
- data/config/action_view_helpers/actionview/text_helper/pluralize.yml +30 -18
- data/config/action_view_helpers/actionview/text_helper/reset_cycle.yml +15 -9
- data/config/action_view_helpers/actionview/text_helper/safe_concat.yml +9 -6
- data/config/action_view_helpers/actionview/text_helper/simple_format.yml +33 -20
- data/config/action_view_helpers/actionview/text_helper/truncate.yml +38 -23
- data/config/action_view_helpers/actionview/text_helper/word_wrap.yml +25 -15
- data/config/action_view_helpers/actionview/translation_helper/debug_missing_translation.yml +9 -6
- data/config/action_view_helpers/actionview/translation_helper/localize.yml +26 -16
- data/config/action_view_helpers/actionview/translation_helper/translate.yml +31 -19
- data/config/action_view_helpers/actionview/url_helper/button_to.yml +57 -33
- data/config/action_view_helpers/actionview/url_helper/button_to_generates_button_tag.yml +9 -6
- data/config/action_view_helpers/actionview/url_helper/current_page?.yml +25 -15
- data/config/action_view_helpers/actionview/url_helper/link_to.yml +76 -53
- data/config/action_view_helpers/actionview/url_helper/link_to_if.yml +54 -20
- data/config/action_view_helpers/actionview/url_helper/link_to_unless.yml +54 -20
- data/config/action_view_helpers/actionview/url_helper/link_to_unless_current.yml +49 -17
- data/config/action_view_helpers/actionview/url_helper/mail_to.yml +60 -34
- data/config/action_view_helpers/actionview/url_helper/phone_to.yml +40 -22
- data/config/action_view_helpers/actionview/url_helper/sms_to.yml +45 -25
- data/config/action_view_helpers/actionview/url_helper/url_for.yml +15 -9
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_import_module_tag.yml +32 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_importmap_module_preload_tags.yml +39 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_importmap_tags.yml +35 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_inline_importmap_tag.yml +32 -0
- data/config/action_view_helpers/importmap-rails/importmap_tags_helper/javascript_module_preload_tag.yml +35 -0
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache.yml +9 -6
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache_tag.yml +12 -8
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview.yml +9 -6
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview_tag.yml +12 -8
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload.yml +9 -6
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload_tag.yml +12 -8
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_method_tag.yml +17 -11
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_scroll_tag.yml +17 -11
- data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refreshes_with.yml +20 -12
- data/config/action_view_helpers/turbo-rails/frames_helper/turbo_frame_tag.yml +54 -33
- data/config/action_view_helpers/turbo-rails/includes_helper/turbo_include_tags.yml +9 -6
- data/config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_action_tag.yml +32 -20
- data/config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_refresh_tag.yml +18 -11
- data/config/action_view_helpers/turbo-rails/streams_helper/turbo_stream.yml +9 -6
- data/config/action_view_helpers/turbo-rails/streams_helper/turbo_stream_from.yml +28 -18
- data/config/html_elements.yml +597 -0
- data/config/options.yml +1 -0
- data/config/slots/components.yml +52 -0
- data/config/state/kind.yml +61 -0
- data/config/state/operators.yml +27 -0
- data/config/state/predicates.yml +39 -0
- data/config/state/transforms.yml +18 -0
- data/config/view_context_methods/actionview/base/annotate_rendered_view_with_filenames.yml +4 -4
- data/config/view_context_methods/actionview/base/assign.yml +4 -4
- data/config/view_context_methods/actionview/base/assigns.yml +4 -4
- data/config/view_context_methods/actionview/base/automatically_disable_submit_tag.yml +4 -4
- data/config/view_context_methods/actionview/base/compiled_method_container.yml +4 -4
- data/config/view_context_methods/actionview/base/config.yml +4 -4
- data/config/view_context_methods/actionview/base/default_form_builder.yml +4 -4
- data/config/view_context_methods/actionview/base/default_formats.yml +4 -4
- data/config/view_context_methods/actionview/base/field_error_proc.yml +4 -4
- data/config/view_context_methods/actionview/base/formats.yml +4 -4
- data/config/view_context_methods/actionview/base/in_rendering_context.yml +4 -4
- data/config/view_context_methods/actionview/base/locale.yml +4 -4
- data/config/view_context_methods/actionview/base/lookup_context.yml +4 -4
- data/config/view_context_methods/actionview/base/output_buffer.yml +4 -4
- data/config/view_context_methods/actionview/base/prefix_partial_path_with_controller_namespace.yml +4 -4
- data/config/view_context_methods/actionview/base/remove_hidden_field_autocomplete.yml +4 -4
- data/config/view_context_methods/actionview/base/streaming_completion_on_exception.yml +4 -4
- data/config/view_context_methods/actionview/base/view_flow.yml +4 -4
- data/config/view_context_methods/actionview/base/view_paths.yml +4 -4
- data/config/view_context_methods/actionview/base/view_renderer.yml +4 -4
- data/config/view_context_methods/actionview/template/local_assigns.yml +4 -4
- data/config/view_context_methods/activemodel/conversion/convert_to_model.yml +4 -4
- data/config/view_context_methods/activesupport/benchmarkable/benchmark.yml +4 -4
- data/config.yml +1240 -790
- data/exe/herb +2 -0
- data/ext/herb/error_helpers.c +355 -17
- data/ext/herb/error_helpers.h +1 -1
- data/ext/herb/extconf.rb +4 -2
- data/ext/herb/extension.c +137 -89
- data/ext/herb/extension_helpers.c +81 -42
- data/ext/herb/extension_helpers.h +4 -1
- data/ext/herb/nodes.c +826 -358
- data/ext/herb/nodes.h +3 -2
- data/ext/herb/parser_options_helpers.c +151 -0
- data/ext/herb/parser_options_helpers.h +14 -0
- data/herb.gemspec +2 -2
- data/lib/herb/action_view/helper_registry.rb +1358 -62
- data/lib/herb/analysis/partial_declaration.rb +140 -0
- data/lib/herb/analysis/partial_index.rb +189 -0
- data/lib/herb/analysis/partial_resolution.rb +161 -0
- data/lib/herb/analysis/partial_resolver.rb +144 -0
- data/lib/herb/analysis/project_index.rb +152 -0
- data/lib/herb/{action_view → analysis}/render_analyzer.rb +287 -77
- data/lib/herb/analysis/render_graph/ancestor_chain.rb +27 -0
- data/lib/herb/analysis/render_graph/builder.rb +376 -0
- data/lib/herb/analysis/render_graph/call_frame.rb +9 -0
- data/lib/herb/analysis/render_graph/call_site_location.rb +23 -0
- data/lib/herb/analysis/render_graph/inferred_signature.rb +21 -0
- data/lib/herb/analysis/render_graph/partial_call_site.rb +40 -0
- data/lib/herb/analysis/render_graph/partial_context.rb +46 -0
- data/lib/herb/analysis/render_graph/template_roots.rb +31 -0
- data/lib/herb/analysis/render_graph.rb +285 -0
- data/lib/herb/analysis/ruby_locals_index/local.rb +25 -0
- data/lib/herb/analysis/ruby_locals_index/named_reference.rb +22 -0
- data/lib/herb/analysis/ruby_locals_index/offset_table.rb +44 -0
- data/lib/herb/analysis/ruby_locals_index/reference_collector.rb +80 -0
- data/lib/herb/analysis/ruby_locals_index/state_locals.rb +49 -0
- data/lib/herb/analysis/ruby_locals_index.rb +165 -0
- data/lib/herb/analysis/ruby_reference.rb +67 -0
- data/lib/herb/analysis/template_dependencies/dependency_collector.rb +179 -0
- data/lib/herb/analysis/template_dependencies/node_dependency_collector.rb +309 -0
- data/lib/herb/analysis/template_dependencies.rb +562 -0
- data/lib/herb/ast/erb_render_node.rb +26 -94
- data/lib/herb/ast/helpers.rb +90 -10
- data/lib/herb/ast/herb_directive_node.rb +18 -0
- data/lib/herb/ast/node.rb +32 -2
- data/lib/herb/ast/nodes.rb +1342 -105
- data/lib/herb/backend.rb +73 -0
- data/lib/herb/bootstrap.rb +3 -7
- data/lib/herb/cli.rb +550 -32
- data/lib/herb/colors.rb +14 -0
- data/lib/herb/configuration.rb +71 -35
- data/lib/herb/defaults.yml +2 -1
- data/lib/herb/dev/assets.rb +57 -0
- data/lib/herb/dev/classifier.rb +84 -0
- data/lib/herb/dev/embedded.rb +27 -0
- data/lib/herb/dev/pipeline.rb +305 -0
- data/lib/herb/dev/protocol.rb +221 -0
- data/lib/herb/dev/runner.rb +175 -175
- data/lib/herb/dev/server.rb +89 -26
- data/lib/herb/dev/server_entry.rb +41 -6
- data/lib/herb/dev/watcher.rb +181 -0
- data/lib/herb/dev.rb +163 -0
- data/lib/herb/diagnostic/formatter.rb +88 -0
- data/lib/herb/diagnostic.rb +172 -0
- data/lib/herb/diff/operation.rb +36 -0
- data/lib/herb/diff/result.rb +62 -0
- data/lib/herb/diff.rb +10 -0
- data/lib/herb/engine/collector.rb +62 -0
- data/lib/herb/engine/compiler.rb +346 -108
- data/lib/herb/engine/component_tags/constant_resolver.rb +28 -0
- data/lib/herb/engine/component_tags/partial_resolver.rb +54 -0
- data/lib/herb/engine/component_tags/resolver.rb +32 -0
- data/lib/herb/engine/component_tags/visitor.rb +231 -0
- data/lib/herb/engine/css_inliner/inliner.rb +101 -0
- data/lib/herb/engine/css_inliner/visitor.rb +174 -0
- data/lib/herb/engine/errors.rb +122 -0
- data/lib/herb/engine/helpers.rb +82 -0
- data/lib/herb/engine/inline_render/inliner.rb +122 -0
- data/lib/herb/engine/inline_render/visitor.rb +267 -0
- data/lib/herb/engine/runtime/entry.rb +62 -0
- data/lib/herb/engine/runtime/error_page.rb +362 -0
- data/lib/herb/engine/runtime/html_safe_assertions.rb +217 -0
- data/lib/herb/engine/runtime/journal/summary.rb +227 -0
- data/lib/herb/engine/runtime/journal.rb +379 -0
- data/lib/herb/engine/runtime/middleware.rb +212 -0
- data/lib/herb/engine/runtime/observations.rb +73 -0
- data/lib/herb/engine/runtime/report.rb +204 -0
- data/lib/herb/engine/runtime/session.rb +437 -0
- data/lib/herb/engine/runtime.rb +21 -0
- data/lib/herb/engine/scoped_style/channel.rb +66 -0
- data/lib/herb/engine/scoped_style/collector.rb +74 -0
- data/lib/herb/engine/scoped_style/visitor.rb +533 -0
- data/lib/herb/engine/slots/annotation.rb +98 -0
- data/lib/herb/engine/slots/bindings.rb +61 -0
- data/lib/herb/engine/slots/callee.rb +118 -0
- data/lib/herb/engine/slots/component_definitions.rb +67 -0
- data/lib/herb/engine/slots/components/async.rb +24 -0
- data/lib/herb/engine/slots/components/base.rb +132 -0
- data/lib/herb/engine/slots/components/deferred.rb +81 -0
- data/lib/herb/engine/slots/components/fallback.rb +27 -0
- data/lib/herb/engine/slots/components/fragment.rb +99 -0
- data/lib/herb/engine/slots/components/lazy.rb +24 -0
- data/lib/herb/engine/slots/components.rb +52 -0
- data/lib/herb/engine/slots/dependencies/channel.rb +72 -0
- data/lib/herb/engine/slots/dependencies.rb +269 -0
- data/lib/herb/engine/slots/dynamics_compiler.rb +854 -0
- data/lib/herb/engine/slots/identifier.rb +35 -0
- data/lib/herb/engine/slots/manifest/channel.rb +74 -0
- data/lib/herb/engine/slots/manifest/collector.rb +75 -0
- data/lib/herb/engine/slots/markers.rb +128 -0
- data/lib/herb/engine/slots/render_bindings.rb +141 -0
- data/lib/herb/engine/slots/schema_compiler.rb +94 -0
- data/lib/herb/engine/slots/state_anchor.rb +94 -0
- data/lib/herb/engine/slots/state_compiler.rb +1326 -0
- data/lib/herb/engine/slots/state_directives.rb +854 -0
- data/lib/herb/engine/slots/state_kinds.rb +54 -0
- data/lib/herb/engine/slots/state_operators.rb +36 -0
- data/lib/herb/engine/slots/state_overrides.rb +79 -0
- data/lib/herb/engine/slots/state_predicates.rb +65 -0
- data/lib/herb/engine/slots/state_transforms.rb +42 -0
- data/lib/herb/engine/slots/statics.rb +185 -0
- data/lib/herb/engine/slots/subtree.rb +82 -0
- data/lib/herb/engine/slots/subtree_compiler.rb +255 -0
- data/lib/herb/engine/slots/types.rb +42 -0
- data/lib/herb/engine/slots/visitor.rb +2256 -0
- data/lib/herb/engine/validators/accessibility_validator.rb +3 -3
- data/lib/herb/engine/validators/base.rb +36 -0
- data/lib/herb/engine/validators/generator_template_validator.rb +39 -0
- data/lib/herb/engine/validators/nesting_validator.rb +3 -3
- data/lib/herb/engine/validators/render_validator.rb +13 -33
- data/lib/herb/engine/validators/security_validator.rb +3 -17
- data/lib/herb/engine/validators.rb +43 -0
- data/lib/herb/engine/visitors/auto_close_omitted_tags_visitor.rb +48 -0
- data/lib/herb/engine/visitors/content_for_visitor.rb +127 -0
- data/lib/herb/engine/{debug_visitor.rb → visitors/debug_visitor.rb} +121 -93
- data/lib/herb/engine/visitors/html_safe_assertions_visitor.rb +281 -0
- data/lib/herb/engine/visitors/instrumentation_visitor.rb +290 -0
- data/lib/herb/engine/visitors/optimize_visitor.rb +728 -0
- data/lib/herb/engine/visitors/remove_comments_visitor.rb +106 -0
- data/lib/herb/engine/visitors/source_attribution_visitor.rb +177 -0
- data/lib/herb/engine.rb +218 -257
- data/lib/herb/ensure_installed.rb +43 -0
- data/lib/herb/errors.rb +646 -157
- data/lib/herb/fingerprint.rb +82 -0
- data/lib/herb/html/elements.rb +18 -0
- data/lib/herb/html/util.rb +21 -2
- data/lib/herb/lex_result.rb +0 -10
- data/lib/herb/locate.rb +163 -0
- data/lib/herb/location.rb +20 -0
- data/lib/herb/parse_result.rb +17 -11
- data/lib/herb/parser_options.rb +65 -46
- data/lib/herb/position.rb +19 -0
- data/lib/herb/prism_inspect.rb +1 -4
- data/lib/herb/project.rb +28 -15
- data/lib/herb/range.rb +5 -0
- data/lib/herb/result.rb +2 -2
- data/lib/herb/ruby_program.rb +110 -0
- data/lib/herb/source_path.rb +232 -0
- data/lib/herb/token.rb +14 -3
- data/lib/herb/version.rb +1 -1
- data/lib/herb/visitor/context/origin.rb +52 -0
- data/lib/herb/visitor/context/replacements.rb +59 -0
- data/lib/herb/visitor/context.rb +169 -0
- data/lib/herb/visitor/context_aware.rb +45 -0
- data/lib/herb/visitor/diagnostics.rb +148 -0
- data/lib/herb/visitor/experimental.rb +33 -0
- data/lib/herb/visitor/parser_option_requirements.rb +151 -0
- data/lib/herb/visitor/stack.rb +192 -0
- data/lib/herb/visitor.rb +47 -1
- data/lib/herb/warnings.rb +25 -0
- data/lib/herb.rb +74 -63
- data/sig/herb/action_view/helper_registry.rbs +82 -10
- data/sig/herb/analysis/partial_declaration.rbs +80 -0
- data/sig/herb/analysis/partial_index.rbs +66 -0
- data/sig/herb/analysis/partial_resolution.rbs +57 -0
- data/sig/herb/analysis/partial_resolver.rbs +76 -0
- data/sig/herb/analysis/project_index.rbs +57 -0
- data/sig/herb/{action_view → analysis}/render_analyzer.rbs +25 -4
- data/sig/herb/analysis/render_graph/ancestor_chain.rbs +22 -0
- data/sig/herb/analysis/render_graph/builder.rbs +180 -0
- data/sig/herb/analysis/render_graph/call_frame.rbs +26 -0
- data/sig/herb/analysis/render_graph/call_site_location.rbs +28 -0
- data/sig/herb/analysis/render_graph/inferred_signature.rbs +27 -0
- data/sig/herb/analysis/render_graph/partial_call_site.rbs +36 -0
- data/sig/herb/analysis/render_graph/partial_context.rbs +31 -0
- data/sig/herb/analysis/render_graph/template_roots.rbs +32 -0
- data/sig/herb/analysis/render_graph.rbs +83 -0
- data/sig/herb/analysis/ruby_locals_index/local.rbs +21 -0
- data/sig/herb/analysis/ruby_locals_index/named_reference.rbs +20 -0
- data/sig/herb/analysis/ruby_locals_index/offset_table.rbs +26 -0
- data/sig/herb/analysis/ruby_locals_index/reference_collector.rbs +40 -0
- data/sig/herb/analysis/ruby_locals_index/state_locals.rbs +19 -0
- data/sig/herb/analysis/ruby_locals_index.rbs +62 -0
- data/sig/herb/analysis/ruby_reference.rbs +28 -0
- data/sig/herb/analysis/template_dependencies/dependency_collector.rbs +52 -0
- data/sig/herb/analysis/template_dependencies/node_dependency_collector.rbs +81 -0
- data/sig/herb/analysis/template_dependencies.rbs +125 -0
- data/sig/herb/ast/erb_render_node.rbs +10 -2
- data/sig/herb/ast/helpers.rbs +31 -1
- data/sig/herb/ast/herb_directive_node.rbs +13 -0
- data/sig/herb/ast/node.rbs +9 -0
- data/sig/herb/ast/nodes.rbs +662 -89
- data/sig/herb/backend.rbs +52 -0
- data/sig/herb/colors.rbs +3 -0
- data/sig/herb/configuration.rbs +27 -3
- data/sig/herb/dev/assets.rbs +27 -0
- data/sig/herb/dev/classifier.rbs +57 -0
- data/sig/herb/dev/embedded.rbs +21 -0
- data/sig/herb/dev/pipeline.rbs +118 -0
- data/sig/herb/dev/protocol.rbs +78 -0
- data/sig/herb/dev/runner.rbs +61 -23
- data/sig/herb/dev/server.rbs +49 -22
- data/sig/herb/dev/server_entry.rbs +46 -21
- data/sig/herb/dev/watcher.rbs +84 -0
- data/sig/herb/dev.rbs +58 -0
- data/sig/herb/diagnostic/formatter.rbs +28 -0
- data/sig/herb/diagnostic.rbs +88 -0
- data/sig/herb/diff/operation.rbs +36 -0
- data/sig/herb/diff/result.rbs +36 -0
- data/sig/herb/diff.rbs +6 -0
- data/sig/herb/engine/collector.rbs +48 -0
- data/sig/herb/engine/compiler.rbs +62 -23
- data/sig/herb/engine/component_tags/constant_resolver.rbs +19 -0
- data/sig/herb/engine/component_tags/partial_resolver.rbs +30 -0
- data/sig/herb/engine/component_tags/resolver.rbs +25 -0
- data/sig/herb/engine/component_tags/visitor.rbs +69 -0
- data/sig/herb/engine/css_inliner/inliner.rbs +65 -0
- data/sig/herb/engine/css_inliner/visitor.rbs +87 -0
- data/sig/herb/engine/errors.rbs +68 -0
- data/sig/herb/engine/helpers.rbs +28 -0
- data/sig/herb/engine/inline_render/inliner.rbs +39 -0
- data/sig/herb/engine/inline_render/visitor.rbs +104 -0
- data/sig/herb/engine/runtime/entry.rbs +43 -0
- data/sig/herb/engine/runtime/error_page.rbs +115 -0
- data/sig/herb/engine/runtime/html_safe_assertions.rbs +99 -0
- data/sig/herb/engine/runtime/journal/summary.rbs +172 -0
- data/sig/herb/engine/runtime/journal.rbs +126 -0
- data/sig/herb/engine/runtime/middleware.rbs +96 -0
- data/sig/herb/engine/runtime/observations.rbs +38 -0
- data/sig/herb/engine/runtime/report.rbs +97 -0
- data/sig/herb/engine/runtime/session.rbs +233 -0
- data/sig/herb/engine/runtime.rbs +14 -0
- data/sig/herb/engine/scoped_style/channel.rbs +45 -0
- data/sig/herb/engine/scoped_style/collector.rbs +45 -0
- data/sig/herb/engine/scoped_style/visitor.rbs +220 -0
- data/sig/herb/engine/slots/annotation.rbs +72 -0
- data/sig/herb/engine/slots/bindings.rbs +34 -0
- data/sig/herb/engine/slots/callee.rbs +62 -0
- data/sig/herb/engine/slots/component_definitions.rbs +19 -0
- data/sig/herb/engine/slots/components/async.rbs +20 -0
- data/sig/herb/engine/slots/components/base.rbs +60 -0
- data/sig/herb/engine/slots/components/deferred.rbs +29 -0
- data/sig/herb/engine/slots/components/fallback.rbs +21 -0
- data/sig/herb/engine/slots/components/fragment.rbs +34 -0
- data/sig/herb/engine/slots/components/lazy.rbs +20 -0
- data/sig/herb/engine/slots/components.rbs +30 -0
- data/sig/herb/engine/slots/dependencies/channel.rbs +51 -0
- data/sig/herb/engine/slots/dependencies.rbs +94 -0
- data/sig/herb/engine/slots/dynamics_compiler.rbs +349 -0
- data/sig/herb/engine/slots/identifier.rbs +19 -0
- data/sig/herb/engine/slots/manifest/channel.rbs +49 -0
- data/sig/herb/engine/slots/manifest/collector.rbs +45 -0
- data/sig/herb/engine/slots/markers.rbs +85 -0
- data/sig/herb/engine/slots/render_bindings.rbs +69 -0
- data/sig/herb/engine/slots/schema_compiler.rbs +62 -0
- data/sig/herb/engine/slots/state_anchor.rbs +41 -0
- data/sig/herb/engine/slots/state_compiler.rbs +258 -0
- data/sig/herb/engine/slots/state_directives.rbs +278 -0
- data/sig/herb/engine/slots/state_kinds.rbs +24 -0
- data/sig/herb/engine/slots/state_operators.rbs +19 -0
- data/sig/herb/engine/slots/state_overrides.rbs +33 -0
- data/sig/herb/engine/slots/state_predicates.rbs +16 -0
- data/sig/herb/engine/slots/state_transforms.rbs +15 -0
- data/sig/herb/engine/slots/statics.rbs +67 -0
- data/sig/herb/engine/slots/subtree.rbs +49 -0
- data/sig/herb/engine/slots/subtree_compiler.rbs +130 -0
- data/sig/herb/engine/slots/types.rbs +46 -0
- data/sig/herb/engine/slots/visitor.rbs +599 -0
- data/sig/herb/engine/validators/accessibility_validator.rbs +1 -1
- data/sig/herb/engine/validators/base.rbs +28 -0
- data/sig/herb/engine/validators/generator_template_validator.rbs +19 -0
- data/sig/herb/engine/validators/nesting_validator.rbs +1 -1
- data/sig/herb/engine/validators/render_validator.rbs +2 -6
- data/sig/herb/engine/validators/security_validator.rbs +1 -3
- data/sig/herb/engine/validators.rbs +21 -0
- data/sig/herb/engine/visitors/auto_close_omitted_tags_visitor.rbs +26 -0
- data/sig/herb/engine/visitors/content_for_visitor.rbs +52 -0
- data/sig/herb/engine/{debug_visitor.rbs → visitors/debug_visitor.rbs} +26 -15
- data/sig/herb/engine/visitors/html_safe_assertions_visitor.rbs +100 -0
- data/sig/herb/engine/visitors/instrumentation_visitor.rbs +111 -0
- data/sig/herb/engine/visitors/optimize_visitor.rbs +246 -0
- data/sig/herb/engine/visitors/remove_comments_visitor.rbs +66 -0
- data/sig/herb/engine/visitors/source_attribution_visitor.rbs +90 -0
- data/sig/herb/engine.rbs +47 -41
- data/sig/herb/ensure_installed.rbs +9 -0
- data/sig/herb/errors.rbs +293 -0
- data/sig/herb/fingerprint.rbs +37 -0
- data/sig/herb/html/elements.rbs +19 -0
- data/sig/herb/html/util.rbs +15 -1
- data/sig/herb/lex_result.rbs +0 -6
- data/sig/herb/locate.rbs +89 -0
- data/sig/herb/location.rbs +12 -0
- data/sig/herb/parse_result.rbs +10 -8
- data/sig/herb/parser_options.rbs +47 -21
- data/sig/herb/position.rbs +11 -0
- data/sig/herb/range.rbs +3 -0
- data/sig/herb/ruby_program.rbs +51 -0
- data/sig/herb/source_path.rbs +132 -0
- data/sig/herb/token.rbs +5 -2
- data/sig/herb/visitor/context/origin.rbs +51 -0
- data/sig/herb/visitor/context/replacements.rbs +39 -0
- data/sig/herb/visitor/context.rbs +83 -0
- data/sig/herb/visitor/context_aware.rbs +32 -0
- data/sig/herb/visitor/diagnostics.rbs +82 -0
- data/sig/herb/visitor/experimental.rbs +23 -0
- data/sig/herb/visitor/parser_option_requirements.rbs +76 -0
- data/sig/herb/visitor/stack.rbs +91 -0
- data/sig/herb/visitor.rbs +22 -0
- data/sig/herb/warnings.rbs +10 -0
- data/sig/herb.rbs +27 -10
- data/sig/serialized_ast_errors.rbs +58 -1
- data/sig/serialized_ast_nodes.rbs +58 -2
- data/src/analyze/action_view/attribute_extraction_helpers.c +73 -36
- data/src/analyze/action_view/generated_handlers.c +37 -1
- data/src/analyze/action_view/generated_handlers.h +2 -1
- data/src/analyze/action_view/helper_registry.c +1353 -58
- data/src/analyze/action_view/registry.c +10 -17
- data/src/analyze/action_view/stylesheet_link_tag.c +40 -0
- data/src/analyze/action_view/tag_helper_node_builders.c +57 -0
- data/src/analyze/action_view/tag_helpers.c +423 -93
- data/src/analyze/analyze.c +301 -64
- data/src/analyze/analyze_helpers.c +420 -23
- data/src/analyze/builders.c +79 -51
- data/src/analyze/conditional_elements.c +13 -8
- data/src/analyze/conditional_open_tags.c +11 -5
- data/src/analyze/control_type.c +16 -1
- data/src/analyze/herb_directives.c +701 -0
- data/src/analyze/invalid_structures.c +11 -7
- data/src/analyze/iteration_nodes.c +306 -0
- data/src/analyze/missing_end.c +116 -32
- data/src/analyze/parse_errors.c +8 -3
- data/src/analyze/postfix_conditionals.c +98 -63
- data/src/analyze/prism_annotate.c +13 -4
- data/src/analyze/render_nodes.c +345 -123
- data/src/analyze/strict_locals.c +30 -26
- data/src/analyze/ternary_conditionals.c +95 -70
- data/src/analyze/transform.c +43 -1
- data/src/ast/ast_node.c +3 -13
- data/src/ast/ast_nodes.c +911 -112
- data/src/ast/ast_pretty_print.c +161 -2
- data/src/diff/herb_diff.c +8 -0
- data/src/diff/herb_diff_attributes.c +1 -0
- data/src/diff/herb_diff_children.c +4 -3
- data/src/diff/herb_diff_helpers.c +7 -1
- data/src/diff/herb_diff_nodes.c +186 -71
- data/src/diff/herb_hash_tree.c +99 -1
- data/src/errors.c +1096 -128
- data/src/extract.c +30 -8
- data/src/herb.c +30 -11
- data/src/include/analyze/action_view/attribute_extraction_helpers.h +1 -1
- data/src/include/analyze/action_view/helper_registry.h +28 -4
- data/src/include/analyze/action_view/tag_helper_handler.h +1 -1
- data/src/include/analyze/action_view/tag_helper_node_builders.h +7 -0
- data/src/include/analyze/analyze.h +11 -0
- data/src/include/analyze/builders.h +16 -0
- data/src/include/analyze/helpers.h +23 -2
- data/src/include/analyze/herb_directive_kinds.h +41 -0
- data/src/include/analyze/herb_directives.h +14 -0
- data/src/include/analyze/iteration_nodes.h +11 -0
- data/src/include/analyze/prism_annotate.h +3 -3
- data/src/include/analyze/ternary_conditionals.h +2 -0
- data/src/include/ast/ast_node.h +1 -5
- data/src/include/ast/ast_nodes.h +76 -2
- data/src/include/ast/ast_pretty_print.h +1 -1
- data/src/include/diff/herb_diff.h +11 -0
- data/src/include/errors.h +156 -39
- data/src/include/extract.h +11 -0
- data/src/include/herb.h +6 -0
- data/src/include/lexer/erb_openers.h +29 -0
- data/src/include/lexer/lexer_peek_helpers.h +8 -1
- data/src/include/lexer/lexer_struct.h +4 -0
- data/src/include/lexer/token.h +3 -0
- data/src/include/lexer/token_struct.h +8 -6
- data/src/include/lib/hb_allocator.h +2 -1
- data/src/include/lib/hb_array.h +2 -0
- data/src/include/lib/hb_foreach.h +1 -1
- data/src/include/lib/hb_string.h +7 -0
- data/src/include/parser/dot_notation.h +1 -1
- data/src/include/parser/foreign_content_elements.h +32 -0
- data/src/include/parser/parser.h +16 -30
- data/src/include/parser/parser_helpers.h +13 -11
- data/src/include/parser/parser_options.h +41 -0
- data/src/include/prism/ruby_parser.h +6 -0
- data/src/include/util/html_elements.h +85 -0
- data/src/include/util/html_util.h +1 -0
- data/src/include/version.h +1 -1
- data/src/lexer/lexer_peek_helpers.c +15 -1
- data/src/lexer/token.c +83 -1
- data/src/lexer.c +196 -12
- data/src/lib/hb_allocator.c +2 -0
- data/src/lib/hb_array.c +26 -0
- data/src/lib/hb_string.c +26 -0
- data/src/main.c +1 -1
- data/src/parser/dot_notation.c +4 -3
- data/src/parser/match_tags.c +66 -1
- data/src/parser/parser_helpers.c +69 -37
- data/src/parser.c +606 -383
- data/src/parser_options_defaults.c +30 -0
- data/src/prism/prism_helpers.c +3 -0
- data/src/prism/ruby_parser.c +49 -0
- data/src/util/html_util.c +11 -58
- data/src/visitor.c +77 -1
- data/templates/ext/herb/error_helpers.c.erb +1 -1
- data/templates/ext/herb/nodes.c.erb +18 -13
- data/templates/ext/herb/nodes.h.erb +2 -1
- data/templates/ext/herb/parser_options_helpers.c.erb +69 -0
- data/templates/ext/herb/parser_options_helpers.h.erb +11 -0
- data/templates/java/nodes.c.erb +20 -16
- data/templates/java/nodes.h.erb +3 -2
- data/templates/java/org/herb/ParserOptions.java.erb +24 -0
- data/templates/java/org/herb/ast/HelperRegistry.java.erb +67 -31
- data/templates/java/org/herb/ast/HelperType.java.erb +29 -0
- data/templates/java/org/herb/ast/Nodes.java.erb +11 -7
- data/templates/java/parser_options_helpers.c.erb +45 -0
- data/templates/java/parser_options_helpers.h.erb +10 -0
- data/templates/javascript/packages/client/src/state-kinds.ts.erb +49 -0
- data/templates/javascript/packages/client/src/state-operators.ts.erb +15 -0
- data/templates/javascript/packages/client/src/state-predicates.ts.erb +27 -0
- data/templates/javascript/packages/client/src/state-transforms.ts.erb +19 -0
- data/templates/javascript/packages/core/src/action-view-helpers.ts.erb +47 -0
- data/templates/javascript/packages/core/src/built-in-components.ts.erb +67 -0
- data/templates/javascript/packages/core/src/errors.ts.erb +9 -3
- data/templates/javascript/packages/core/src/foreign-content-elements.ts.erb +18 -0
- data/templates/javascript/packages/core/src/html-constants.ts.erb +32 -0
- data/templates/javascript/packages/core/src/html-elements.ts.erb +41 -0
- data/templates/javascript/packages/core/src/node-type-guards.ts.erb +11 -7
- data/templates/javascript/packages/core/src/nodes.ts.erb +82 -19
- data/templates/javascript/packages/core/src/parser-options.ts.erb +41 -0
- data/templates/javascript/packages/core/src/visitor.ts.erb +1 -1
- data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +3 -3
- data/templates/javascript/packages/node/extension/nodes.cpp.erb +17 -12
- data/templates/javascript/packages/node/extension/nodes.h.erb +3 -3
- data/templates/javascript/packages/node/extension/parser_options_helpers.cpp.erb +41 -0
- data/templates/javascript/packages/node/extension/parser_options_helpers.h.erb +12 -0
- data/templates/lib/herb/action_view/helper_registry.rb.erb +77 -3
- data/templates/lib/herb/ast/nodes.rb.erb +16 -6
- data/templates/lib/herb/engine/slots/component_definitions.rb.erb +38 -0
- data/templates/lib/herb/engine/slots/state_kinds.rb.erb +37 -0
- data/templates/lib/herb/engine/slots/state_operators.rb.erb +26 -0
- data/templates/lib/herb/engine/slots/state_predicates.rb.erb +39 -0
- data/templates/lib/herb/engine/slots/state_transforms.rb.erb +27 -0
- data/templates/lib/herb/errors.rb.erb +34 -6
- data/templates/lib/herb/html/elements.rb.erb +12 -0
- data/templates/lib/herb/parser_options.rb.erb +32 -0
- data/templates/lib/herb/visitor.rb.erb +7 -1
- data/templates/rust/herb-printer/src/printer_visitor.rs.erb +14 -0
- data/templates/rust/src/action_view_helpers.rs.erb +38 -0
- data/templates/rust/src/ast/nodes.rs.erb +24 -31
- data/templates/rust/src/errors.rs.erb +1 -1
- data/templates/rust/src/nodes.rs.erb +58 -26
- data/templates/rust/src/parser_options.rs.erb +16 -0
- data/templates/rust/src/prism/generated_deserialize.rs.erb +109 -0
- data/templates/rust/src/prism/generated_prettyprint.rs.erb +153 -0
- data/templates/rust/src/union_types.rs.erb +7 -1
- data/templates/rust/src/visitor.rs.erb +1 -1
- data/templates/src/analyze/action_view/helper_registry.c.erb +22 -0
- data/templates/src/analyze/missing_end.c.erb +13 -5
- data/templates/src/ast/ast_nodes.c.erb +41 -2
- data/templates/src/diff/herb_diff_nodes.c.erb +44 -8
- data/templates/src/errors.c.erb +8 -3
- data/templates/src/include/analyze/action_view/helper_registry.h.erb +19 -0
- data/templates/src/include/analyze/herb_directive_kinds.h.erb +25 -0
- data/templates/src/include/errors.h.erb +3 -1
- data/templates/src/include/parser/foreign_content_elements.h.erb +23 -0
- data/templates/src/include/parser/parser_options.h.erb +21 -0
- data/templates/src/include/util/html_elements.h.erb +28 -0
- data/templates/src/parser_options_defaults.c.erb +9 -0
- data/templates/template.rb +564 -9
- data/templates/wasm/error_helpers.cpp.erb +4 -4
- data/templates/wasm/nodes.cpp.erb +12 -12
- data/templates/wasm/nodes.h.erb +3 -3
- data/templates/wasm/parser_options_helpers.cpp.erb +25 -0
- data/templates/wasm/parser_options_helpers.h.erb +12 -0
- metadata +306 -27
- data/config/action_view_helpers/actionview/form_helper/button.yml +0 -38
- data/config/action_view_helpers/actionview/form_helper/submit.yml +0 -35
- data/lib/herb/ast.rb +0 -7
- data/lib/herb/diff_operation.rb +0 -34
- data/lib/herb/diff_result.rb +0 -59
- data/lib/herb/engine/error_formatter.rb +0 -432
- data/lib/herb/engine/parser_error_overlay.rb +0 -773
- data/lib/herb/engine/validation_error_overlay.rb +0 -182
- data/lib/herb/engine/validation_errors.rb +0 -65
- data/lib/herb/engine/validator.rb +0 -80
- data/sig/herb/ast.rbs +0 -6
- data/sig/herb/diff_operation.rbs +0 -34
- data/sig/herb/diff_result.rbs +0 -34
- data/sig/herb/engine/debug.rbs +0 -38
- data/sig/herb/engine/error_formatter.rbs +0 -47
- data/sig/herb/engine/parser_error_overlay.rbs +0 -41
- data/sig/herb/engine/validation_error_overlay.rbs +0 -35
- data/sig/herb/engine/validation_errors.rbs +0 -45
- data/sig/herb/engine/validator.rbs +0 -41
- data/sig/herb_c_extension.rbs +0 -10
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,6 +61,10 @@ 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;
|
|
56
70
|
static VALUE cTimeoutError;
|
|
@@ -70,15 +84,25 @@ void rb_init_error_classes(void) {
|
|
|
70
84
|
cMissingERBEndTagError = rb_define_class_under(mErrors, "MissingERBEndTagError", cError);
|
|
71
85
|
cERBMultipleBlocksInTagError = rb_define_class_under(mErrors, "ERBMultipleBlocksInTagError", cError);
|
|
72
86
|
cERBCaseWithConditionsError = rb_define_class_under(mErrors, "ERBCaseWithConditionsError", cError);
|
|
87
|
+
cERBCaseInlinePatternMatchError = rb_define_class_under(mErrors, "ERBCaseInlinePatternMatchError", cError);
|
|
73
88
|
cConditionalElementMultipleTagsError = rb_define_class_under(mErrors, "ConditionalElementMultipleTagsError", cError);
|
|
74
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);
|
|
75
92
|
cInvalidCommentClosingTagError = rb_define_class_under(mErrors, "InvalidCommentClosingTagError", cError);
|
|
76
93
|
cOmittedClosingTagError = rb_define_class_under(mErrors, "OmittedClosingTagError", cError);
|
|
77
94
|
cUnclosedOpenTagError = rb_define_class_under(mErrors, "UnclosedOpenTagError", cError);
|
|
78
95
|
cUnclosedCloseTagError = rb_define_class_under(mErrors, "UnclosedCloseTagError", cError);
|
|
96
|
+
cEndTagWithTrailingSolidusError = rb_define_class_under(mErrors, "EndTagWithTrailingSolidusError", cError);
|
|
79
97
|
cUnclosedQuoteError = rb_define_class_under(mErrors, "UnclosedQuoteError", cError);
|
|
80
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);
|
|
81
104
|
cUnclosedERBTagError = rb_define_class_under(mErrors, "UnclosedERBTagError", cError);
|
|
105
|
+
cMalformedERBClosingTagError = rb_define_class_under(mErrors, "MalformedERBClosingTagError", cError);
|
|
82
106
|
cStrayERBClosingTagError = rb_define_class_under(mErrors, "StrayERBClosingTagError", cError);
|
|
83
107
|
cNestedERBTagError = rb_define_class_under(mErrors, "NestedERBTagError", cError);
|
|
84
108
|
cRenderAmbiguousLocalsError = rb_define_class_under(mErrors, "RenderAmbiguousLocalsError", cError);
|
|
@@ -93,6 +117,10 @@ void rb_init_error_classes(void) {
|
|
|
93
117
|
cStrictLocalsSplatArgumentError = rb_define_class_under(mErrors, "StrictLocalsSplatArgumentError", cError);
|
|
94
118
|
cStrictLocalsMissingParenthesisError = rb_define_class_under(mErrors, "StrictLocalsMissingParenthesisError", cError);
|
|
95
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);
|
|
96
124
|
cVoidElementContentError = rb_define_class_under(mErrors, "VoidElementContentError", cError);
|
|
97
125
|
cDotNotationCasingError = rb_define_class_under(mErrors, "DotNotationCasingError", cError);
|
|
98
126
|
cTimeoutError = rb_define_class_under(mErrors, "TimeoutError", cError);
|
|
@@ -134,7 +162,7 @@ static VALUE rb_unexpected_token_error_from_c_struct(UNEXPECTED_TOKEN_ERROR_T* u
|
|
|
134
162
|
|
|
135
163
|
hb_string_T _expected_type_string = token_type_to_string(unexpected_token_error->expected_type);
|
|
136
164
|
VALUE unexpected_token_error_expected_type = rb_utf8_str_new(_expected_type_string.data, _expected_type_string.length);
|
|
137
|
-
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);
|
|
138
166
|
|
|
139
167
|
VALUE args[5] = {
|
|
140
168
|
type,
|
|
@@ -156,7 +184,7 @@ static VALUE rb_missing_opening_tag_error_from_c_struct(MISSING_OPENING_TAG_ERRO
|
|
|
156
184
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
157
185
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
158
186
|
|
|
159
|
-
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);
|
|
160
188
|
|
|
161
189
|
VALUE args[4] = {
|
|
162
190
|
type,
|
|
@@ -177,7 +205,7 @@ static VALUE rb_missing_closing_tag_error_from_c_struct(MISSING_CLOSING_TAG_ERRO
|
|
|
177
205
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
178
206
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
179
207
|
|
|
180
|
-
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);
|
|
181
209
|
|
|
182
210
|
VALUE args[4] = {
|
|
183
211
|
type,
|
|
@@ -198,8 +226,8 @@ static VALUE rb_tag_names_mismatch_error_from_c_struct(TAG_NAMES_MISMATCH_ERROR_
|
|
|
198
226
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
199
227
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
200
228
|
|
|
201
|
-
VALUE tag_names_mismatch_error_opening_tag = rb_token_from_c_struct(tag_names_mismatch_error->opening_tag);
|
|
202
|
-
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);
|
|
203
231
|
|
|
204
232
|
VALUE args[5] = {
|
|
205
233
|
type,
|
|
@@ -221,7 +249,7 @@ static VALUE rb_void_element_closing_tag_error_from_c_struct(VOID_ELEMENT_CLOSIN
|
|
|
221
249
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
222
250
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
223
251
|
|
|
224
|
-
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);
|
|
225
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);
|
|
226
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);
|
|
227
255
|
|
|
@@ -246,7 +274,7 @@ static VALUE rb_unclosed_element_error_from_c_struct(UNCLOSED_ELEMENT_ERROR_T* u
|
|
|
246
274
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
247
275
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
248
276
|
|
|
249
|
-
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);
|
|
250
278
|
|
|
251
279
|
VALUE args[4] = {
|
|
252
280
|
type,
|
|
@@ -363,6 +391,25 @@ static VALUE rb_erb_case_with_conditions_error_from_c_struct(ERB_CASE_WITH_CONDI
|
|
|
363
391
|
return rb_class_new_instance(3, args, cERBCaseWithConditionsError);
|
|
364
392
|
};
|
|
365
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
|
+
|
|
366
413
|
static VALUE rb_conditional_element_multiple_tags_error_from_c_struct(CONDITIONAL_ELEMENT_MULTIPLE_TAGS_ERROR_T* conditional_element_multiple_tags_error) {
|
|
367
414
|
if (conditional_element_multiple_tags_error == NULL) { return Qnil; }
|
|
368
415
|
|
|
@@ -419,6 +466,50 @@ static VALUE rb_conditional_element_condition_mismatch_error_from_c_struct(CONDI
|
|
|
419
466
|
return rb_class_new_instance(10, args, cConditionalElementConditionMismatchError);
|
|
420
467
|
};
|
|
421
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
|
+
|
|
422
513
|
static VALUE rb_invalid_comment_closing_tag_error_from_c_struct(INVALID_COMMENT_CLOSING_TAG_ERROR_T* invalid_comment_closing_tag_error) {
|
|
423
514
|
if (invalid_comment_closing_tag_error == NULL) { return Qnil; }
|
|
424
515
|
|
|
@@ -428,7 +519,7 @@ static VALUE rb_invalid_comment_closing_tag_error_from_c_struct(INVALID_COMMENT_
|
|
|
428
519
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
429
520
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
430
521
|
|
|
431
|
-
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);
|
|
432
523
|
|
|
433
524
|
VALUE args[4] = {
|
|
434
525
|
type,
|
|
@@ -449,7 +540,7 @@ static VALUE rb_omitted_closing_tag_error_from_c_struct(OMITTED_CLOSING_TAG_ERRO
|
|
|
449
540
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
450
541
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
451
542
|
|
|
452
|
-
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);
|
|
453
544
|
VALUE omitted_closing_tag_error_insertion_point = rb_position_from_c_struct(omitted_closing_tag_error->insertion_point);
|
|
454
545
|
|
|
455
546
|
VALUE args[5] = {
|
|
@@ -472,7 +563,7 @@ static VALUE rb_unclosed_open_tag_error_from_c_struct(UNCLOSED_OPEN_TAG_ERROR_T*
|
|
|
472
563
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
473
564
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
474
565
|
|
|
475
|
-
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);
|
|
476
567
|
|
|
477
568
|
VALUE args[4] = {
|
|
478
569
|
type,
|
|
@@ -493,7 +584,7 @@ static VALUE rb_unclosed_close_tag_error_from_c_struct(UNCLOSED_CLOSE_TAG_ERROR_
|
|
|
493
584
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
494
585
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
495
586
|
|
|
496
|
-
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);
|
|
497
588
|
|
|
498
589
|
VALUE args[4] = {
|
|
499
590
|
type,
|
|
@@ -505,6 +596,27 @@ static VALUE rb_unclosed_close_tag_error_from_c_struct(UNCLOSED_CLOSE_TAG_ERROR_
|
|
|
505
596
|
return rb_class_new_instance(4, args, cUnclosedCloseTagError);
|
|
506
597
|
};
|
|
507
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
|
+
|
|
508
620
|
static VALUE rb_unclosed_quote_error_from_c_struct(UNCLOSED_QUOTE_ERROR_T* unclosed_quote_error) {
|
|
509
621
|
if (unclosed_quote_error == NULL) { return Qnil; }
|
|
510
622
|
|
|
@@ -514,7 +626,7 @@ static VALUE rb_unclosed_quote_error_from_c_struct(UNCLOSED_QUOTE_ERROR_T* unclo
|
|
|
514
626
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
515
627
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
516
628
|
|
|
517
|
-
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);
|
|
518
630
|
|
|
519
631
|
VALUE args[4] = {
|
|
520
632
|
type,
|
|
@@ -547,6 +659,111 @@ static VALUE rb_missing_attribute_value_error_from_c_struct(MISSING_ATTRIBUTE_VA
|
|
|
547
659
|
return rb_class_new_instance(4, args, cMissingAttributeValueError);
|
|
548
660
|
};
|
|
549
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
|
+
|
|
550
767
|
static VALUE rb_unclosed_erb_tag_error_from_c_struct(UNCLOSED_ERB_TAG_ERROR_T* unclosed_erb_tag_error) {
|
|
551
768
|
if (unclosed_erb_tag_error == NULL) { return Qnil; }
|
|
552
769
|
|
|
@@ -556,7 +773,7 @@ static VALUE rb_unclosed_erb_tag_error_from_c_struct(UNCLOSED_ERB_TAG_ERROR_T* u
|
|
|
556
773
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
557
774
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
558
775
|
|
|
559
|
-
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);
|
|
560
777
|
|
|
561
778
|
VALUE args[4] = {
|
|
562
779
|
type,
|
|
@@ -568,6 +785,29 @@ static VALUE rb_unclosed_erb_tag_error_from_c_struct(UNCLOSED_ERB_TAG_ERROR_T* u
|
|
|
568
785
|
return rb_class_new_instance(4, args, cUnclosedERBTagError);
|
|
569
786
|
};
|
|
570
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
|
+
|
|
571
811
|
static VALUE rb_stray_erb_closing_tag_error_from_c_struct(STRAY_ERB_CLOSING_TAG_ERROR_T* stray_erb_closing_tag_error) {
|
|
572
812
|
if (stray_erb_closing_tag_error == NULL) { return Qnil; }
|
|
573
813
|
|
|
@@ -596,7 +836,7 @@ static VALUE rb_nested_erb_tag_error_from_c_struct(NESTED_ERB_TAG_ERROR_T* neste
|
|
|
596
836
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
597
837
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
598
838
|
|
|
599
|
-
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);
|
|
600
840
|
VALUE nested_erb_tag_error_nested_tag_line = ULONG2NUM(nested_erb_tag_error->nested_tag_line);
|
|
601
841
|
VALUE nested_erb_tag_error_nested_tag_column = ULONG2NUM(nested_erb_tag_error->nested_tag_column);
|
|
602
842
|
|
|
@@ -862,6 +1102,90 @@ static VALUE rb_strict_locals_duplicate_declaration_error_from_c_struct(STRICT_L
|
|
|
862
1102
|
return rb_class_new_instance(3, args, cStrictLocalsDuplicateDeclarationError);
|
|
863
1103
|
};
|
|
864
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
|
+
|
|
865
1189
|
static VALUE rb_void_element_content_error_from_c_struct(VOID_ELEMENT_CONTENT_ERROR_T* void_element_content_error) {
|
|
866
1190
|
if (void_element_content_error == NULL) { return Qnil; }
|
|
867
1191
|
|
|
@@ -871,7 +1195,7 @@ static VALUE rb_void_element_content_error_from_c_struct(VOID_ELEMENT_CONTENT_ER
|
|
|
871
1195
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
872
1196
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
873
1197
|
|
|
874
|
-
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);
|
|
875
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);
|
|
876
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);
|
|
877
1201
|
|
|
@@ -896,7 +1220,7 @@ static VALUE rb_dot_notation_casing_error_from_c_struct(DOT_NOTATION_CASING_ERRO
|
|
|
896
1220
|
VALUE location = rb_location_from_c_struct(error->location);
|
|
897
1221
|
VALUE message = rb_string_from_hb_string(error->message);
|
|
898
1222
|
|
|
899
|
-
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);
|
|
900
1224
|
|
|
901
1225
|
VALUE args[4] = {
|
|
902
1226
|
type,
|
|
@@ -946,15 +1270,25 @@ VALUE rb_error_from_c_struct(ERROR_T* error) {
|
|
|
946
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;
|
|
947
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;
|
|
948
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;
|
|
949
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;
|
|
950
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;
|
|
951
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;
|
|
952
1279
|
case OMITTED_CLOSING_TAG_ERROR: return rb_omitted_closing_tag_error_from_c_struct((OMITTED_CLOSING_TAG_ERROR_T*) error); break;
|
|
953
1280
|
case UNCLOSED_OPEN_TAG_ERROR: return rb_unclosed_open_tag_error_from_c_struct((UNCLOSED_OPEN_TAG_ERROR_T*) error); break;
|
|
954
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;
|
|
955
1283
|
case UNCLOSED_QUOTE_ERROR: return rb_unclosed_quote_error_from_c_struct((UNCLOSED_QUOTE_ERROR_T*) error); break;
|
|
956
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;
|
|
957
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;
|
|
958
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;
|
|
959
1293
|
case NESTED_ERB_TAG_ERROR: return rb_nested_erb_tag_error_from_c_struct((NESTED_ERB_TAG_ERROR_T*) error); break;
|
|
960
1294
|
case RENDER_AMBIGUOUS_LOCALS_ERROR: return rb_render_ambiguous_locals_error_from_c_struct((RENDER_AMBIGUOUS_LOCALS_ERROR_T*) error); break;
|
|
@@ -969,6 +1303,10 @@ VALUE rb_error_from_c_struct(ERROR_T* error) {
|
|
|
969
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;
|
|
970
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;
|
|
971
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;
|
|
972
1310
|
case VOID_ELEMENT_CONTENT_ERROR: return rb_void_element_content_error_from_c_struct((VOID_ELEMENT_CONTENT_ERROR_T*) error); break;
|
|
973
1311
|
case DOT_NOTATION_CASING_ERROR: return rb_dot_notation_casing_error_from_c_struct((DOT_NOTATION_CASING_ERROR_T*) error); break;
|
|
974
1312
|
case TIMEOUT_ERROR: return rb_timeout_error_from_c_struct((TIMEOUT_ERROR_T*) error); break;
|
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
|