phlex-rails 2.0.0.rc2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -6
- data/lib/generators/phlex/component/component_generator.rb +7 -3
- data/lib/generators/phlex/install/install_generator.rb +5 -36
- data/lib/generators/phlex/view/view_generator.rb +6 -2
- data/lib/phlex/rails/buffered.rb +9 -12
- data/lib/phlex/rails/buffered_checkbox_builder.rb +0 -4
- data/lib/phlex/rails/buffered_form_builder.rb +0 -64
- data/lib/phlex/rails/buffered_label_builder.rb +0 -3
- data/lib/phlex/rails/buffered_radio_button_builder.rb +0 -4
- data/lib/phlex/rails/csv.rb +4 -6
- data/lib/phlex/rails/helper_macros.rb +7 -8
- data/lib/phlex/rails/helpers/asset_url.rb +0 -1
- data/lib/phlex/rails/helpers/audio_path.rb +3 -0
- data/lib/phlex/rails/helpers/audio_tag.rb +1 -0
- data/lib/phlex/rails/helpers/audio_url.rb +1 -0
- data/lib/phlex/rails/helpers/auto_discovery_link_tag.rb +1 -0
- data/lib/phlex/rails/helpers/build_tag_values.rb +1 -0
- data/lib/phlex/rails/helpers/button_tag.rb +1 -0
- data/lib/phlex/rails/helpers/button_to.rb +1 -0
- data/lib/phlex/rails/helpers/check_box.rb +1 -0
- data/lib/phlex/rails/helpers/check_box_tag.rb +1 -0
- data/lib/phlex/rails/helpers/class_names.rb +1 -0
- data/lib/phlex/rails/helpers/collection_check_boxes.rb +1 -0
- data/lib/phlex/rails/helpers/collection_radio_buttons.rb +1 -0
- data/lib/phlex/rails/helpers/collection_select.rb +1 -0
- data/lib/phlex/rails/helpers/color_field.rb +1 -0
- data/lib/phlex/rails/helpers/color_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/compute_asset_extname.rb +1 -0
- data/lib/phlex/rails/helpers/compute_asset_host.rb +1 -0
- data/lib/phlex/rails/helpers/compute_asset_path.rb +1 -0
- data/lib/phlex/rails/helpers/content_for.rb +4 -2
- data/lib/phlex/rails/helpers/content_tag.rb +1 -0
- data/lib/phlex/rails/helpers/controller_name.rb +1 -0
- data/lib/phlex/rails/helpers/controller_path.rb +1 -0
- data/lib/phlex/rails/helpers/csp_meta_tag.rb +1 -0
- data/lib/phlex/rails/helpers/csrf_meta_tags.rb +1 -0
- data/lib/phlex/rails/helpers/current_cycle.rb +1 -0
- data/lib/phlex/rails/helpers/current_page.rb +1 -0
- data/lib/phlex/rails/helpers/cycle.rb +1 -0
- data/lib/phlex/rails/helpers/date_field.rb +1 -0
- data/lib/phlex/rails/helpers/date_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/date_select.rb +1 -0
- data/lib/phlex/rails/helpers/datetime_field.rb +1 -0
- data/lib/phlex/rails/helpers/datetime_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/datetime_local_field.rb +1 -0
- data/lib/phlex/rails/helpers/datetime_local_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/datetime_select.rb +1 -0
- data/lib/phlex/rails/helpers/debug.rb +1 -0
- data/lib/phlex/rails/helpers/default_url_options.rb +1 -0
- data/lib/phlex/rails/helpers/distance_of_time_in_words.rb +1 -0
- data/lib/phlex/rails/helpers/distance_of_time_in_words_to_now.rb +1 -0
- data/lib/phlex/rails/helpers/dom_class.rb +1 -0
- data/lib/phlex/rails/helpers/dom_id.rb +1 -0
- data/lib/phlex/rails/helpers/email_field.rb +1 -0
- data/lib/phlex/rails/helpers/email_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/error_message.rb +1 -0
- data/lib/phlex/rails/helpers/error_wrapping.rb +1 -0
- data/lib/phlex/rails/helpers/escape_once.rb +1 -0
- data/lib/phlex/rails/helpers/excerpt.rb +1 -0
- data/lib/phlex/rails/helpers/favicon_link_tag.rb +1 -0
- data/lib/phlex/rails/helpers/field_id.rb +1 -0
- data/lib/phlex/rails/helpers/field_name.rb +1 -0
- data/lib/phlex/rails/helpers/field_set_tag.rb +1 -0
- data/lib/phlex/rails/helpers/fields.rb +1 -0
- data/lib/phlex/rails/helpers/fields_for.rb +1 -0
- data/lib/phlex/rails/helpers/file_field.rb +1 -0
- data/lib/phlex/rails/helpers/file_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/flash.rb +1 -0
- data/lib/phlex/rails/helpers/font_path.rb +1 -0
- data/lib/phlex/rails/helpers/font_url.rb +1 -0
- data/lib/phlex/rails/helpers/form_authenticity_token.rb +8 -0
- data/lib/phlex/rails/helpers/form_for.rb +1 -0
- data/lib/phlex/rails/helpers/form_tag.rb +1 -0
- data/lib/phlex/rails/helpers/form_with.rb +1 -0
- data/lib/phlex/rails/helpers/grouped_collection_select.rb +1 -0
- data/lib/phlex/rails/helpers/grouped_options_for_select.rb +1 -0
- data/lib/phlex/rails/helpers/hidden_field.rb +1 -0
- data/lib/phlex/rails/helpers/hidden_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/highlight.rb +1 -0
- data/lib/phlex/rails/helpers/image_path.rb +1 -0
- data/lib/phlex/rails/helpers/image_submit_tag.rb +1 -0
- data/lib/phlex/rails/helpers/image_tag.rb +1 -0
- data/lib/phlex/rails/helpers/image_url.rb +1 -0
- data/lib/phlex/rails/helpers/javascript_import_module_tag.rb +1 -0
- data/lib/phlex/rails/helpers/javascript_importmap_tags.rb +1 -0
- data/lib/phlex/rails/helpers/javascript_include_tag.rb +1 -0
- data/lib/phlex/rails/helpers/javascript_path.rb +1 -0
- data/lib/phlex/rails/helpers/javascript_tag.rb +1 -0
- data/lib/phlex/rails/helpers/javascript_url.rb +1 -0
- data/lib/phlex/rails/helpers/l.rb +1 -0
- data/lib/phlex/rails/helpers/label.rb +1 -0
- data/lib/phlex/rails/helpers/label_tag.rb +3 -0
- data/lib/phlex/rails/helpers/link_to.rb +1 -0
- data/lib/phlex/rails/helpers/link_to_if.rb +1 -0
- data/lib/phlex/rails/helpers/link_to_unless.rb +1 -0
- data/lib/phlex/rails/helpers/link_to_unless_current.rb +1 -0
- data/lib/phlex/rails/helpers/localize.rb +1 -0
- data/lib/phlex/rails/helpers/mail_to.rb +1 -0
- data/lib/phlex/rails/helpers/month_field.rb +1 -0
- data/lib/phlex/rails/helpers/month_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/notice.rb +1 -0
- data/lib/phlex/rails/helpers/number_field.rb +1 -0
- data/lib/phlex/rails/helpers/number_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/number_to_currency.rb +1 -0
- data/lib/phlex/rails/helpers/number_to_human.rb +1 -0
- data/lib/phlex/rails/helpers/number_to_human_size.rb +1 -0
- data/lib/phlex/rails/helpers/number_to_percentage.rb +1 -0
- data/lib/phlex/rails/helpers/number_to_phone.rb +1 -0
- data/lib/phlex/rails/helpers/number_with_delimiter.rb +1 -0
- data/lib/phlex/rails/helpers/number_with_precision.rb +1 -0
- data/lib/phlex/rails/helpers/object.rb +1 -0
- data/lib/phlex/rails/helpers/option_groups_from_collection_for_select.rb +1 -0
- data/lib/phlex/rails/helpers/options_for_select.rb +1 -0
- data/lib/phlex/rails/helpers/options_from_collection_for_select.rb +1 -0
- data/lib/phlex/rails/helpers/password_field.rb +1 -0
- data/lib/phlex/rails/helpers/password_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_asset.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_audio.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_font.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_image.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_javascript.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_stylesheet.rb +1 -0
- data/lib/phlex/rails/helpers/path_to_video.rb +1 -0
- data/lib/phlex/rails/helpers/phone_field.rb +1 -0
- data/lib/phlex/rails/helpers/phone_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/phone_to.rb +1 -0
- data/lib/phlex/rails/helpers/pluralize.rb +1 -0
- data/lib/phlex/rails/helpers/preload_link_tag.rb +1 -0
- data/lib/phlex/rails/helpers/provide.rb +1 -0
- data/lib/phlex/rails/helpers/public_compute_asset_path.rb +1 -0
- data/lib/phlex/rails/helpers/radio_button.rb +1 -0
- data/lib/phlex/rails/helpers/radio_button_tag.rb +1 -0
- data/lib/phlex/rails/helpers/range_field.rb +1 -0
- data/lib/phlex/rails/helpers/range_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/request.rb +1 -0
- data/lib/phlex/rails/helpers/reset_cycle.rb +1 -0
- data/lib/phlex/rails/helpers/rich_text_area.rb +1 -0
- data/lib/phlex/rails/helpers/sanitize.rb +1 -0
- data/lib/phlex/rails/helpers/sanitize_css.rb +1 -0
- data/lib/phlex/rails/helpers/search_field.rb +1 -0
- data/lib/phlex/rails/helpers/search_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/select.rb +1 -0
- data/lib/phlex/rails/helpers/select_date.rb +1 -0
- data/lib/phlex/rails/helpers/select_datetime.rb +1 -0
- data/lib/phlex/rails/helpers/select_day.rb +1 -0
- data/lib/phlex/rails/helpers/select_hour.rb +1 -0
- data/lib/phlex/rails/helpers/select_minute.rb +1 -0
- data/lib/phlex/rails/helpers/select_month.rb +1 -0
- data/lib/phlex/rails/helpers/select_second.rb +1 -0
- data/lib/phlex/rails/helpers/select_tag.rb +1 -0
- data/lib/phlex/rails/helpers/select_time.rb +1 -0
- data/lib/phlex/rails/helpers/select_year.rb +1 -0
- data/lib/phlex/rails/helpers/simple_format.rb +1 -0
- data/lib/phlex/rails/helpers/sms_to.rb +1 -0
- data/lib/phlex/rails/helpers/strip_links.rb +1 -0
- data/lib/phlex/rails/helpers/strip_tags.rb +1 -0
- data/lib/phlex/rails/helpers/stylesheet_link_tag.rb +1 -0
- data/lib/phlex/rails/helpers/stylesheet_path.rb +1 -0
- data/lib/phlex/rails/helpers/stylesheet_url.rb +1 -0
- data/lib/phlex/rails/helpers/submit_tag.rb +1 -0
- data/lib/phlex/rails/helpers/tag.rb +3 -3
- data/lib/phlex/rails/helpers/telephone_field.rb +1 -0
- data/lib/phlex/rails/helpers/telephone_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/text_area.rb +1 -0
- data/lib/phlex/rails/helpers/text_area_tag.rb +1 -0
- data/lib/phlex/rails/helpers/text_field.rb +1 -0
- data/lib/phlex/rails/helpers/text_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/time_ago_in_words.rb +1 -0
- data/lib/phlex/rails/helpers/time_field.rb +1 -0
- data/lib/phlex/rails/helpers/time_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/time_select.rb +1 -0
- data/lib/phlex/rails/helpers/time_tag.rb +1 -0
- data/lib/phlex/rails/helpers/time_zone_options_for_select.rb +1 -0
- data/lib/phlex/rails/helpers/time_zone_select.rb +1 -0
- data/lib/phlex/rails/helpers/token_list.rb +1 -0
- data/lib/phlex/rails/helpers/translate.rb +3 -1
- data/lib/phlex/rails/helpers/truncate.rb +2 -7
- data/lib/phlex/rails/helpers/turbo_frame_tag.rb +1 -0
- data/lib/phlex/rails/helpers/turbo_include_tags.rb +1 -0
- data/lib/phlex/rails/helpers/turbo_refresh_method_tag.rb +1 -0
- data/lib/phlex/rails/helpers/turbo_refresh_scroll_tag.rb +1 -0
- data/lib/phlex/rails/helpers/turbo_refreshes_with.rb +1 -0
- data/lib/phlex/rails/helpers/turbo_stream.rb +3 -2
- data/lib/phlex/rails/helpers/turbo_stream_from.rb +1 -0
- data/lib/phlex/rails/helpers/url_field.rb +1 -0
- data/lib/phlex/rails/helpers/url_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/url_for.rb +1 -0
- data/lib/phlex/rails/helpers/url_options.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_asset.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_audio.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_font.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_image.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_javascript.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_stylesheet.rb +1 -0
- data/lib/phlex/rails/helpers/url_to_video.rb +1 -0
- data/lib/phlex/rails/helpers/utf8_enforcer_tag.rb +1 -0
- data/lib/phlex/rails/helpers/video_path.rb +1 -0
- data/lib/phlex/rails/helpers/video_tag.rb +1 -0
- data/lib/phlex/rails/helpers/video_url.rb +1 -0
- data/lib/phlex/rails/helpers/week_field.rb +1 -0
- data/lib/phlex/rails/helpers/week_field_tag.rb +1 -0
- data/lib/phlex/rails/helpers/weekday_options_for_select.rb +1 -0
- data/lib/phlex/rails/helpers/weekday_select.rb +1 -0
- data/lib/phlex/rails/helpers/word_wrap.rb +1 -0
- data/lib/phlex/rails/helpers.rb +1 -0
- data/lib/phlex/rails/html.rb +7 -4
- data/lib/phlex/rails/layout.rb +5 -5
- data/lib/phlex/rails/sgml.rb +113 -72
- data/lib/phlex/rails/streaming.rb +2 -3
- data/lib/phlex/rails/svg.rb +12 -0
- data/lib/phlex/rails/unbuffered.rb +1 -2
- data/lib/phlex/rails/version.rb +1 -1
- data/lib/phlex/rails.rb +16 -14
- metadata +12 -11
- data/lib/phlex/rails/helper_finder.rb +0 -13
- data/lib/phlex/rails/testing.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99afebaac03dab652e1ebfa7b1037d2fa650ac46af545ac97a96c2ff1fcf36d9
|
4
|
+
data.tar.gz: a2fddfa82b2f9cdb3fcc4ee9c2e7f97e6925ee9a47ffe8eec3b5b40c1f81f127
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa23e9efa3d071729eec9e6589971b5ade4644f13d98402b94f398cc045e9b6293c55069f605b7647b5b08ba05b9a44f3a7236530b0c8f3ddd618305cdc1f501
|
7
|
+
data.tar.gz: 5715fed7d4983d3411bde34ebc35f35a3c99f1314efa348f547c945a557b26dfd6b682dd34e3098c634a34150ff9454e434c2bf041f2c45634493d4f90e76830
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# Phlex Rails
|
2
2
|
|
3
3
|
Phlex is a framework that lets you compose web views in pure Ruby.
|
4
4
|
|
@@ -20,8 +20,4 @@ Maintaining a library is a lot of work. If your company benefits from this work
|
|
20
20
|
|
21
21
|
### Security 🚨
|
22
22
|
|
23
|
-
If you
|
24
|
-
|
25
|
-
### Thanks 🙏
|
26
|
-
|
27
|
-
Thanks [Logology](https://www.logology.co) for sponsoring our logo.
|
23
|
+
If you suspect you may have found a security vulnerability, please do not open a public issue or pull request. Instead, please [send us a private advisory](https://github.com/phlex-ruby/phlex/security/advisories/new).
|
@@ -4,9 +4,13 @@ module Phlex::Generators
|
|
4
4
|
class ComponentGenerator < ::Rails::Generators::NamedBase
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
|
-
def
|
8
|
-
|
9
|
-
|
7
|
+
def create_component
|
8
|
+
template "component.rb.erb", File.join(
|
9
|
+
destination_root,
|
10
|
+
"app/components",
|
11
|
+
class_path,
|
12
|
+
"#{file_name}.rb"
|
13
|
+
)
|
10
14
|
end
|
11
15
|
end
|
12
16
|
end
|
@@ -4,47 +4,16 @@ module Phlex::Generators
|
|
4
4
|
class InstallGenerator < ::Rails::Generators::Base
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
|
-
APPLICATION_CONFIGURATION_PATH = Rails.root.join("config/application.rb")
|
8
|
-
|
9
|
-
def configure_tailwind
|
10
|
-
if tailwind_configuration_path
|
11
|
-
insert_into_file tailwind_configuration_path, after: "content: [" do
|
12
|
-
"\n './app/views/**/*.rb', // Phlex views" \
|
13
|
-
"\n './app/components/**/*.rb', // Phlex components" \
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def create_application_component
|
19
|
-
template "base_component.rb.erb", Rails.root.join("app/components/base.rb")
|
20
|
-
end
|
21
|
-
|
22
|
-
def create_application_view
|
23
|
-
template "base_view.rb.erb", Rails.root.join("app/views/base.rb")
|
24
|
-
end
|
25
|
-
|
26
7
|
def create_initializer
|
27
|
-
template "phlex.rb.erb",
|
8
|
+
template "phlex.rb.erb", File.join(destination_root, "config/initializers/phlex.rb")
|
28
9
|
end
|
29
10
|
|
30
|
-
|
31
|
-
|
32
|
-
def tailwind_configuration_path
|
33
|
-
if tailwind_configuration_files.any?
|
34
|
-
Pathname.new(
|
35
|
-
tailwind_configuration_files.first,
|
36
|
-
)
|
37
|
-
end
|
11
|
+
def create_base_component
|
12
|
+
template "base_component.rb.erb", File.join(destination_root, "app/components/base.rb")
|
38
13
|
end
|
39
14
|
|
40
|
-
def
|
41
|
-
|
42
|
-
[
|
43
|
-
"#{Rails.root}/tailwind.config.js",
|
44
|
-
"#{Rails.root}/app/**/tailwind.config.js",
|
45
|
-
"#{Rails.root}/config/**/tailwind.config.js",
|
46
|
-
],
|
47
|
-
)
|
15
|
+
def create_base_view
|
16
|
+
template "base_view.rb.erb", File.join(destination_root, "app/views/base.rb")
|
48
17
|
end
|
49
18
|
end
|
50
19
|
end
|
@@ -5,8 +5,12 @@ module Phlex::Generators
|
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
7
|
def create_view
|
8
|
-
|
9
|
-
|
8
|
+
template "view.rb.erb", File.join(
|
9
|
+
destination_root,
|
10
|
+
"app/views",
|
11
|
+
class_path,
|
12
|
+
"#{file_name}.rb"
|
13
|
+
)
|
10
14
|
end
|
11
15
|
end
|
12
16
|
end
|
data/lib/phlex/rails/buffered.rb
CHANGED
@@ -3,12 +3,9 @@
|
|
3
3
|
require "forwardable"
|
4
4
|
|
5
5
|
module Phlex::Rails
|
6
|
-
# A decorator that buffers all missing method calls and captures the blocks passed to them.
|
7
|
-
# @api private
|
8
6
|
class Buffered < BasicObject
|
9
7
|
extend ::Forwardable
|
10
8
|
|
11
|
-
# @api private
|
12
9
|
def self.define_builder_yielding_method(method_name, builder)
|
13
10
|
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
|
14
11
|
# frozen_string_literal: true
|
@@ -16,10 +13,10 @@ module Phlex::Rails
|
|
16
13
|
def #{method_name}(*args, **kwargs, &block)
|
17
14
|
output = if block
|
18
15
|
@object.#{method_name}(*args, **kwargs) { |builder|
|
19
|
-
@
|
16
|
+
@component.capture do
|
20
17
|
yield(
|
21
18
|
::#{builder.name}.new(builder,
|
22
|
-
|
19
|
+
component: @component
|
23
20
|
)
|
24
21
|
)
|
25
22
|
end
|
@@ -30,7 +27,7 @@ module Phlex::Rails
|
|
30
27
|
|
31
28
|
case output
|
32
29
|
when ::ActiveSupport::SafeBuffer
|
33
|
-
@
|
30
|
+
@component.raw(output)
|
34
31
|
end
|
35
32
|
|
36
33
|
nil
|
@@ -38,10 +35,9 @@ module Phlex::Rails
|
|
38
35
|
RUBY
|
39
36
|
end
|
40
37
|
|
41
|
-
|
42
|
-
def initialize(object, view:)
|
38
|
+
def initialize(object, component:)
|
43
39
|
@object = object
|
44
|
-
@
|
40
|
+
@component = component
|
45
41
|
end
|
46
42
|
|
47
43
|
def respond_to_missing?(...)
|
@@ -50,13 +46,14 @@ module Phlex::Rails
|
|
50
46
|
|
51
47
|
def method_missing(*, **, &block)
|
52
48
|
output = if block
|
53
|
-
@object.public_send(*, **) { |*a| @
|
49
|
+
@object.public_send(*, **) { |*a| @component.capture(*a, &block) }
|
54
50
|
else
|
55
51
|
@object.public_send(*, **)
|
56
52
|
end
|
57
53
|
|
58
|
-
|
59
|
-
|
54
|
+
case output
|
55
|
+
when ::ActiveSupport::SafeBuffer
|
56
|
+
@component.raw(output)
|
60
57
|
end
|
61
58
|
|
62
59
|
nil
|
@@ -1,14 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Phlex::Rails
|
4
|
-
# @api private
|
5
4
|
class BufferedFormBuilder < Buffered
|
6
|
-
# @!method field_id(...)
|
7
|
-
# @!method field_name(...)
|
8
|
-
# @!method id(...)
|
9
|
-
# @!method multipart=(value)
|
10
|
-
# @!method to_model(...)
|
11
|
-
# @!method to_partial_path(...)
|
12
5
|
def_delegators :@object,
|
13
6
|
:to_model,
|
14
7
|
:to_partial_path,
|
@@ -33,67 +26,10 @@ module Phlex::Rails
|
|
33
26
|
:convert_to_model,
|
34
27
|
:model_name_from_record_or_class
|
35
28
|
|
36
|
-
# @!method button(...)
|
37
|
-
# @!method check_box(...)
|
38
|
-
# @!method collection_select(...)
|
39
|
-
# @!method color_field(...)
|
40
|
-
# @!method date_field(...)
|
41
|
-
# @!method date_select(...)
|
42
|
-
# @!method datetime_field(...)
|
43
|
-
# @!method datetime_local_field(...)
|
44
|
-
# @!method datetime_select(...)
|
45
|
-
# @!method email_field(...)
|
46
|
-
# @!method file_field(...)
|
47
|
-
# @!method grouped_collection_select(...)
|
48
|
-
# @!method hidden_field(...)
|
49
|
-
# @!method month_field(...)
|
50
|
-
# @!method number_field(...)
|
51
|
-
# @!method password_field(...)
|
52
|
-
# @!method phone_field(...)
|
53
|
-
# @!method radio_button(...)
|
54
|
-
# @!method range_field(...)
|
55
|
-
# @!method rich_text_area(...)
|
56
|
-
# @!method search_field(...)
|
57
|
-
# @!method select(...)
|
58
|
-
# @!method submit(...)
|
59
|
-
# @!method telephone_field(name, value = nil, **attributes)
|
60
|
-
# Outputs an input field of type <code>tel</code>.
|
61
|
-
# @param name [Symbol] the name of the field.
|
62
|
-
# @param value [String] the default value.
|
63
|
-
# @param attributes HTML attributes.
|
64
|
-
# @return [nil]
|
65
|
-
# @!method text_area(...)
|
66
|
-
# @!method text_field(...)
|
67
|
-
# @!method time_field(...)
|
68
|
-
# @!method time_select(...)
|
69
|
-
# @!method time_zone_select(...)
|
70
|
-
# @!method url_field(...)
|
71
|
-
# @!method week_field(...)
|
72
|
-
# @!method weekday_select(...)
|
73
|
-
|
74
|
-
# @!method label(...)
|
75
|
-
# @yield [builder]
|
76
|
-
# @yieldparam builder [Phlex::Rails::BufferedLabelBuilder]
|
77
29
|
define_builder_yielding_method :label, ::Phlex::Rails::BufferedLabelBuilder
|
78
|
-
|
79
|
-
# @!method fields(...)
|
80
|
-
# @yield [builder]
|
81
|
-
# @yieldparam builder [Phlex::Rails::BufferedFormBuilder]
|
82
30
|
define_builder_yielding_method :fields, ::Phlex::Rails::BufferedFormBuilder
|
83
|
-
|
84
|
-
# @!method fields_for(...)
|
85
|
-
# @yield [builder]
|
86
|
-
# @yieldparam builder [Phlex::Rails::BufferedFormBuilder]
|
87
31
|
define_builder_yielding_method :fields_for, ::Phlex::Rails::BufferedFormBuilder
|
88
|
-
|
89
|
-
# @!method collection_check_boxes(...)
|
90
|
-
# @yield [builder]
|
91
|
-
# @yieldparam builder [Phlex::Rails::BufferedCheckboxBuilder]
|
92
32
|
define_builder_yielding_method :collection_check_boxes, ::Phlex::Rails::BufferedCheckboxBuilder
|
93
|
-
|
94
|
-
# @!method collection_radio_buttons(...)
|
95
|
-
# @yield [builder]
|
96
|
-
# @yieldparam builder [Phlex::Rails::BufferedRadioButtonBuilder]
|
97
33
|
define_builder_yielding_method :collection_radio_buttons, ::Phlex::Rails::BufferedRadioButtonBuilder
|
98
34
|
end
|
99
35
|
end
|
data/lib/phlex/rails/csv.rb
CHANGED
@@ -3,13 +3,11 @@
|
|
3
3
|
module Phlex
|
4
4
|
module Rails
|
5
5
|
module CSV
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
return super unless collection.arel.orders.empty?
|
6
|
+
def each_item(&)
|
7
|
+
return super unless ActiveRecord::Relation === collection
|
8
|
+
return super unless collection.arel.orders.empty?
|
10
9
|
|
11
|
-
|
12
|
-
end
|
10
|
+
collection.find_each(&)
|
13
11
|
end
|
14
12
|
end
|
15
13
|
end
|
@@ -8,9 +8,9 @@ module Phlex::Rails::HelperMacros
|
|
8
8
|
|
9
9
|
def #{method_name}(*args, **kwargs, &block)
|
10
10
|
output = if block
|
11
|
-
|
11
|
+
view_context.#{method_name}(*args, **kwargs) { capture(&block) }
|
12
12
|
else
|
13
|
-
|
13
|
+
view_context.#{method_name}(*args, **kwargs)
|
14
14
|
end
|
15
15
|
|
16
16
|
raw(output)
|
@@ -25,32 +25,31 @@ module Phlex::Rails::HelperMacros
|
|
25
25
|
|
26
26
|
def #{method_name}(*args, **kwargs, &block)
|
27
27
|
if block
|
28
|
-
|
28
|
+
view_context.#{method_name}(*args, **kwargs) { capture(&block) }
|
29
29
|
else
|
30
|
-
|
30
|
+
view_context.#{method_name}(*args, **kwargs)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
RUBY
|
34
34
|
end
|
35
35
|
|
36
|
-
# @api private
|
37
36
|
def register_builder_yielding_helper(method_name, builder)
|
38
37
|
class_eval(<<-RUBY, __FILE__, __LINE__ + 1)
|
39
38
|
# frozen_string_literal: true
|
40
39
|
|
41
40
|
def #{method_name}(*args, **kwargs)
|
42
41
|
output = if block_given?
|
43
|
-
|
42
|
+
view_context.#{method_name}(*args, **kwargs) { |form|
|
44
43
|
capture do
|
45
44
|
yield(
|
46
45
|
#{builder.name}.new(form,
|
47
|
-
|
46
|
+
component: self
|
48
47
|
)
|
49
48
|
)
|
50
49
|
end
|
51
50
|
}
|
52
51
|
else
|
53
|
-
|
52
|
+
view_context.#{method_name}(*args, **kwargs)
|
54
53
|
end
|
55
54
|
|
56
55
|
raw(output)
|
@@ -3,5 +3,8 @@
|
|
3
3
|
module Phlex::Rails::Helpers::AudioPath
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
+
# Computes the path to an audio asset in the public audios directory.
|
7
|
+
#
|
8
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html#method-i-audio_path)
|
6
9
|
register_value_helper def audio_path(...) = nil
|
7
10
|
end
|
@@ -3,5 +3,6 @@
|
|
3
3
|
module Phlex::Rails::Helpers::AutoDiscoveryLinkTag
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-auto_discovery_link_tag)
|
6
7
|
register_output_helper def auto_discovery_link_tag(...) = nil
|
7
8
|
end
|
@@ -3,5 +3,6 @@
|
|
3
3
|
module Phlex::Rails::Helpers::CollectionCheckBoxes
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_check_boxes)
|
6
7
|
register_builder_yielding_helper def collection_check_boxes(...) = nil, Phlex::Rails::BufferedCheckboxBuilder
|
7
8
|
end
|
@@ -3,5 +3,6 @@
|
|
3
3
|
module Phlex::Rails::Helpers::CollectionRadioButtons
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_radio_buttons)
|
6
7
|
register_builder_yielding_helper def collection_radio_buttons(...) = nil, Phlex::Rails::BufferedRadioButtonBuilder
|
7
8
|
end
|
@@ -3,5 +3,6 @@
|
|
3
3
|
module Phlex::Rails::Helpers::CollectionSelect
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select)
|
6
7
|
register_output_helper def collection_select(...) = nil
|
7
8
|
end
|
@@ -3,5 +3,6 @@
|
|
3
3
|
module Phlex::Rails::Helpers::ComputeAssetExtname
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html#method-i-compute_asset_extname)
|
6
7
|
register_value_helper def compute_asset_extname(...) = nil
|
7
8
|
end
|
@@ -3,7 +3,9 @@
|
|
3
3
|
module Phlex::Rails::Helpers::ContentFor
|
4
4
|
extend Phlex::Rails::HelperMacros
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for)
|
8
7
|
register_value_helper def content_for(...) = nil
|
8
|
+
|
9
|
+
# [Rails Docs](https://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for-3F)
|
10
|
+
register_value_helper def content_for?(...) = nil
|
9
11
|
end
|