phlex-rails 2.0.0.beta2 → 2.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/phlex/install/templates/base_view.rb.erb +2 -2
  3. data/lib/phlex/rails/buffered.rb +2 -2
  4. data/lib/phlex/rails/helper_macros.rb +0 -5
  5. data/lib/phlex/rails/helpers/action_cable_meta_tag.rb +4 -5
  6. data/lib/phlex/rails/helpers/action_name.rb +4 -4
  7. data/lib/phlex/rails/helpers/asset_path.rb +4 -9
  8. data/lib/phlex/rails/helpers/asset_url.rb +5 -2
  9. data/lib/phlex/rails/helpers/audio_path.rb +1 -2
  10. data/lib/phlex/rails/helpers/audio_tag.rb +1 -3
  11. data/lib/phlex/rails/helpers/audio_url.rb +1 -2
  12. data/lib/phlex/rails/helpers/auto_discovery_link_tag.rb +1 -3
  13. data/lib/phlex/rails/helpers/build_tag_values.rb +1 -2
  14. data/lib/phlex/rails/helpers/button_tag.rb +1 -3
  15. data/lib/phlex/rails/helpers/button_to.rb +1 -3
  16. data/lib/phlex/rails/helpers/check_box.rb +1 -3
  17. data/lib/phlex/rails/helpers/check_box_tag.rb +1 -3
  18. data/lib/phlex/rails/helpers/class_names.rb +1 -2
  19. data/lib/phlex/rails/helpers/collection_check_boxes.rb +1 -4
  20. data/lib/phlex/rails/helpers/collection_radio_buttons.rb +1 -4
  21. data/lib/phlex/rails/helpers/collection_select.rb +1 -3
  22. data/lib/phlex/rails/helpers/color_field.rb +1 -3
  23. data/lib/phlex/rails/helpers/color_field_tag.rb +1 -3
  24. data/lib/phlex/rails/helpers/compute_asset_extname.rb +1 -2
  25. data/lib/phlex/rails/helpers/compute_asset_host.rb +1 -2
  26. data/lib/phlex/rails/helpers/compute_asset_path.rb +1 -2
  27. data/lib/phlex/rails/helpers/content_for.rb +2 -4
  28. data/lib/phlex/rails/helpers/content_tag.rb +1 -3
  29. data/lib/phlex/rails/helpers/controller_name.rb +1 -2
  30. data/lib/phlex/rails/helpers/controller_path.rb +1 -2
  31. data/lib/phlex/rails/helpers/csp_meta_tag.rb +1 -3
  32. data/lib/phlex/rails/helpers/csrf_meta_tags.rb +1 -3
  33. data/lib/phlex/rails/helpers/current_cycle.rb +1 -2
  34. data/lib/phlex/rails/helpers/current_page.rb +1 -2
  35. data/lib/phlex/rails/helpers/cycle.rb +1 -2
  36. data/lib/phlex/rails/helpers/date_field.rb +1 -3
  37. data/lib/phlex/rails/helpers/date_field_tag.rb +1 -3
  38. data/lib/phlex/rails/helpers/date_select.rb +1 -3
  39. data/lib/phlex/rails/helpers/datetime_field.rb +1 -3
  40. data/lib/phlex/rails/helpers/datetime_field_tag.rb +1 -3
  41. data/lib/phlex/rails/helpers/datetime_local_field.rb +1 -3
  42. data/lib/phlex/rails/helpers/datetime_local_field_tag.rb +1 -3
  43. data/lib/phlex/rails/helpers/datetime_select.rb +1 -3
  44. data/lib/phlex/rails/helpers/debug.rb +1 -3
  45. data/lib/phlex/rails/helpers/default_url_options.rb +1 -2
  46. data/lib/phlex/rails/helpers/distance_of_time_in_words.rb +1 -2
  47. data/lib/phlex/rails/helpers/distance_of_time_in_words_to_now.rb +1 -2
  48. data/lib/phlex/rails/helpers/dom_class.rb +1 -2
  49. data/lib/phlex/rails/helpers/dom_id.rb +1 -2
  50. data/lib/phlex/rails/helpers/email_field.rb +1 -3
  51. data/lib/phlex/rails/helpers/email_field_tag.rb +1 -3
  52. data/lib/phlex/rails/helpers/error_message.rb +1 -2
  53. data/lib/phlex/rails/helpers/error_wrapping.rb +1 -3
  54. data/lib/phlex/rails/helpers/escape_once.rb +1 -2
  55. data/lib/phlex/rails/helpers/excerpt.rb +1 -2
  56. data/lib/phlex/rails/helpers/favicon_link_tag.rb +1 -3
  57. data/lib/phlex/rails/helpers/field_id.rb +1 -2
  58. data/lib/phlex/rails/helpers/field_name.rb +1 -2
  59. data/lib/phlex/rails/helpers/field_set_tag.rb +1 -3
  60. data/lib/phlex/rails/helpers/fields.rb +1 -4
  61. data/lib/phlex/rails/helpers/fields_for.rb +1 -4
  62. data/lib/phlex/rails/helpers/file_field.rb +1 -3
  63. data/lib/phlex/rails/helpers/file_field_tag.rb +1 -3
  64. data/lib/phlex/rails/helpers/flash.rb +1 -2
  65. data/lib/phlex/rails/helpers/font_path.rb +1 -2
  66. data/lib/phlex/rails/helpers/font_url.rb +1 -2
  67. data/lib/phlex/rails/helpers/form_for.rb +1 -4
  68. data/lib/phlex/rails/helpers/form_tag.rb +1 -3
  69. data/lib/phlex/rails/helpers/form_with.rb +1 -4
  70. data/lib/phlex/rails/helpers/grouped_collection_select.rb +1 -3
  71. data/lib/phlex/rails/helpers/grouped_options_for_select.rb +1 -3
  72. data/lib/phlex/rails/helpers/hidden_field.rb +1 -3
  73. data/lib/phlex/rails/helpers/hidden_field_tag.rb +1 -3
  74. data/lib/phlex/rails/helpers/highlight.rb +1 -3
  75. data/lib/phlex/rails/helpers/image_path.rb +1 -2
  76. data/lib/phlex/rails/helpers/image_submit_tag.rb +1 -3
  77. data/lib/phlex/rails/helpers/image_tag.rb +1 -3
  78. data/lib/phlex/rails/helpers/image_url.rb +1 -2
  79. data/lib/phlex/rails/helpers/javascript_import_module_tag.rb +1 -3
  80. data/lib/phlex/rails/helpers/javascript_importmap_tags.rb +1 -3
  81. data/lib/phlex/rails/helpers/javascript_include_tag.rb +1 -3
  82. data/lib/phlex/rails/helpers/javascript_path.rb +1 -2
  83. data/lib/phlex/rails/helpers/javascript_tag.rb +1 -3
  84. data/lib/phlex/rails/helpers/javascript_url.rb +1 -2
  85. data/lib/phlex/rails/helpers/l.rb +1 -2
  86. data/lib/phlex/rails/helpers/label.rb +1 -2
  87. data/lib/phlex/rails/helpers/label_tag.rb +1 -3
  88. data/lib/phlex/rails/helpers/link_to.rb +1 -3
  89. data/lib/phlex/rails/helpers/link_to_if.rb +1 -3
  90. data/lib/phlex/rails/helpers/link_to_unless.rb +1 -3
  91. data/lib/phlex/rails/helpers/link_to_unless_current.rb +1 -3
  92. data/lib/phlex/rails/helpers/localize.rb +1 -2
  93. data/lib/phlex/rails/helpers/mail_to.rb +1 -3
  94. data/lib/phlex/rails/helpers/month_field.rb +1 -3
  95. data/lib/phlex/rails/helpers/month_field_tag.rb +1 -3
  96. data/lib/phlex/rails/helpers/notice.rb +1 -2
  97. data/lib/phlex/rails/helpers/number_field.rb +1 -3
  98. data/lib/phlex/rails/helpers/number_field_tag.rb +1 -3
  99. data/lib/phlex/rails/helpers/number_to_currency.rb +1 -2
  100. data/lib/phlex/rails/helpers/number_to_human.rb +1 -2
  101. data/lib/phlex/rails/helpers/number_to_human_size.rb +1 -2
  102. data/lib/phlex/rails/helpers/number_to_percentage.rb +1 -2
  103. data/lib/phlex/rails/helpers/number_to_phone.rb +1 -2
  104. data/lib/phlex/rails/helpers/number_with_delimiter.rb +1 -2
  105. data/lib/phlex/rails/helpers/number_with_precision.rb +1 -2
  106. data/lib/phlex/rails/helpers/object.rb +1 -2
  107. data/lib/phlex/rails/helpers/option_groups_from_collection_for_select.rb +1 -3
  108. data/lib/phlex/rails/helpers/options_for_select.rb +1 -3
  109. data/lib/phlex/rails/helpers/options_from_collection_for_select.rb +1 -3
  110. data/lib/phlex/rails/helpers/password_field.rb +1 -3
  111. data/lib/phlex/rails/helpers/password_field_tag.rb +1 -3
  112. data/lib/phlex/rails/helpers/path_to_asset.rb +1 -2
  113. data/lib/phlex/rails/helpers/path_to_audio.rb +1 -2
  114. data/lib/phlex/rails/helpers/path_to_font.rb +1 -2
  115. data/lib/phlex/rails/helpers/path_to_image.rb +1 -2
  116. data/lib/phlex/rails/helpers/path_to_javascript.rb +1 -2
  117. data/lib/phlex/rails/helpers/path_to_stylesheet.rb +1 -2
  118. data/lib/phlex/rails/helpers/path_to_video.rb +1 -2
  119. data/lib/phlex/rails/helpers/phone_field.rb +1 -3
  120. data/lib/phlex/rails/helpers/phone_field_tag.rb +1 -3
  121. data/lib/phlex/rails/helpers/phone_to.rb +1 -3
  122. data/lib/phlex/rails/helpers/pluralize.rb +1 -3
  123. data/lib/phlex/rails/helpers/preload_link_tag.rb +1 -3
  124. data/lib/phlex/rails/helpers/provide.rb +1 -2
  125. data/lib/phlex/rails/helpers/public_compute_asset_path.rb +1 -2
  126. data/lib/phlex/rails/helpers/radio_button.rb +1 -3
  127. data/lib/phlex/rails/helpers/radio_button_tag.rb +1 -3
  128. data/lib/phlex/rails/helpers/range_field.rb +1 -3
  129. data/lib/phlex/rails/helpers/range_field_tag.rb +1 -3
  130. data/lib/phlex/rails/helpers/request.rb +1 -2
  131. data/lib/phlex/rails/helpers/reset_cycle.rb +1 -2
  132. data/lib/phlex/rails/helpers/rich_text_area.rb +1 -3
  133. data/lib/phlex/rails/helpers/sanitize.rb +1 -2
  134. data/lib/phlex/rails/helpers/sanitize_css.rb +1 -2
  135. data/lib/phlex/rails/helpers/search_field.rb +1 -3
  136. data/lib/phlex/rails/helpers/search_field_tag.rb +1 -3
  137. data/lib/phlex/rails/helpers/select.rb +1 -3
  138. data/lib/phlex/rails/helpers/select_date.rb +1 -3
  139. data/lib/phlex/rails/helpers/select_datetime.rb +1 -3
  140. data/lib/phlex/rails/helpers/select_day.rb +1 -3
  141. data/lib/phlex/rails/helpers/select_hour.rb +1 -3
  142. data/lib/phlex/rails/helpers/select_minute.rb +1 -3
  143. data/lib/phlex/rails/helpers/select_month.rb +1 -3
  144. data/lib/phlex/rails/helpers/select_second.rb +1 -3
  145. data/lib/phlex/rails/helpers/select_tag.rb +1 -3
  146. data/lib/phlex/rails/helpers/select_time.rb +1 -3
  147. data/lib/phlex/rails/helpers/select_year.rb +1 -3
  148. data/lib/phlex/rails/helpers/simple_format.rb +1 -3
  149. data/lib/phlex/rails/helpers/sms_to.rb +1 -3
  150. data/lib/phlex/rails/helpers/strip_links.rb +1 -2
  151. data/lib/phlex/rails/helpers/strip_tags.rb +1 -2
  152. data/lib/phlex/rails/helpers/stylesheet_link_tag.rb +1 -3
  153. data/lib/phlex/rails/helpers/stylesheet_path.rb +1 -2
  154. data/lib/phlex/rails/helpers/stylesheet_url.rb +1 -2
  155. data/lib/phlex/rails/helpers/submit_tag.rb +1 -3
  156. data/lib/phlex/rails/helpers/tag.rb +2 -5
  157. data/lib/phlex/rails/helpers/telephone_field.rb +1 -3
  158. data/lib/phlex/rails/helpers/telephone_field_tag.rb +1 -3
  159. data/lib/phlex/rails/helpers/text_area.rb +1 -3
  160. data/lib/phlex/rails/helpers/text_area_tag.rb +1 -3
  161. data/lib/phlex/rails/helpers/text_field.rb +1 -3
  162. data/lib/phlex/rails/helpers/text_field_tag.rb +1 -3
  163. data/lib/phlex/rails/helpers/time_ago_in_words.rb +1 -2
  164. data/lib/phlex/rails/helpers/time_field.rb +1 -3
  165. data/lib/phlex/rails/helpers/time_field_tag.rb +1 -3
  166. data/lib/phlex/rails/helpers/time_select.rb +1 -3
  167. data/lib/phlex/rails/helpers/time_tag.rb +1 -3
  168. data/lib/phlex/rails/helpers/time_zone_options_for_select.rb +1 -3
  169. data/lib/phlex/rails/helpers/time_zone_select.rb +1 -3
  170. data/lib/phlex/rails/helpers/token_list.rb +1 -2
  171. data/lib/phlex/rails/helpers/truncate.rb +7 -2
  172. data/lib/phlex/rails/helpers/turbo_frame_tag.rb +1 -2
  173. data/lib/phlex/rails/helpers/turbo_include_tags.rb +1 -2
  174. data/lib/phlex/rails/helpers/turbo_refresh_method_tag.rb +1 -2
  175. data/lib/phlex/rails/helpers/turbo_refresh_scroll_tag.rb +1 -2
  176. data/lib/phlex/rails/helpers/turbo_refreshes_with.rb +1 -3
  177. data/lib/phlex/rails/helpers/turbo_stream_from.rb +1 -2
  178. data/lib/phlex/rails/helpers/url_field.rb +1 -3
  179. data/lib/phlex/rails/helpers/url_field_tag.rb +1 -3
  180. data/lib/phlex/rails/helpers/url_for.rb +1 -2
  181. data/lib/phlex/rails/helpers/url_options.rb +1 -2
  182. data/lib/phlex/rails/helpers/url_to_asset.rb +1 -2
  183. data/lib/phlex/rails/helpers/url_to_audio.rb +1 -2
  184. data/lib/phlex/rails/helpers/url_to_font.rb +1 -2
  185. data/lib/phlex/rails/helpers/url_to_image.rb +1 -2
  186. data/lib/phlex/rails/helpers/url_to_javascript.rb +1 -2
  187. data/lib/phlex/rails/helpers/url_to_stylesheet.rb +1 -2
  188. data/lib/phlex/rails/helpers/url_to_video.rb +1 -2
  189. data/lib/phlex/rails/helpers/utf8_enforcer_tag.rb +1 -3
  190. data/lib/phlex/rails/helpers/video_path.rb +1 -2
  191. data/lib/phlex/rails/helpers/video_tag.rb +1 -3
  192. data/lib/phlex/rails/helpers/video_url.rb +1 -2
  193. data/lib/phlex/rails/helpers/week_field.rb +1 -3
  194. data/lib/phlex/rails/helpers/week_field_tag.rb +1 -3
  195. data/lib/phlex/rails/helpers/weekday_options_for_select.rb +1 -3
  196. data/lib/phlex/rails/helpers/weekday_select.rb +1 -3
  197. data/lib/phlex/rails/helpers/with_output_buffer.rb +1 -3
  198. data/lib/phlex/rails/helpers/word_wrap.rb +1 -2
  199. data/lib/phlex/rails/layout.rb +1 -1
  200. data/lib/phlex/rails/partial.rb +15 -0
  201. data/lib/phlex/rails/sgml.rb +24 -20
  202. data/lib/phlex/rails/testing.rb +1 -1
  203. data/lib/phlex/rails/unbuffered.rb +16 -22
  204. data/lib/phlex/rails/version.rb +1 -1
  205. data/lib/phlex/rails.rb +2 -3
  206. metadata +7 -8
  207. data/lib/phlex/rails/engine.rb +0 -10
  208. data/lib/phlex/rails/fragment_finder.rb +0 -28
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::UTF8EnforcerTag
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method utf8_enforcer_tag(...)
7
- # @return [nil]
8
- register_output_helper :utf8_enforcer_tag
6
+ register_output_helper def utf8_enforcer_tag(...) = nil
9
7
  end
