herb 0.10.0-x86_64-linux-gnu → 0.10.2-x86_64-linux-gnu

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.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1 -1
  3. data/config/action_view_helpers/actioncable/action_cable_helper/action_cable_meta_tag.yml +20 -0
  4. data/config/action_view_helpers/actionpack/content_security_policy/content_security_policy?.yml +16 -0
  5. data/config/action_view_helpers/actionpack/content_security_policy/content_security_policy_nonce.yml +16 -0
  6. data/config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_path.yml +27 -0
  7. data/config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_url.yml +33 -0
  8. data/config/action_view_helpers/actionpack/request_forgery_protection/form_authenticity_token.yml +19 -0
  9. data/config/action_view_helpers/actionpack/request_forgery_protection/protect_against_forgery?.yml +16 -0
  10. data/config/action_view_helpers/actiontext/content_helper/render_action_text_content.yml +21 -0
  11. data/config/action_view_helpers/actiontext/content_helper/sanitize_action_text_content.yml +21 -0
  12. data/config/action_view_helpers/actiontext/tag_helper/rich_textarea_tag.yml +46 -0
  13. data/config/action_view_helpers/actionview/active_model_helper/error_message.yml +16 -0
  14. data/config/action_view_helpers/actionview/active_model_helper/error_wrapping.yml +16 -0
  15. data/config/action_view_helpers/actionview/active_model_helper/object.yml +16 -0
  16. data/config/action_view_helpers/actionview/asset_tag_helper/apply_stylesheet_media_default.yml +16 -0
  17. data/config/action_view_helpers/actionview/asset_tag_helper/audio_tag.yml +45 -0
  18. data/config/action_view_helpers/actionview/asset_tag_helper/auto_discovery_link_tag.yml +44 -0
  19. data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce.yml +16 -0
  20. data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_scripts.yml +16 -0
  21. data/config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_styles.yml +16 -0
  22. data/config/action_view_helpers/actionview/asset_tag_helper/favicon_link_tag.yml +46 -0
  23. data/config/action_view_helpers/actionview/asset_tag_helper/image_decoding.yml +16 -0
  24. data/config/action_view_helpers/actionview/asset_tag_helper/image_loading.yml +16 -0
  25. data/config/action_view_helpers/actionview/asset_tag_helper/image_tag.yml +68 -0
  26. data/config/action_view_helpers/actionview/asset_tag_helper/javascript_include_tag.yml +59 -0
  27. data/config/action_view_helpers/actionview/asset_tag_helper/picture_tag.yml +29 -0
  28. data/config/action_view_helpers/actionview/asset_tag_helper/preload_link_tag.yml +50 -0
  29. data/config/action_view_helpers/actionview/asset_tag_helper/preload_links_header.yml +16 -0
  30. data/config/action_view_helpers/actionview/asset_tag_helper/stylesheet_link_tag.yml +50 -0
  31. data/config/action_view_helpers/actionview/asset_tag_helper/video_tag.yml +55 -0
  32. data/config/action_view_helpers/actionview/asset_url_helper/asset_path.yml +23 -0
  33. data/config/action_view_helpers/actionview/asset_url_helper/asset_url.yml +23 -0
  34. data/config/action_view_helpers/actionview/asset_url_helper/audio_path.yml +23 -0
  35. data/config/action_view_helpers/actionview/asset_url_helper/audio_url.yml +23 -0
  36. data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_extname.yml +16 -0
  37. data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_host.yml +16 -0
  38. data/config/action_view_helpers/actionview/asset_url_helper/compute_asset_path.yml +16 -0
  39. data/config/action_view_helpers/actionview/asset_url_helper/font_path.yml +23 -0
  40. data/config/action_view_helpers/actionview/asset_url_helper/font_url.yml +23 -0
  41. data/config/action_view_helpers/actionview/asset_url_helper/image_path.yml +23 -0
  42. data/config/action_view_helpers/actionview/asset_url_helper/image_url.yml +23 -0
  43. data/config/action_view_helpers/actionview/asset_url_helper/javascript_path.yml +23 -0
  44. data/config/action_view_helpers/actionview/asset_url_helper/javascript_url.yml +23 -0
  45. data/config/action_view_helpers/actionview/asset_url_helper/public_compute_asset_path.yml +16 -0
  46. data/config/action_view_helpers/actionview/asset_url_helper/stylesheet_path.yml +23 -0
  47. data/config/action_view_helpers/actionview/asset_url_helper/stylesheet_url.yml +23 -0
  48. data/config/action_view_helpers/actionview/asset_url_helper/video_path.yml +23 -0
  49. data/config/action_view_helpers/actionview/asset_url_helper/video_url.yml +23 -0
  50. data/config/action_view_helpers/actionview/atom_feed_helper/atom_feed.yml +40 -0
  51. data/config/action_view_helpers/actionview/cache_helper/cache.yml +28 -0
  52. data/config/action_view_helpers/actionview/cache_helper/cache_fragment_name.yml +16 -0
  53. data/config/action_view_helpers/actionview/cache_helper/cache_if.yml +27 -0
  54. data/config/action_view_helpers/actionview/cache_helper/cache_unless.yml +27 -0
  55. data/config/action_view_helpers/actionview/cache_helper/caching_predicate.yml +16 -0
  56. data/config/action_view_helpers/actionview/cache_helper/digest_path_from_template.yml +16 -0
  57. data/config/action_view_helpers/actionview/cache_helper/fragment_for.yml +16 -0
  58. data/config/action_view_helpers/actionview/cache_helper/fragment_name_with_digest.yml +16 -0
  59. data/config/action_view_helpers/actionview/cache_helper/read_fragment_for.yml +16 -0
  60. data/config/action_view_helpers/actionview/cache_helper/uncacheable.yml +16 -0
  61. data/config/action_view_helpers/actionview/cache_helper/write_fragment_for.yml +16 -0
  62. data/config/action_view_helpers/actionview/capture_helper/capture.yml +16 -0
  63. data/config/action_view_helpers/actionview/capture_helper/content_for.yml +24 -0
  64. data/config/action_view_helpers/actionview/capture_helper/content_for_predicate.yml +21 -0
  65. data/config/action_view_helpers/actionview/capture_helper/provide.yml +21 -0
  66. data/config/action_view_helpers/actionview/capture_helper/with_output_buffer.yml +16 -0
  67. data/config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prepend_content_exfiltration_prevention.yml +16 -0
  68. data/config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prevent_content_exfiltration.yml +16 -0
  69. data/config/action_view_helpers/actionview/controller_helper/action_name.yml +16 -0
  70. data/config/action_view_helpers/actionview/controller_helper/assign_controller.yml +16 -0
  71. data/config/action_view_helpers/actionview/controller_helper/controller.yml +16 -0
  72. data/config/action_view_helpers/actionview/controller_helper/controller_name.yml +16 -0
  73. data/config/action_view_helpers/actionview/controller_helper/controller_path.yml +16 -0
  74. data/config/action_view_helpers/actionview/controller_helper/cookies.yml +16 -0
  75. data/config/action_view_helpers/actionview/controller_helper/flash.yml +16 -0
  76. data/config/action_view_helpers/actionview/controller_helper/headers.yml +16 -0
  77. data/config/action_view_helpers/actionview/controller_helper/logger.yml +18 -0
  78. data/config/action_view_helpers/actionview/controller_helper/params.yml +16 -0
  79. data/config/action_view_helpers/actionview/controller_helper/request.yml +16 -0
  80. data/config/action_view_helpers/actionview/controller_helper/request_forgery_protection_token.yml +16 -0
  81. data/config/action_view_helpers/actionview/controller_helper/response.yml +16 -0
  82. data/config/action_view_helpers/actionview/controller_helper/session.yml +16 -0
  83. data/config/action_view_helpers/actionview/csp_helper/csp_meta_tag.yml +23 -0
  84. data/config/action_view_helpers/actionview/csrf_helper/csrf_meta_tags.yml +23 -0
  85. data/config/action_view_helpers/actionview/date_helper/date_select.yml +71 -0
  86. data/config/action_view_helpers/actionview/date_helper/datetime_select.yml +59 -0
  87. data/config/action_view_helpers/actionview/date_helper/distance_of_time_in_words.yml +33 -0
  88. data/config/action_view_helpers/actionview/date_helper/relative_time_in_words.yml +36 -0
  89. data/config/action_view_helpers/actionview/date_helper/select_date.yml +49 -0
  90. data/config/action_view_helpers/actionview/date_helper/select_datetime.yml +58 -0
  91. data/config/action_view_helpers/actionview/date_helper/select_day.yml +42 -0
  92. data/config/action_view_helpers/actionview/date_helper/select_hour.yml +48 -0
  93. data/config/action_view_helpers/actionview/date_helper/select_minute.yml +42 -0
  94. data/config/action_view_helpers/actionview/date_helper/select_month.yml +54 -0
  95. data/config/action_view_helpers/actionview/date_helper/select_second.yml +39 -0
  96. data/config/action_view_helpers/actionview/date_helper/select_time.yml +52 -0
  97. data/config/action_view_helpers/actionview/date_helper/select_year.yml +45 -0
  98. data/config/action_view_helpers/actionview/date_helper/time_ago_in_words.yml +26 -0
  99. data/config/action_view_helpers/actionview/date_helper/time_select.yml +56 -0
  100. data/config/action_view_helpers/actionview/date_helper/time_tag.yml +37 -0
  101. data/config/action_view_helpers/actionview/debug_helper/debug.yml +21 -0
  102. data/config/action_view_helpers/actionview/form_helper/apply_form_for_options.yml +16 -0
  103. data/config/action_view_helpers/actionview/form_helper/button.yml +38 -0
  104. data/config/action_view_helpers/actionview/form_helper/checkbox.yml +49 -0
  105. data/config/action_view_helpers/actionview/form_helper/color_field.yml +32 -0
  106. data/config/action_view_helpers/actionview/form_helper/date_field.yml +38 -0
  107. data/config/action_view_helpers/actionview/form_helper/datetime_field.yml +43 -0
  108. data/config/action_view_helpers/actionview/form_helper/email_field.yml +32 -0
  109. data/config/action_view_helpers/actionview/form_helper/emitted_hidden_id.yml +16 -0
  110. data/config/action_view_helpers/actionview/form_helper/fields.yml +31 -0
  111. data/config/action_view_helpers/actionview/form_helper/fields_for.yml +33 -0
  112. data/config/action_view_helpers/actionview/form_helper/file_field.yml +44 -0
  113. data/config/action_view_helpers/actionview/form_helper/form_for.yml +41 -0
  114. data/config/action_view_helpers/actionview/form_helper/form_with.yml +42 -0
  115. data/config/action_view_helpers/actionview/form_helper/form_with_generates_ids.yml +16 -0
  116. data/config/action_view_helpers/actionview/form_helper/form_with_generates_remote_forms.yml +16 -0
  117. data/config/action_view_helpers/actionview/form_helper/hidden_field.yml +32 -0
  118. data/config/action_view_helpers/actionview/form_helper/label.yml +47 -0
  119. data/config/action_view_helpers/actionview/form_helper/month_field.yml +32 -0
  120. data/config/action_view_helpers/actionview/form_helper/multipart.yml +16 -0
  121. data/config/action_view_helpers/actionview/form_helper/multiple_file_field_include_hidden.yml +16 -0
  122. data/config/action_view_helpers/actionview/form_helper/number_field.yml +44 -0
  123. data/config/action_view_helpers/actionview/form_helper/password_field.yml +32 -0
  124. data/config/action_view_helpers/actionview/form_helper/radio_button.yml +37 -0
  125. data/config/action_view_helpers/actionview/form_helper/range_field.yml +44 -0
  126. data/config/action_view_helpers/actionview/form_helper/search_field.yml +32 -0
  127. data/config/action_view_helpers/actionview/form_helper/submit.yml +35 -0
  128. data/config/action_view_helpers/actionview/form_helper/telephone_field.yml +34 -0
  129. data/config/action_view_helpers/actionview/form_helper/text_field.yml +32 -0
  130. data/config/action_view_helpers/actionview/form_helper/textarea.yml +37 -0
  131. data/config/action_view_helpers/actionview/form_helper/time_field.yml +41 -0
  132. data/config/action_view_helpers/actionview/form_helper/url_field.yml +32 -0
  133. data/config/action_view_helpers/actionview/form_helper/week_field.yml +32 -0
  134. data/config/action_view_helpers/actionview/form_options_helper/collection_checkboxes.yml +58 -0
  135. data/config/action_view_helpers/actionview/form_options_helper/collection_radio_buttons.yml +56 -0
  136. data/config/action_view_helpers/actionview/form_options_helper/collection_select.yml +65 -0
  137. data/config/action_view_helpers/actionview/form_options_helper/grouped_collection_select.yml +69 -0
  138. data/config/action_view_helpers/actionview/form_options_helper/grouped_options_for_select.yml +39 -0
  139. data/config/action_view_helpers/actionview/form_options_helper/option_groups_from_collection_for_select.yml +47 -0
  140. data/config/action_view_helpers/actionview/form_options_helper/options_for_select.yml +27 -0
  141. data/config/action_view_helpers/actionview/form_options_helper/options_from_collection_for_select.yml +37 -0
  142. data/config/action_view_helpers/actionview/form_options_helper/select.yml +59 -0
  143. data/config/action_view_helpers/actionview/form_options_helper/time_zone_options_for_select.yml +34 -0
  144. data/config/action_view_helpers/actionview/form_options_helper/time_zone_select.yml +53 -0
  145. data/config/action_view_helpers/actionview/form_options_helper/weekday_options_for_select.yml +31 -0
  146. data/config/action_view_helpers/actionview/form_options_helper/weekday_select.yml +38 -0
  147. data/config/action_view_helpers/actionview/form_tag_helper/button_tag.yml +39 -0
  148. data/config/action_view_helpers/actionview/form_tag_helper/checkbox_tag.yml +45 -0
  149. data/config/action_view_helpers/actionview/form_tag_helper/color_field_tag.yml +38 -0
  150. data/config/action_view_helpers/actionview/form_tag_helper/date_field_tag.yml +37 -0
  151. data/config/action_view_helpers/actionview/form_tag_helper/datetime_field_tag.yml +39 -0
  152. data/config/action_view_helpers/actionview/form_tag_helper/default_enforce_utf8.yml +16 -0
  153. data/config/action_view_helpers/actionview/form_tag_helper/email_field_tag.yml +37 -0
  154. data/config/action_view_helpers/actionview/form_tag_helper/embed_authenticity_token_in_remote_forms.yml +16 -0
  155. data/config/action_view_helpers/actionview/form_tag_helper/field_id.yml +32 -0
  156. data/config/action_view_helpers/actionview/form_tag_helper/field_name.yml +32 -0
  157. data/config/action_view_helpers/actionview/form_tag_helper/field_set_tag.yml +34 -0
  158. data/config/action_view_helpers/actionview/form_tag_helper/file_field_tag.yml +41 -0
  159. data/config/action_view_helpers/actionview/form_tag_helper/form_tag.yml +42 -0
  160. data/config/action_view_helpers/actionview/form_tag_helper/hidden_field_tag.yml +37 -0
  161. data/config/action_view_helpers/actionview/form_tag_helper/image_submit_tag.yml +40 -0
  162. data/config/action_view_helpers/actionview/form_tag_helper/label_tag.yml +38 -0
  163. data/config/action_view_helpers/actionview/form_tag_helper/month_field_tag.yml +37 -0
  164. data/config/action_view_helpers/actionview/form_tag_helper/number_field_tag.yml +49 -0
  165. data/config/action_view_helpers/actionview/form_tag_helper/password_field_tag.yml +38 -0
  166. data/config/action_view_helpers/actionview/form_tag_helper/radio_button_tag.yml +42 -0
  167. data/config/action_view_helpers/actionview/form_tag_helper/range_field_tag.yml +49 -0
  168. data/config/action_view_helpers/actionview/form_tag_helper/search_field_tag.yml +37 -0
  169. data/config/action_view_helpers/actionview/form_tag_helper/select_tag.yml +49 -0
  170. data/config/action_view_helpers/actionview/form_tag_helper/submit_tag.yml +39 -0
  171. data/config/action_view_helpers/actionview/form_tag_helper/telephone_field_tag.yml +39 -0
  172. data/config/action_view_helpers/actionview/form_tag_helper/text_field_tag.yml +37 -0
  173. data/config/action_view_helpers/actionview/form_tag_helper/textarea_tag.yml +43 -0
  174. data/config/action_view_helpers/actionview/form_tag_helper/time_field_tag.yml +37 -0
  175. data/config/action_view_helpers/actionview/form_tag_helper/url_field_tag.yml +37 -0
  176. data/config/action_view_helpers/actionview/form_tag_helper/utf8_enforcer_tag.yml +16 -0
  177. data/config/action_view_helpers/actionview/form_tag_helper/week_field_tag.yml +37 -0
  178. data/config/action_view_helpers/actionview/javascript_helper/escape_javascript.yml +23 -0
  179. data/config/action_view_helpers/actionview/javascript_helper/javascript_cdata_section.yml +16 -0
  180. data/config/action_view_helpers/actionview/javascript_helper/javascript_tag.yml +45 -0
  181. data/config/action_view_helpers/actionview/number_helper/number_to_currency.yml +36 -0
  182. data/config/action_view_helpers/actionview/number_helper/number_to_human.yml +27 -0
  183. data/config/action_view_helpers/actionview/number_helper/number_to_human_size.yml +24 -0
  184. data/config/action_view_helpers/actionview/number_helper/number_to_percentage.yml +24 -0
  185. data/config/action_view_helpers/actionview/number_helper/number_to_phone.yml +34 -0
  186. data/config/action_view_helpers/actionview/number_helper/number_with_delimiter.yml +29 -0
  187. data/config/action_view_helpers/actionview/number_helper/number_with_precision.yml +27 -0
  188. data/config/action_view_helpers/actionview/output_safety_helper/raw.yml +21 -0
  189. data/config/action_view_helpers/actionview/output_safety_helper/safe_join.yml +26 -0
  190. data/config/action_view_helpers/actionview/output_safety_helper/to_sentence.yml +33 -0
  191. data/config/action_view_helpers/actionview/record_identifier/dom_class.yml +27 -0
  192. data/config/action_view_helpers/actionview/record_identifier/dom_id.yml +27 -0
  193. data/config/action_view_helpers/actionview/record_identifier/dom_target.yml +22 -0
  194. data/config/action_view_helpers/actionview/record_identifier/model_name_from_record_or_class.yml +16 -0
  195. data/config/action_view_helpers/actionview/rendering_helper/render.yml +34 -0
  196. data/config/action_view_helpers/actionview/sanitize_helper/sanitize.yml +27 -0
  197. data/config/action_view_helpers/actionview/sanitize_helper/sanitize_css.yml +21 -0
  198. data/config/action_view_helpers/actionview/sanitize_helper/sanitizer_vendor.yml +16 -0
  199. data/config/action_view_helpers/actionview/sanitize_helper/strip_links.yml +21 -0
  200. data/config/action_view_helpers/actionview/sanitize_helper/strip_tags.yml +21 -0
  201. data/config/action_view_helpers/actionview/tag_helper/cdata_section.yml +21 -0
  202. data/config/action_view_helpers/actionview/tag_helper/content_tag.yml +64 -0
  203. data/config/action_view_helpers/actionview/tag_helper/escape_once.yml +21 -0
  204. data/config/action_view_helpers/actionview/tag_helper/tag.yml +47 -0
  205. data/config/action_view_helpers/actionview/tag_helper/token_list.yml +24 -0
  206. data/config/action_view_helpers/actionview/text_helper/concat.yml +21 -0
  207. data/config/action_view_helpers/actionview/text_helper/current_cycle.yml +22 -0
  208. data/config/action_view_helpers/actionview/text_helper/cycle.yml +31 -0
  209. data/config/action_view_helpers/actionview/text_helper/excerpt.yml +39 -0
  210. data/config/action_view_helpers/actionview/text_helper/highlight.yml +35 -0
  211. data/config/action_view_helpers/actionview/text_helper/pluralize.yml +32 -0
  212. data/config/action_view_helpers/actionview/text_helper/reset_cycle.yml +22 -0
  213. data/config/action_view_helpers/actionview/text_helper/safe_concat.yml +16 -0
  214. data/config/action_view_helpers/actionview/text_helper/simple_format.yml +40 -0
  215. data/config/action_view_helpers/actionview/text_helper/truncate.yml +40 -0
  216. data/config/action_view_helpers/actionview/text_helper/word_wrap.yml +27 -0
  217. data/config/action_view_helpers/actionview/translation_helper/debug_missing_translation.yml +16 -0
  218. data/config/action_view_helpers/actionview/translation_helper/localize.yml +29 -0
  219. data/config/action_view_helpers/actionview/translation_helper/translate.yml +32 -0
  220. data/config/action_view_helpers/actionview/url_helper/button_to.yml +55 -0
  221. data/config/action_view_helpers/actionview/url_helper/button_to_generates_button_tag.yml +16 -0
  222. data/config/action_view_helpers/actionview/url_helper/current_page?.yml +28 -0
  223. data/config/action_view_helpers/actionview/url_helper/link_to.yml +76 -0
  224. data/config/action_view_helpers/actionview/url_helper/link_to_if.yml +42 -0
  225. data/config/action_view_helpers/actionview/url_helper/link_to_unless.yml +42 -0
  226. data/config/action_view_helpers/actionview/url_helper/link_to_unless_current.yml +37 -0
  227. data/config/action_view_helpers/actionview/url_helper/mail_to.yml +56 -0
  228. data/config/action_view_helpers/actionview/url_helper/phone_to.yml +44 -0
  229. data/config/action_view_helpers/actionview/url_helper/sms_to.yml +47 -0
  230. data/config/action_view_helpers/actionview/url_helper/url_for.yml +22 -0
  231. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache.yml +16 -0
  232. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache_tag.yml +20 -0
  233. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview.yml +16 -0
  234. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview_tag.yml +20 -0
  235. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload.yml +16 -0
  236. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload_tag.yml +20 -0
  237. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_method_tag.yml +26 -0
  238. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_scroll_tag.yml +26 -0
  239. data/config/action_view_helpers/turbo-rails/drive_helper/turbo_refreshes_with.yml +22 -0
  240. data/config/action_view_helpers/turbo-rails/frames_helper/turbo_frame_tag.yml +50 -0
  241. data/config/action_view_helpers/turbo-rails/includes_helper/turbo_include_tags.yml +16 -0
  242. data/config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_action_tag.yml +34 -0
  243. data/config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_refresh_tag.yml +23 -0
  244. data/config/action_view_helpers/turbo-rails/streams_helper/turbo_stream.yml +16 -0
  245. data/config/action_view_helpers/turbo-rails/streams_helper/turbo_stream_from.yml +33 -0
  246. data/config/options.yml +14 -0
  247. data/config/view_context_methods/actionview/base/annotate_rendered_view_with_filenames.yml +8 -0
  248. data/config/view_context_methods/actionview/base/assign.yml +8 -0
  249. data/config/view_context_methods/actionview/base/assigns.yml +8 -0
  250. data/config/view_context_methods/actionview/base/automatically_disable_submit_tag.yml +8 -0
  251. data/config/view_context_methods/actionview/base/compiled_method_container.yml +8 -0
  252. data/config/view_context_methods/actionview/base/config.yml +8 -0
  253. data/config/view_context_methods/actionview/base/default_form_builder.yml +8 -0
  254. data/config/view_context_methods/actionview/base/default_formats.yml +8 -0
  255. data/config/view_context_methods/actionview/base/field_error_proc.yml +8 -0
  256. data/config/view_context_methods/actionview/base/formats.yml +8 -0
  257. data/config/view_context_methods/actionview/base/in_rendering_context.yml +8 -0
  258. data/config/view_context_methods/actionview/base/locale.yml +8 -0
  259. data/config/view_context_methods/actionview/base/lookup_context.yml +8 -0
  260. data/config/view_context_methods/actionview/base/output_buffer.yml +8 -0
  261. data/config/view_context_methods/actionview/base/prefix_partial_path_with_controller_namespace.yml +10 -0
  262. data/config/view_context_methods/actionview/base/remove_hidden_field_autocomplete.yml +8 -0
  263. data/config/view_context_methods/actionview/base/streaming_completion_on_exception.yml +8 -0
  264. data/config/view_context_methods/actionview/base/view_flow.yml +8 -0
  265. data/config/view_context_methods/actionview/base/view_paths.yml +8 -0
  266. data/config/view_context_methods/actionview/base/view_renderer.yml +8 -0
  267. data/config/view_context_methods/actionview/template/local_assigns.yml +8 -0
  268. data/config/view_context_methods/activemodel/conversion/convert_to_model.yml +8 -0
  269. data/config/view_context_methods/activesupport/benchmarkable/benchmark.yml +8 -0
  270. data/config.yml +10 -0
  271. data/ext/herb/error_helpers.c +24 -0
  272. data/ext/herb/extension.c +15 -0
  273. data/ext/herb/extension_helpers.c +7 -0
  274. data/herb.gemspec +2 -0
  275. data/lib/herb/3.2/herb.so +0 -0
  276. data/lib/herb/3.3/herb.so +0 -0
  277. data/lib/herb/3.4/herb.so +0 -0
  278. data/lib/herb/4.0/herb.so +0 -0
  279. data/lib/herb/action_view/render_analyzer.rb +1 -1
  280. data/lib/herb/errors.rb +39 -0
  281. data/lib/herb/parser_options.rb +14 -4
  282. data/lib/herb/version.rb +1 -1
  283. data/sig/herb/errors.rbs +18 -0
  284. data/sig/herb/parser_options.rbs +12 -4
  285. data/sig/manifest.yaml +13 -0
  286. data/sig/serialized_ast_errors.rbs +4 -0
  287. data/src/analyze/analyze_helpers.c +7 -1
  288. data/src/errors.c +51 -0
  289. data/src/herb.c +16 -0
  290. data/src/include/errors.h +8 -0
  291. data/src/include/lib/hb_clock.h +15 -0
  292. data/src/include/parser/parser.h +28 -0
  293. data/src/include/version.h +1 -1
  294. data/src/parser.c +64 -14
  295. metadata +271 -4
  296. data/sig/vendor/did_you_mean.rbs +0 -6
  297. data/sig/vendor/parallel.rbs +0 -4
@@ -5,6 +5,7 @@
5
5
  #include "../lexer/lexer.h"
6
6
  #include "../lib/hb_allocator.h"
7
7
  #include "../lib/hb_array.h"
8
+ #include "../lib/hb_clock.h"
8
9
 
9
10
  #include <stdint.h>
10
11
 
@@ -33,6 +34,10 @@ typedef struct PARSER_OPTIONS_STRUCT {
33
34
  bool html;
34
35
  uint32_t start_line;
35
36
  uint32_t start_column;
37
+ uint32_t timeout_ms;
38
+ uint32_t max_errors;
39
+ uint32_t* error_count;
40
+ uint64_t deadline_ms;
36
41
  } parser_options_T;
37
42
 
38
43
  typedef struct MATCH_TAGS_CONTEXT_STRUCT {
@@ -43,6 +48,29 @@ typedef struct MATCH_TAGS_CONTEXT_STRUCT {
43
48
 
44
49
  extern const parser_options_T HERB_DEFAULT_PARSER_OPTIONS;
45
50
 
51
+ static inline bool parser_options_past_deadline(const parser_options_T* options) {
52
+ if (options == NULL || options->timeout_ms == 0) { return false; }
53
+
54
+ return hb_monotonic_ms() >= options->deadline_ms;
55
+ }
56
+
57
+ static inline bool parser_options_errors_exceeded(const parser_options_T* options) {
58
+ if (options == NULL || options->error_count == NULL) { return false; }
59
+ if (options->max_errors == 0) { return false; }
60
+
61
+ return *options->error_count >= options->max_errors;
62
+ }
63
+
64
+ static inline void parser_options_increment_error_count(const parser_options_T* options) {
65
+ if (options != NULL && options->error_count != NULL) { (*options->error_count)++; }
66
+ }
67
+
68
+ static inline void parser_options_set_deadline(parser_options_T* options) {
69
+ if (options->timeout_ms == 0) { return; }
70
+
71
+ options->deadline_ms = hb_monotonic_ms() + options->timeout_ms;
72
+ }
73
+
46
74
  typedef struct PARSER_STRUCT {
47
75
  hb_allocator_T* allocator;
48
76
  lexer_T* lexer;
@@ -1,6 +1,6 @@
1
1
  #ifndef HERB_VERSION_H
2
2
  #define HERB_VERSION_H
3
3
 
4
- #define HERB_VERSION "0.10.0"
4
+ #define HERB_VERSION "0.10.2"
5
5
 
6
6
  #endif
data/src/parser.c CHANGED
@@ -23,7 +23,6 @@
23
23
  #include <strings.h>
24
24
 
25
25
  #define MAX_CONSECUTIVE_ERRORS 10
26
-
27
26
  static void parser_parse_in_data_state(parser_T* parser, hb_array_T* children, hb_array_T* errors);
28
27
  static void parser_parse_foreign_content(parser_T* parser, hb_array_T* children, hb_array_T* errors);
29
28
  static AST_ERB_CONTENT_NODE_T* parser_parse_erb_tag(parser_T* parser);
@@ -48,7 +47,10 @@ const parser_options_T HERB_DEFAULT_PARSER_OPTIONS = { .track_whitespace = false
48
47
  .dot_notation_tags = false,
49
48
  .html = true,
50
49
  .start_line = 0,
51
- .start_column = 0 };
50
+ .start_column = 0,
51
+ .timeout_ms = 1000,
52
+ .max_errors = 25,
53
+ .deadline_ms = 0 };
52
54
 
53
55
  size_t parser_sizeof(void) {
54
56
  return sizeof(struct PARSER_STRUCT);
@@ -1498,6 +1500,7 @@ static void parser_parse_in_data_state(parser_T* parser, hb_array_T* children, h
1498
1500
  }
1499
1501
 
1500
1502
  while (token_is_not(parser, TOKEN_EOF)) {
1503
+ if (parser_options_past_deadline(&parser->options)) { break; }
1501
1504
 
1502
1505
  if (token_is(parser, TOKEN_ERB_START)) {
1503
1506
  hb_array_append(children, parser_parse_erb_tag(parser));
@@ -1601,11 +1604,18 @@ static void parser_parse_in_data_state(parser_T* parser, hb_array_T* children, h
1601
1604
  }
1602
1605
  }
1603
1606
 
1604
- static size_t find_matching_close_tag(hb_array_T* nodes, size_t start_idx, hb_string_T tag_name) {
1607
+ static size_t find_matching_close_tag(
1608
+ hb_array_T* nodes,
1609
+ size_t start_index,
1610
+ hb_string_T tag_name,
1611
+ const parser_options_T* options
1612
+ ) {
1605
1613
  int depth = 0;
1606
1614
 
1607
- for (size_t i = start_idx + 1; i < hb_array_size(nodes); i++) {
1608
- AST_NODE_T* node = (AST_NODE_T*) hb_array_get(nodes, i);
1615
+ for (size_t index = start_index + 1; index < hb_array_size(nodes); index++) {
1616
+ if (parser_options_past_deadline(options)) { return (size_t) -1; }
1617
+
1618
+ AST_NODE_T* node = (AST_NODE_T*) hb_array_get(nodes, index);
1609
1619
  if (node == NULL) { continue; }
1610
1620
 
1611
1621
  if (node->type == AST_HTML_OPEN_TAG_NODE) {
@@ -1616,7 +1626,7 @@ static size_t find_matching_close_tag(hb_array_T* nodes, size_t start_idx, hb_st
1616
1626
  AST_HTML_CLOSE_TAG_NODE_T* close = (AST_HTML_CLOSE_TAG_NODE_T*) node;
1617
1627
 
1618
1628
  if (hb_string_equals_case_insensitive(close->tag_name->value, tag_name)) {
1619
- if (depth == 0) { return i; }
1629
+ if (depth == 0) { return index; }
1620
1630
  depth--;
1621
1631
  }
1622
1632
  }
@@ -1625,23 +1635,23 @@ static size_t find_matching_close_tag(hb_array_T* nodes, size_t start_idx, hb_st
1625
1635
  return (size_t) -1;
1626
1636
  }
1627
1637
 
1628
- static size_t find_implicit_close_index(hb_array_T* nodes, size_t start_idx, hb_string_T tag_name) {
1638
+ static size_t find_implicit_close_index(hb_array_T* nodes, size_t start_index, hb_string_T tag_name) {
1629
1639
  if (!has_optional_end_tag(tag_name)) { return (size_t) -1; }
1630
1640
 
1631
- for (size_t i = start_idx + 1; i < hb_array_size(nodes); i++) {
1632
- AST_NODE_T* node = (AST_NODE_T*) hb_array_get(nodes, i);
1641
+ for (size_t index = start_index + 1; index < hb_array_size(nodes); index++) {
1642
+ AST_NODE_T* node = (AST_NODE_T*) hb_array_get(nodes, index);
1633
1643
  if (node == NULL) { continue; }
1634
1644
 
1635
1645
  if (node->type == AST_HTML_OPEN_TAG_NODE) {
1636
1646
  AST_HTML_OPEN_TAG_NODE_T* open = (AST_HTML_OPEN_TAG_NODE_T*) node;
1637
1647
  hb_string_T next_tag_name = open->tag_name->value;
1638
1648
 
1639
- if (should_implicitly_close(tag_name, next_tag_name)) { return i; }
1649
+ if (should_implicitly_close(tag_name, next_tag_name)) { return index; }
1640
1650
  } else if (node->type == AST_HTML_CLOSE_TAG_NODE) {
1641
1651
  AST_HTML_CLOSE_TAG_NODE_T* close = (AST_HTML_CLOSE_TAG_NODE_T*) node;
1642
1652
  hb_string_T close_tag_name = close->tag_name->value;
1643
1653
 
1644
- if (parent_closes_element(tag_name, close_tag_name)) { return i; }
1654
+ if (parent_closes_element(tag_name, close_tag_name)) { return index; }
1645
1655
  }
1646
1656
  }
1647
1657
 
@@ -1655,6 +1665,35 @@ static hb_array_T* parser_build_elements_from_tags(
1655
1665
  hb_allocator_T* allocator
1656
1666
  );
1657
1667
 
1668
+ static bool has_close_tag_for_name(hb_array_T* close_tag_names, hb_string_T tag_name) {
1669
+ for (size_t i = 0; i < hb_array_size(close_tag_names); i++) {
1670
+ hb_string_T* name = (hb_string_T*) hb_array_get(close_tag_names, i);
1671
+ if (name != NULL && hb_string_equals_case_insensitive(*name, tag_name)) { return true; }
1672
+ }
1673
+
1674
+ return false;
1675
+ }
1676
+
1677
+ static hb_array_T* collect_close_tag_names(hb_array_T* nodes, hb_allocator_T* allocator) {
1678
+ hb_array_T* close_tag_names = hb_array_init(16, allocator);
1679
+
1680
+ for (size_t i = 0; i < hb_array_size(nodes); i++) {
1681
+ AST_NODE_T* node = (AST_NODE_T*) hb_array_get(nodes, i);
1682
+ if (node == NULL || node->type != AST_HTML_CLOSE_TAG_NODE) { continue; }
1683
+
1684
+ AST_HTML_CLOSE_TAG_NODE_T* close_tag = (AST_HTML_CLOSE_TAG_NODE_T*) node;
1685
+ hb_string_T name = close_tag->tag_name->value;
1686
+
1687
+ if (!has_close_tag_for_name(close_tag_names, name)) {
1688
+ hb_string_T* stored = hb_allocator_alloc(allocator, sizeof(hb_string_T));
1689
+ *stored = name;
1690
+ hb_array_append(close_tag_names, stored);
1691
+ }
1692
+ }
1693
+
1694
+ return close_tag_names;
1695
+ }
1696
+
1658
1697
  static hb_array_T* parser_build_elements_from_tags(
1659
1698
  hb_array_T* nodes,
1660
1699
  hb_array_T* errors,
@@ -1663,8 +1702,11 @@ static hb_array_T* parser_build_elements_from_tags(
1663
1702
  ) {
1664
1703
  bool strict = options ? options->strict : false;
1665
1704
  hb_array_T* result = hb_array_init(hb_array_size(nodes), allocator);
1705
+ hb_array_T* close_tag_names = collect_close_tag_names(nodes, allocator);
1666
1706
 
1667
1707
  for (size_t index = 0; index < hb_array_size(nodes); index++) {
1708
+ if (parser_options_past_deadline(options)) { break; }
1709
+
1668
1710
  AST_NODE_T* node = (AST_NODE_T*) hb_array_get(nodes, index);
1669
1711
  if (node == NULL) { continue; }
1670
1712
 
@@ -1672,7 +1714,11 @@ static hb_array_T* parser_build_elements_from_tags(
1672
1714
  AST_HTML_OPEN_TAG_NODE_T* open_tag = (AST_HTML_OPEN_TAG_NODE_T*) node;
1673
1715
  hb_string_T tag_name = open_tag->tag_name->value;
1674
1716
 
1675
- size_t close_index = find_matching_close_tag(nodes, index, tag_name);
1717
+ size_t close_index = (size_t) -1;
1718
+
1719
+ if (has_close_tag_for_name(close_tag_names, tag_name)) {
1720
+ close_index = find_matching_close_tag(nodes, index, tag_name, options);
1721
+ }
1676
1722
 
1677
1723
  if (close_index == (size_t) -1) {
1678
1724
  size_t implicit_close_index = find_implicit_close_index(nodes, index, tag_name);
@@ -1732,7 +1778,7 @@ static hb_array_T* parser_build_elements_from_tags(
1732
1778
 
1733
1779
  index = implicit_close_index - 1;
1734
1780
  } else {
1735
- if (hb_array_size(open_tag->base.errors) == 0) {
1781
+ if (hb_array_size(open_tag->base.errors) == 0 && !parser_options_errors_exceeded(options)) {
1736
1782
  append_missing_closing_tag_error(
1737
1783
  open_tag->tag_name,
1738
1784
  open_tag->base.location.start,
@@ -1740,6 +1786,8 @@ static hb_array_T* parser_build_elements_from_tags(
1740
1786
  allocator,
1741
1787
  open_tag->base.errors
1742
1788
  );
1789
+
1790
+ parser_options_increment_error_count(options);
1743
1791
  }
1744
1792
 
1745
1793
  hb_array_append(result, node);
@@ -1779,7 +1827,7 @@ static hb_array_T* parser_build_elements_from_tags(
1779
1827
  AST_HTML_CLOSE_TAG_NODE_T* close_tag = (AST_HTML_CLOSE_TAG_NODE_T*) node;
1780
1828
 
1781
1829
  if (!is_void_element(close_tag->tag_name->value)) {
1782
- if (hb_array_size(close_tag->base.errors) == 0) {
1830
+ if (hb_array_size(close_tag->base.errors) == 0 && !parser_options_errors_exceeded(options)) {
1783
1831
  append_missing_opening_tag_error(
1784
1832
  close_tag->tag_name,
1785
1833
  close_tag->base.location.start,
@@ -1787,6 +1835,8 @@ static hb_array_T* parser_build_elements_from_tags(
1787
1835
  allocator,
1788
1836
  close_tag->base.errors
1789
1837
  );
1838
+
1839
+ parser_options_increment_error_count(options);
1790
1840
  }
1791
1841
  }
1792
1842
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.2
5
5
  platform: x86_64-linux-gnu
6
6
  authors:
7
7
  - Marco Roth
@@ -22,6 +22,273 @@ files:
22
22
  - README.md
23
23
  - Rakefile
24
24
  - config.yml
25
+ - config/action_view_helpers/actioncable/action_cable_helper/action_cable_meta_tag.yml
26
+ - config/action_view_helpers/actionpack/content_security_policy/content_security_policy?.yml
27
+ - config/action_view_helpers/actionpack/content_security_policy/content_security_policy_nonce.yml
28
+ - config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_path.yml
29
+ - config/action_view_helpers/actionpack/polymorphic_routes/polymorphic_url.yml
30
+ - config/action_view_helpers/actionpack/request_forgery_protection/form_authenticity_token.yml
31
+ - config/action_view_helpers/actionpack/request_forgery_protection/protect_against_forgery?.yml
32
+ - config/action_view_helpers/actiontext/content_helper/render_action_text_content.yml
33
+ - config/action_view_helpers/actiontext/content_helper/sanitize_action_text_content.yml
34
+ - config/action_view_helpers/actiontext/tag_helper/rich_textarea_tag.yml
35
+ - config/action_view_helpers/actionview/active_model_helper/error_message.yml
36
+ - config/action_view_helpers/actionview/active_model_helper/error_wrapping.yml
37
+ - config/action_view_helpers/actionview/active_model_helper/object.yml
38
+ - config/action_view_helpers/actionview/asset_tag_helper/apply_stylesheet_media_default.yml
39
+ - config/action_view_helpers/actionview/asset_tag_helper/audio_tag.yml
40
+ - config/action_view_helpers/actionview/asset_tag_helper/auto_discovery_link_tag.yml
41
+ - config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce.yml
42
+ - config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_scripts.yml
43
+ - config/action_view_helpers/actionview/asset_tag_helper/auto_include_nonce_for_styles.yml
44
+ - config/action_view_helpers/actionview/asset_tag_helper/favicon_link_tag.yml
45
+ - config/action_view_helpers/actionview/asset_tag_helper/image_decoding.yml
46
+ - config/action_view_helpers/actionview/asset_tag_helper/image_loading.yml
47
+ - config/action_view_helpers/actionview/asset_tag_helper/image_tag.yml
48
+ - config/action_view_helpers/actionview/asset_tag_helper/javascript_include_tag.yml
49
+ - config/action_view_helpers/actionview/asset_tag_helper/picture_tag.yml
50
+ - config/action_view_helpers/actionview/asset_tag_helper/preload_link_tag.yml
51
+ - config/action_view_helpers/actionview/asset_tag_helper/preload_links_header.yml
52
+ - config/action_view_helpers/actionview/asset_tag_helper/stylesheet_link_tag.yml
53
+ - config/action_view_helpers/actionview/asset_tag_helper/video_tag.yml
54
+ - config/action_view_helpers/actionview/asset_url_helper/asset_path.yml
55
+ - config/action_view_helpers/actionview/asset_url_helper/asset_url.yml
56
+ - config/action_view_helpers/actionview/asset_url_helper/audio_path.yml
57
+ - config/action_view_helpers/actionview/asset_url_helper/audio_url.yml
58
+ - config/action_view_helpers/actionview/asset_url_helper/compute_asset_extname.yml
59
+ - config/action_view_helpers/actionview/asset_url_helper/compute_asset_host.yml
60
+ - config/action_view_helpers/actionview/asset_url_helper/compute_asset_path.yml
61
+ - config/action_view_helpers/actionview/asset_url_helper/font_path.yml
62
+ - config/action_view_helpers/actionview/asset_url_helper/font_url.yml
63
+ - config/action_view_helpers/actionview/asset_url_helper/image_path.yml
64
+ - config/action_view_helpers/actionview/asset_url_helper/image_url.yml
65
+ - config/action_view_helpers/actionview/asset_url_helper/javascript_path.yml
66
+ - config/action_view_helpers/actionview/asset_url_helper/javascript_url.yml
67
+ - config/action_view_helpers/actionview/asset_url_helper/public_compute_asset_path.yml
68
+ - config/action_view_helpers/actionview/asset_url_helper/stylesheet_path.yml
69
+ - config/action_view_helpers/actionview/asset_url_helper/stylesheet_url.yml
70
+ - config/action_view_helpers/actionview/asset_url_helper/video_path.yml
71
+ - config/action_view_helpers/actionview/asset_url_helper/video_url.yml
72
+ - config/action_view_helpers/actionview/atom_feed_helper/atom_feed.yml
73
+ - config/action_view_helpers/actionview/cache_helper/cache.yml
74
+ - config/action_view_helpers/actionview/cache_helper/cache_fragment_name.yml
75
+ - config/action_view_helpers/actionview/cache_helper/cache_if.yml
76
+ - config/action_view_helpers/actionview/cache_helper/cache_unless.yml
77
+ - config/action_view_helpers/actionview/cache_helper/caching_predicate.yml
78
+ - config/action_view_helpers/actionview/cache_helper/digest_path_from_template.yml
79
+ - config/action_view_helpers/actionview/cache_helper/fragment_for.yml
80
+ - config/action_view_helpers/actionview/cache_helper/fragment_name_with_digest.yml
81
+ - config/action_view_helpers/actionview/cache_helper/read_fragment_for.yml
82
+ - config/action_view_helpers/actionview/cache_helper/uncacheable.yml
83
+ - config/action_view_helpers/actionview/cache_helper/write_fragment_for.yml
84
+ - config/action_view_helpers/actionview/capture_helper/capture.yml
85
+ - config/action_view_helpers/actionview/capture_helper/content_for.yml
86
+ - config/action_view_helpers/actionview/capture_helper/content_for_predicate.yml
87
+ - config/action_view_helpers/actionview/capture_helper/provide.yml
88
+ - config/action_view_helpers/actionview/capture_helper/with_output_buffer.yml
89
+ - config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prepend_content_exfiltration_prevention.yml
90
+ - config/action_view_helpers/actionview/content_exfiltration_prevention_helper/prevent_content_exfiltration.yml
91
+ - config/action_view_helpers/actionview/controller_helper/action_name.yml
92
+ - config/action_view_helpers/actionview/controller_helper/assign_controller.yml
93
+ - config/action_view_helpers/actionview/controller_helper/controller.yml
94
+ - config/action_view_helpers/actionview/controller_helper/controller_name.yml
95
+ - config/action_view_helpers/actionview/controller_helper/controller_path.yml
96
+ - config/action_view_helpers/actionview/controller_helper/cookies.yml
97
+ - config/action_view_helpers/actionview/controller_helper/flash.yml
98
+ - config/action_view_helpers/actionview/controller_helper/headers.yml
99
+ - config/action_view_helpers/actionview/controller_helper/logger.yml
100
+ - config/action_view_helpers/actionview/controller_helper/params.yml
101
+ - config/action_view_helpers/actionview/controller_helper/request.yml
102
+ - config/action_view_helpers/actionview/controller_helper/request_forgery_protection_token.yml
103
+ - config/action_view_helpers/actionview/controller_helper/response.yml
104
+ - config/action_view_helpers/actionview/controller_helper/session.yml
105
+ - config/action_view_helpers/actionview/csp_helper/csp_meta_tag.yml
106
+ - config/action_view_helpers/actionview/csrf_helper/csrf_meta_tags.yml
107
+ - config/action_view_helpers/actionview/date_helper/date_select.yml
108
+ - config/action_view_helpers/actionview/date_helper/datetime_select.yml
109
+ - config/action_view_helpers/actionview/date_helper/distance_of_time_in_words.yml
110
+ - config/action_view_helpers/actionview/date_helper/relative_time_in_words.yml
111
+ - config/action_view_helpers/actionview/date_helper/select_date.yml
112
+ - config/action_view_helpers/actionview/date_helper/select_datetime.yml
113
+ - config/action_view_helpers/actionview/date_helper/select_day.yml
114
+ - config/action_view_helpers/actionview/date_helper/select_hour.yml
115
+ - config/action_view_helpers/actionview/date_helper/select_minute.yml
116
+ - config/action_view_helpers/actionview/date_helper/select_month.yml
117
+ - config/action_view_helpers/actionview/date_helper/select_second.yml
118
+ - config/action_view_helpers/actionview/date_helper/select_time.yml
119
+ - config/action_view_helpers/actionview/date_helper/select_year.yml
120
+ - config/action_view_helpers/actionview/date_helper/time_ago_in_words.yml
121
+ - config/action_view_helpers/actionview/date_helper/time_select.yml
122
+ - config/action_view_helpers/actionview/date_helper/time_tag.yml
123
+ - config/action_view_helpers/actionview/debug_helper/debug.yml
124
+ - config/action_view_helpers/actionview/form_helper/apply_form_for_options.yml
125
+ - config/action_view_helpers/actionview/form_helper/button.yml
126
+ - config/action_view_helpers/actionview/form_helper/checkbox.yml
127
+ - config/action_view_helpers/actionview/form_helper/color_field.yml
128
+ - config/action_view_helpers/actionview/form_helper/date_field.yml
129
+ - config/action_view_helpers/actionview/form_helper/datetime_field.yml
130
+ - config/action_view_helpers/actionview/form_helper/email_field.yml
131
+ - config/action_view_helpers/actionview/form_helper/emitted_hidden_id.yml
132
+ - config/action_view_helpers/actionview/form_helper/fields.yml
133
+ - config/action_view_helpers/actionview/form_helper/fields_for.yml
134
+ - config/action_view_helpers/actionview/form_helper/file_field.yml
135
+ - config/action_view_helpers/actionview/form_helper/form_for.yml
136
+ - config/action_view_helpers/actionview/form_helper/form_with.yml
137
+ - config/action_view_helpers/actionview/form_helper/form_with_generates_ids.yml
138
+ - config/action_view_helpers/actionview/form_helper/form_with_generates_remote_forms.yml
139
+ - config/action_view_helpers/actionview/form_helper/hidden_field.yml
140
+ - config/action_view_helpers/actionview/form_helper/label.yml
141
+ - config/action_view_helpers/actionview/form_helper/month_field.yml
142
+ - config/action_view_helpers/actionview/form_helper/multipart.yml
143
+ - config/action_view_helpers/actionview/form_helper/multiple_file_field_include_hidden.yml
144
+ - config/action_view_helpers/actionview/form_helper/number_field.yml
145
+ - config/action_view_helpers/actionview/form_helper/password_field.yml
146
+ - config/action_view_helpers/actionview/form_helper/radio_button.yml
147
+ - config/action_view_helpers/actionview/form_helper/range_field.yml
148
+ - config/action_view_helpers/actionview/form_helper/search_field.yml
149
+ - config/action_view_helpers/actionview/form_helper/submit.yml
150
+ - config/action_view_helpers/actionview/form_helper/telephone_field.yml
151
+ - config/action_view_helpers/actionview/form_helper/text_field.yml
152
+ - config/action_view_helpers/actionview/form_helper/textarea.yml
153
+ - config/action_view_helpers/actionview/form_helper/time_field.yml
154
+ - config/action_view_helpers/actionview/form_helper/url_field.yml
155
+ - config/action_view_helpers/actionview/form_helper/week_field.yml
156
+ - config/action_view_helpers/actionview/form_options_helper/collection_checkboxes.yml
157
+ - config/action_view_helpers/actionview/form_options_helper/collection_radio_buttons.yml
158
+ - config/action_view_helpers/actionview/form_options_helper/collection_select.yml
159
+ - config/action_view_helpers/actionview/form_options_helper/grouped_collection_select.yml
160
+ - config/action_view_helpers/actionview/form_options_helper/grouped_options_for_select.yml
161
+ - config/action_view_helpers/actionview/form_options_helper/option_groups_from_collection_for_select.yml
162
+ - config/action_view_helpers/actionview/form_options_helper/options_for_select.yml
163
+ - config/action_view_helpers/actionview/form_options_helper/options_from_collection_for_select.yml
164
+ - config/action_view_helpers/actionview/form_options_helper/select.yml
165
+ - config/action_view_helpers/actionview/form_options_helper/time_zone_options_for_select.yml
166
+ - config/action_view_helpers/actionview/form_options_helper/time_zone_select.yml
167
+ - config/action_view_helpers/actionview/form_options_helper/weekday_options_for_select.yml
168
+ - config/action_view_helpers/actionview/form_options_helper/weekday_select.yml
169
+ - config/action_view_helpers/actionview/form_tag_helper/button_tag.yml
170
+ - config/action_view_helpers/actionview/form_tag_helper/checkbox_tag.yml
171
+ - config/action_view_helpers/actionview/form_tag_helper/color_field_tag.yml
172
+ - config/action_view_helpers/actionview/form_tag_helper/date_field_tag.yml
173
+ - config/action_view_helpers/actionview/form_tag_helper/datetime_field_tag.yml
174
+ - config/action_view_helpers/actionview/form_tag_helper/default_enforce_utf8.yml
175
+ - config/action_view_helpers/actionview/form_tag_helper/email_field_tag.yml
176
+ - config/action_view_helpers/actionview/form_tag_helper/embed_authenticity_token_in_remote_forms.yml
177
+ - config/action_view_helpers/actionview/form_tag_helper/field_id.yml
178
+ - config/action_view_helpers/actionview/form_tag_helper/field_name.yml
179
+ - config/action_view_helpers/actionview/form_tag_helper/field_set_tag.yml
180
+ - config/action_view_helpers/actionview/form_tag_helper/file_field_tag.yml
181
+ - config/action_view_helpers/actionview/form_tag_helper/form_tag.yml
182
+ - config/action_view_helpers/actionview/form_tag_helper/hidden_field_tag.yml
183
+ - config/action_view_helpers/actionview/form_tag_helper/image_submit_tag.yml
184
+ - config/action_view_helpers/actionview/form_tag_helper/label_tag.yml
185
+ - config/action_view_helpers/actionview/form_tag_helper/month_field_tag.yml
186
+ - config/action_view_helpers/actionview/form_tag_helper/number_field_tag.yml
187
+ - config/action_view_helpers/actionview/form_tag_helper/password_field_tag.yml
188
+ - config/action_view_helpers/actionview/form_tag_helper/radio_button_tag.yml
189
+ - config/action_view_helpers/actionview/form_tag_helper/range_field_tag.yml
190
+ - config/action_view_helpers/actionview/form_tag_helper/search_field_tag.yml
191
+ - config/action_view_helpers/actionview/form_tag_helper/select_tag.yml
192
+ - config/action_view_helpers/actionview/form_tag_helper/submit_tag.yml
193
+ - config/action_view_helpers/actionview/form_tag_helper/telephone_field_tag.yml
194
+ - config/action_view_helpers/actionview/form_tag_helper/text_field_tag.yml
195
+ - config/action_view_helpers/actionview/form_tag_helper/textarea_tag.yml
196
+ - config/action_view_helpers/actionview/form_tag_helper/time_field_tag.yml
197
+ - config/action_view_helpers/actionview/form_tag_helper/url_field_tag.yml
198
+ - config/action_view_helpers/actionview/form_tag_helper/utf8_enforcer_tag.yml
199
+ - config/action_view_helpers/actionview/form_tag_helper/week_field_tag.yml
200
+ - config/action_view_helpers/actionview/javascript_helper/escape_javascript.yml
201
+ - config/action_view_helpers/actionview/javascript_helper/javascript_cdata_section.yml
202
+ - config/action_view_helpers/actionview/javascript_helper/javascript_tag.yml
203
+ - config/action_view_helpers/actionview/number_helper/number_to_currency.yml
204
+ - config/action_view_helpers/actionview/number_helper/number_to_human.yml
205
+ - config/action_view_helpers/actionview/number_helper/number_to_human_size.yml
206
+ - config/action_view_helpers/actionview/number_helper/number_to_percentage.yml
207
+ - config/action_view_helpers/actionview/number_helper/number_to_phone.yml
208
+ - config/action_view_helpers/actionview/number_helper/number_with_delimiter.yml
209
+ - config/action_view_helpers/actionview/number_helper/number_with_precision.yml
210
+ - config/action_view_helpers/actionview/output_safety_helper/raw.yml
211
+ - config/action_view_helpers/actionview/output_safety_helper/safe_join.yml
212
+ - config/action_view_helpers/actionview/output_safety_helper/to_sentence.yml
213
+ - config/action_view_helpers/actionview/record_identifier/dom_class.yml
214
+ - config/action_view_helpers/actionview/record_identifier/dom_id.yml
215
+ - config/action_view_helpers/actionview/record_identifier/dom_target.yml
216
+ - config/action_view_helpers/actionview/record_identifier/model_name_from_record_or_class.yml
217
+ - config/action_view_helpers/actionview/rendering_helper/render.yml
218
+ - config/action_view_helpers/actionview/sanitize_helper/sanitize.yml
219
+ - config/action_view_helpers/actionview/sanitize_helper/sanitize_css.yml
220
+ - config/action_view_helpers/actionview/sanitize_helper/sanitizer_vendor.yml
221
+ - config/action_view_helpers/actionview/sanitize_helper/strip_links.yml
222
+ - config/action_view_helpers/actionview/sanitize_helper/strip_tags.yml
223
+ - config/action_view_helpers/actionview/tag_helper/cdata_section.yml
224
+ - config/action_view_helpers/actionview/tag_helper/content_tag.yml
225
+ - config/action_view_helpers/actionview/tag_helper/escape_once.yml
226
+ - config/action_view_helpers/actionview/tag_helper/tag.yml
227
+ - config/action_view_helpers/actionview/tag_helper/token_list.yml
228
+ - config/action_view_helpers/actionview/text_helper/concat.yml
229
+ - config/action_view_helpers/actionview/text_helper/current_cycle.yml
230
+ - config/action_view_helpers/actionview/text_helper/cycle.yml
231
+ - config/action_view_helpers/actionview/text_helper/excerpt.yml
232
+ - config/action_view_helpers/actionview/text_helper/highlight.yml
233
+ - config/action_view_helpers/actionview/text_helper/pluralize.yml
234
+ - config/action_view_helpers/actionview/text_helper/reset_cycle.yml
235
+ - config/action_view_helpers/actionview/text_helper/safe_concat.yml
236
+ - config/action_view_helpers/actionview/text_helper/simple_format.yml
237
+ - config/action_view_helpers/actionview/text_helper/truncate.yml
238
+ - config/action_view_helpers/actionview/text_helper/word_wrap.yml
239
+ - config/action_view_helpers/actionview/translation_helper/debug_missing_translation.yml
240
+ - config/action_view_helpers/actionview/translation_helper/localize.yml
241
+ - config/action_view_helpers/actionview/translation_helper/translate.yml
242
+ - config/action_view_helpers/actionview/url_helper/button_to.yml
243
+ - config/action_view_helpers/actionview/url_helper/button_to_generates_button_tag.yml
244
+ - config/action_view_helpers/actionview/url_helper/current_page?.yml
245
+ - config/action_view_helpers/actionview/url_helper/link_to.yml
246
+ - config/action_view_helpers/actionview/url_helper/link_to_if.yml
247
+ - config/action_view_helpers/actionview/url_helper/link_to_unless.yml
248
+ - config/action_view_helpers/actionview/url_helper/link_to_unless_current.yml
249
+ - config/action_view_helpers/actionview/url_helper/mail_to.yml
250
+ - config/action_view_helpers/actionview/url_helper/phone_to.yml
251
+ - config/action_view_helpers/actionview/url_helper/sms_to.yml
252
+ - config/action_view_helpers/actionview/url_helper/url_for.yml
253
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache.yml
254
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_cache_tag.yml
255
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview.yml
256
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_exempts_page_from_preview_tag.yml
257
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload.yml
258
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_page_requires_reload_tag.yml
259
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_method_tag.yml
260
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_refresh_scroll_tag.yml
261
+ - config/action_view_helpers/turbo-rails/drive_helper/turbo_refreshes_with.yml
262
+ - config/action_view_helpers/turbo-rails/frames_helper/turbo_frame_tag.yml
263
+ - config/action_view_helpers/turbo-rails/includes_helper/turbo_include_tags.yml
264
+ - config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_action_tag.yml
265
+ - config/action_view_helpers/turbo-rails/streams_action_helper/turbo_stream_refresh_tag.yml
266
+ - config/action_view_helpers/turbo-rails/streams_helper/turbo_stream.yml
267
+ - config/action_view_helpers/turbo-rails/streams_helper/turbo_stream_from.yml
268
+ - config/options.yml
269
+ - config/view_context_methods/actionview/base/annotate_rendered_view_with_filenames.yml
270
+ - config/view_context_methods/actionview/base/assign.yml
271
+ - config/view_context_methods/actionview/base/assigns.yml
272
+ - config/view_context_methods/actionview/base/automatically_disable_submit_tag.yml
273
+ - config/view_context_methods/actionview/base/compiled_method_container.yml
274
+ - config/view_context_methods/actionview/base/config.yml
275
+ - config/view_context_methods/actionview/base/default_form_builder.yml
276
+ - config/view_context_methods/actionview/base/default_formats.yml
277
+ - config/view_context_methods/actionview/base/field_error_proc.yml
278
+ - config/view_context_methods/actionview/base/formats.yml
279
+ - config/view_context_methods/actionview/base/in_rendering_context.yml
280
+ - config/view_context_methods/actionview/base/locale.yml
281
+ - config/view_context_methods/actionview/base/lookup_context.yml
282
+ - config/view_context_methods/actionview/base/output_buffer.yml
283
+ - config/view_context_methods/actionview/base/prefix_partial_path_with_controller_namespace.yml
284
+ - config/view_context_methods/actionview/base/remove_hidden_field_autocomplete.yml
285
+ - config/view_context_methods/actionview/base/streaming_completion_on_exception.yml
286
+ - config/view_context_methods/actionview/base/view_flow.yml
287
+ - config/view_context_methods/actionview/base/view_paths.yml
288
+ - config/view_context_methods/actionview/base/view_renderer.yml
289
+ - config/view_context_methods/actionview/template/local_assigns.yml
290
+ - config/view_context_methods/activemodel/conversion/convert_to_model.yml
291
+ - config/view_context_methods/activesupport/benchmarkable/benchmark.yml
25
292
  - exe/herb
26
293
  - ext/herb/error_helpers.c
27
294
  - ext/herb/error_helpers.h
@@ -130,12 +397,11 @@ files:
130
397
  - sig/herb/visitor.rbs
131
398
  - sig/herb/warnings.rbs
132
399
  - sig/herb_c_extension.rbs
400
+ - sig/manifest.yaml
133
401
  - sig/rubyvm.rbs
134
402
  - sig/serialized.rbs
135
403
  - sig/serialized_ast_errors.rbs
136
404
  - sig/serialized_ast_nodes.rbs
137
- - sig/vendor/did_you_mean.rbs
138
- - sig/vendor/parallel.rbs
139
405
  - src/analyze/action_view/attribute_extraction_helpers.c
140
406
  - src/analyze/action_view/generated_handlers.c
141
407
  - src/analyze/action_view/generated_handlers.h
@@ -221,6 +487,7 @@ files:
221
487
  - src/include/lib/hb_arena_debug.h
222
488
  - src/include/lib/hb_array.h
223
489
  - src/include/lib/hb_buffer.h
490
+ - src/include/lib/hb_clock.h
224
491
  - src/include/lib/hb_foreach.h
225
492
  - src/include/lib/hb_narray.h
226
493
  - src/include/lib/hb_string.h
@@ -438,7 +705,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
438
705
  - !ruby/object:Gem::Version
439
706
  version: 3.3.22
440
707
  requirements: []
441
- rubygems_version: 4.0.3
708
+ rubygems_version: 4.0.6
442
709
  specification_version: 4
443
710
  summary: The modern HTML+ERB Toolchain
444
711
  test_files: []
@@ -1,6 +0,0 @@
1
- module DidYouMean
2
- class SpellChecker
3
- def initialize: (dictionary: Array[String]) -> void
4
- def correct: (String input) -> Array[String]
5
- end
6
- end
@@ -1,4 +0,0 @@
1
- module Parallel
2
- def self.map: [T, U] (Array[T], ?in_processes: Integer) { (T) -> U } -> Array[U]
3
- def self.processor_count: () -> Integer
4
- end