@@ -3,6 +3,5 @@
3
3
  module Phlex::Rails::Helpers::VideoPath
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method video_path(...)
7
- register_value_helper :video_path
6
+ register_value_helper def video_path(...) = nil
8
7
  end
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::VideoTag
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method video_tag(...)
7
- # @return [nil]
8
- register_output_helper :video_tag
6
+ register_output_helper def video_tag(...) = nil
9
7
  end
@@ -3,6 +3,5 @@
3
3
  module Phlex::Rails::Helpers::VideoURL
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method video_url(...)
7
- register_value_helper :video_url
6
+ register_value_helper def video_url(...) = nil
8
7
  end
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::WeekField
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method week_field(...)
7
- # @return [nil]
8
- register_output_helper :week_field
6
+ register_output_helper def week_field(...) = nil
9
7
  end
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::WeekFieldTag
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method week_field_tag(...)
7
- # @return [nil]
8
- register_output_helper :week_field_tag
6
+ register_output_helper def week_field_tag(...) = nil
9
7
  end
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::WeekdayOptionsForSelect
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method weekday_options_for_select(...)
7
- # @return [nil]
8
- register_output_helper :weekday_options_for_select
6
+ register_output_helper def weekday_options_for_select(...) = nil
9
7
  end
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::WeekdaySelect
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method weekday_select(...)
7
- # @return [nil]
8
- register_output_helper :weekday_select
6
+ register_output_helper def weekday_select(...) = nil
9
7
  end
@@ -3,7 +3,5 @@
3
3
  module Phlex::Rails::Helpers::WithOutputBuffer
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method with_output_buffer(...)
7
- # @return [nil]
8
- register_output_helper :with_output_buffer
6
+ register_output_helper def with_output_buffer(...) = nil
9
7
  end
@@ -3,6 +3,5 @@
3
3
  module Phlex::Rails::Helpers::WordWrap
4
4
  extend Phlex::Rails::HelperMacros
5
5
 
6
- # @!method word_wrap(...)
7
- register_value_helper :word_wrap
6
+ register_value_helper def word_wrap(...) = nil
8
7
  end
@@ -46,7 +46,7 @@ module Phlex::Rails
46
46
  end
47
47
 
48
48
  def render(view_context = nil, *args, **kwargs, &block)
49
- if @_context
49
+ if @_state
50
50
  super
51
51
  else
52
52
  call(view_context:) do |yielded|
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Phlex::Rails::Partial
4
+ def initialize(path, *args, **kwargs, &block)
5
+ @path = path
6
+ @args = args
7
+ @kwargs = kwargs
8
+ @block = block
9
+ end
10
+
11
+ def render_in(view_context, &block)
12
+ block ||= @block
13
+ view_context.render(@path, *@args, **@kwargs, &block)
14
+ end
15
+ end
@@ -10,11 +10,25 @@ module Phlex
10
10
  end
11
11
 
12
12
  module Overrides
13
+ class HelpersCalledBeforeRenderError < StandardError; end
14
+
15
+ def partial(*, **, &block)
16
+ if block
17
+ Phlex::Rails::Partial.new(*, **) { capture(&block) }
18
+ else
19
+ Phlex::Rails::Partial.new(*, **)
20
+ end
21
+ end
22
+
13
23
  def helpers
14
- if defined?(ViewComponent::Base) && ViewComponent::Base === @_view_context
15
- @_view_context.helpers
24
+ unless @_state && (view_context = @_state.view_context)
25
+ raise HelpersCalledBeforeRenderError.new("Do not use rails helpers until after the view has been rendered.") unless view_context
26
+ end
27
+
28
+ if defined?(ViewComponent::Base) && ViewComponent::Base === view_context
29
+ view_context.helpers
16
30
  else
17
- @_view_context
31
+ view_context
18
32
  end
19
33
  end
20
34
 
@@ -29,19 +43,13 @@ module Phlex
29
43
  when Enumerable
30
44
  return super unless ActiveRecord::Relation === renderable
31
45
  when nil
32
- partial = kwargs.delete(:partial)
33
-
34
- if partial # this is a hack to get around https://github.com/rails/rails/issues/51015
35
- return raw(
36
- @_view_context.render(partial, **kwargs) do |*yielded_args|
37
- capture(*yielded_args, &block)
38
- end,
39
- )
40
- end
46
+ return super if kwargs.length == 0
41
47
  end
42
48
 
49
+ return super if args.length == 0 && kwargs.length == 0
50
+
43
51
  output = if block
44
- @_view_context.render(*args, **kwargs) do |*yielded_args|
52
+ @_state.view_context.render(*args, **kwargs) do |*yielded_args|
45
53
  if yielded_args.length == 1 && defined?(ViewComponent::Base) && ViewComponent::Base === yielded_args[0]
46
54
  capture(Phlex::Rails::Buffered.new(yielded_args[0], view: self), &block)
47
55
  else
@@ -49,19 +57,15 @@ module Phlex
49
57
  end
50
58
  end
51
59
  else
52
- @_view_context.render(*args, **kwargs)
60
+ @_state.view_context.render(*args, **kwargs)
53
61
  end
54
62
 
55
63
  raw(output)
56
64
  end
57
65
 
58
66
  def render_in(view_context, &erb)
59
- fragments = if view_context.request && (fragment_header = view_context.request.headers["X-Fragment"])
60
- fragment_header.split
61
- end
62
-
63
67
  if erb
64
- call(view_context:, fragments:) { |*args|
68
+ call(view_context:) { |*args|
65
69
  if args.length == 1 && Phlex::SGML === args[0] && !erb.source_location&.[](0)&.end_with?(".rb")
66
70
  unbuffered = Phlex::Rails::Unbuffered.new(args[0])
67
71
  raw(helpers.capture(unbuffered, &erb))
@@ -70,7 +74,7 @@ module Phlex
70
74
  end
71
75
  }.html_safe
72
76
  else
73
- call(view_context:, fragments:).html_safe
77
+ call(view_context:).html_safe
74
78
  end
75
79
  end
76
80
 
@@ -13,6 +13,6 @@ module Phlex::Testing::RailsContext
13
13
  end
14
14
  end
15
15
 
16
- Phlex::Testing::SGML.include(
16
+ Phlex::Testing::SGML.prepend(
17
17
  Phlex::Testing::RailsContext,
18
18
  )
@@ -6,17 +6,27 @@ class Phlex::Rails::Unbuffered
6
6
  @component = component
7
7
  end
8
8
 
9
+ def inspect
10
+ "Unbuffered(#{@component.inspect})"
11
+ end
12
+
13
+ def public_send(...)
14
+ @component.public_send(...)
15
+ end
16
+
9
17
  def respond_to_missing?(...)
10
18
  @component.respond_to?(...)
11
19
  end
12
20
 
13
21
  def method_missing(method_name, *, **, &erb)
14
- if @component.respond_to?(method_name)
15
- output = @component.capture do
22
+ component = @component
23
+
24
+ if component.respond_to?(method_name)
25
+ output = component.capture do
16
26
  if erb
17
- @component.public_send(method_name, *, **) do |*a, **kw|
18
- @component.raw(
19
- @component.helpers.capture(
27
+ component.public_send(method_name, *, **) do |*a, **kw|
28
+ component.raw(
29
+ component.helpers.capture(
20
30
  *a,
21
31
  **kw,
22
32
  &erb
@@ -24,27 +34,11 @@ class Phlex::Rails::Unbuffered
24
34
  )
25
35
  end
26
36
  else # no erb block
27
- @component.public_send(method_name, *, **)
37
+ component.public_send(method_name, *, **)
28
38
  end
29
39
  end
30
40
  else
31
41
  super
32
42
  end
33
43
  end
34
-
35
- def inspect
36
- "Unbuffered(#{@component.inspect})"
37
- end
38
-
39
- def call(...)
40
- @component.call(...)
41
- end
42
-
43
- def send(...)
44
- @component.__send__(...)
45
- end
46
-
47
- def public_send(...)
48
- @component.public_send(...)
49
- end
50
44
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Phlex
4
4
  module Rails
5
- VERSION = "2.0.0.beta2"
5
+ VERSION = "2.0.0.rc2"
6
6
  end
7
7
  end
data/lib/phlex/rails.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "phlex"
4
- require "phlex/rails/engine"
5
4
 
6
5
  module Phlex
7
6
  module Rails
@@ -11,12 +10,12 @@ module Phlex
11
10
  autoload :BufferedLabelBuilder, "phlex/rails/buffered_label_builder"
12
11
  autoload :BufferedRadioButtonBuilder, "phlex/rails/buffered_radio_button_builder"
13
12
  autoload :CSV, "phlex/rails/csv"
14
- autoload :FragmentFinder, "phlex/rails/fragment_finder"
13
+ autoload :HTML, "phlex/rails/html"
15
14
  autoload :HelperFinder, "phlex/rails/helper_finder"
16
15
  autoload :HelperMacros, "phlex/rails/helper_macros"
17
16
  autoload :Helpers, "phlex/rails/helpers"
18
- autoload :HTML, "phlex/rails/html"
19
17
  autoload :Layout, "phlex/rails/layout"
18
+ autoload :Partial, "phlex/rails/partial"
20
19
  autoload :SGML, "phlex/rails/sgml"
21
20
  autoload :Streaming, "phlex/rails/streaming"
22
21
  autoload :Unbuffered, "phlex/rails/unbuffered"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlex-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta2
4
+ version: 2.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Drapper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-14 00:00:00.000000000 Z
11
+ date: 2025-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0.beta2
19
+ version: 2.0.0.rc2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.0.beta2
26
+ version: 2.0.0.rc2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: railties
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '6.1'
34
34
  - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '8'
36
+ version: '9'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '6.1'
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '8'
46
+ version: '9'
47
47
  description: A high-performance view framework optimised for fun.
48
48
  email:
49
49
  - joel@drapper.me
@@ -72,8 +72,6 @@ files:
72
72
  - lib/phlex/rails/buffered_label_builder.rb
73
73
  - lib/phlex/rails/buffered_radio_button_builder.rb
74
74
  - lib/phlex/rails/csv.rb
75
- - lib/phlex/rails/engine.rb
76
- - lib/phlex/rails/fragment_finder.rb
77
75
  - lib/phlex/rails/helper_finder.rb
78
76
  - lib/phlex/rails/helper_macros.rb
79
77
  - lib/phlex/rails/helpers.rb
@@ -277,6 +275,7 @@ files:
277
275
  - lib/phlex/rails/helpers/word_wrap.rb
278
276
  - lib/phlex/rails/html.rb
279
277
  - lib/phlex/rails/layout.rb
278
+ - lib/phlex/rails/partial.rb
280
279
  - lib/phlex/rails/sgml.rb
281
280
  - lib/phlex/rails/streaming.rb
282
281
  - lib/phlex/rails/testing.rb
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rails/engine"
4
-
5
- module Phlex
6
- module Rails
7
- class Engine < ::Rails::Engine
8
- end
9
- end
10
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Phlex::Rails::FragmentFinder
4
- extend self
5
-
6
- Parser = if defined?(Nokolexbor)
7
- Nokolexbor
8
- else
9
- require "nokogiri"
10
- Nokogiri::HTML
11
- end
12
-
13
- def extract(html, ids)
14
- parsed = Parser.parse(html)
15
- selector = ids.map { |id| "##{id}" }.join(", ")
16
-
17
- result = +""
18
-
19
- ids.count.times do
20
- if (fragment = parsed.at_css(selector))
21
- result << fragment.to_s
22
- fragment.remove
23
- end
24
- end
25
-
26
- result
27
- end
28
- end