phlex-rails 1.2.1 → 2.0.0.beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/generators/phlex/component/USAGE +2 -2
- data/lib/generators/phlex/component/component_generator.rb +1 -1
- data/lib/generators/phlex/component/templates/component.rb.erb +2 -3
- data/lib/generators/phlex/install/USAGE +3 -1
- data/lib/generators/phlex/install/install_generator.rb +28 -38
- data/lib/generators/phlex/install/templates/base_component.rb.erb +15 -0
- data/lib/generators/phlex/install/templates/base_view.rb.erb +9 -0
- data/lib/generators/phlex/install/templates/phlex.rb.erb +16 -0
- data/lib/generators/phlex/view/USAGE +1 -1
- data/lib/generators/phlex/view/templates/view.rb.erb +2 -3
- data/lib/generators/phlex/view/view_generator.rb +1 -1
- data/lib/phlex/rails/buffered.rb +6 -7
- data/lib/phlex/rails/csv.rb +3 -3
- data/lib/phlex/rails/engine.rb +0 -1
- data/lib/phlex/rails/{html/method_missing.rb → helper_finder.rb} +2 -2
- data/lib/phlex/rails/helper_macros.rb +2 -12
- data/lib/phlex/rails/helpers/notice.rb +8 -0
- data/lib/phlex/rails/helpers/routes.rb +1 -0
- data/lib/phlex/rails/helpers/tag.rb +2 -2
- data/lib/phlex/rails/helpers/translate.rb +2 -2
- data/lib/phlex/rails/helpers/turbo_stream.rb +1 -1
- data/lib/phlex/rails/helpers.rb +11 -56
- data/lib/phlex/rails/html.rb +0 -2
- data/lib/phlex/rails/layout.rb +7 -7
- data/lib/phlex/rails/sgml.rb +35 -53
- data/lib/phlex/rails/streaming.rb +11 -9
- data/lib/phlex/rails/testing.rb +18 -0
- data/lib/phlex/rails/unbuffered.rb +50 -0
- data/lib/phlex/rails/version.rb +1 -1
- data/lib/phlex/rails.rb +6 -7
- metadata +16 -26
- data/.editorconfig +0 -13
- data/.rubocop.yml +0 -15
- data/.ruby-version +0 -1
- data/.yardopts +0 -1
- data/Appraisals +0 -11
- data/CHANGELOG.md +0 -38
- data/CODE_OF_CONDUCT.md +0 -84
- data/Gemfile +0 -17
- data/SECURITY.md +0 -5
- data/config.ru +0 -9
- data/lib/generators/phlex/install/templates/application_component.rb +0 -12
- data/lib/generators/phlex/install/templates/application_layout.rb +0 -24
- data/lib/generators/phlex/install/templates/application_view.rb +0 -9
- data/lib/phlex/rails/unbuffered_overrides.rb +0 -30
- data/lib/phlex/testing/rails/view_helper.rb +0 -19
- data/phlex_logo.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 884bb8de02703c59d0756050a402a853af780a4c9bc37805483d3446b17acdb2
|
4
|
+
data.tar.gz: de4bd44c31da7580ec9c158d1d004b03c3be89b419b78abc5c6eb9b67b97e1c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20f911fd5441cbca7281b63c94b4d1f3ef8b604c88550b5e0b1c4889eab9286f827430a7e05cd35b3be8c49d9d0679f781c33ee8d0e7a6d8bdfbf3676d3a54bd
|
7
|
+
data.tar.gz: 0a096db9f03bc6164b5cf951128a2b751d2de052588aea26f1a8c82a36d125798c198fbd32b06ebce2e0b6c65c52158f8d17e0d61586408307cd98808266e84b
|
@@ -5,7 +5,7 @@ module Phlex::Generators
|
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
7
|
def create_view
|
8
|
-
@path = File.join("app/
|
8
|
+
@path = File.join("app/components", class_path, "#{file_name}.rb")
|
9
9
|
template "component.rb.erb", @path
|
10
10
|
end
|
11
11
|
end
|
@@ -1,9 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
class <%= class_name %>Component < ApplicationComponent
|
3
|
+
class Components::<%= class_name %> < Components::Base
|
5
4
|
def view_template
|
6
5
|
h1 { "<%= class_name %>" }
|
7
6
|
p { "Find me in <%= @path %>" }
|
8
7
|
end
|
9
|
-
end
|
8
|
+
end
|
@@ -5,56 +5,46 @@ module Phlex::Generators
|
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
7
|
APPLICATION_CONFIGURATION_PATH = Rails.root.join("config/application.rb")
|
8
|
-
TAILWIND_CONFIGURATION_PATH = Rails.root.join("tailwind.config.js")
|
9
8
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
)
|
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
|
18
16
|
end
|
19
17
|
|
20
|
-
def
|
21
|
-
|
22
|
-
|
23
|
-
inject_into_class(
|
24
|
-
APPLICATION_CONFIGURATION_PATH,
|
25
|
-
"Application",
|
26
|
-
%( config.autoload_paths << "\#{root}/app/views/layouts"\n)
|
27
|
-
)
|
18
|
+
def create_application_component
|
19
|
+
template "base_component.rb.erb", Rails.root.join("app/components/base.rb")
|
28
20
|
end
|
29
21
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
inject_into_class(
|
34
|
-
APPLICATION_CONFIGURATION_PATH,
|
35
|
-
"Application",
|
36
|
-
%( config.autoload_paths << "\#{root}/app/views"\n)
|
37
|
-
)
|
22
|
+
def create_application_view
|
23
|
+
template "base_view.rb.erb", Rails.root.join("app/views/base.rb")
|
38
24
|
end
|
39
25
|
|
40
|
-
def
|
41
|
-
|
42
|
-
|
43
|
-
insert_into_file TAILWIND_CONFIGURATION_PATH, after: "content: [" do
|
44
|
-
"\n './app/views/**/*.rb'," \
|
45
|
-
end
|
26
|
+
def create_initializer
|
27
|
+
template "phlex.rb.erb", Rails.root.join("config/initializers/phlex.rb")
|
46
28
|
end
|
47
29
|
|
48
|
-
|
49
|
-
template "application_component.rb", Rails.root.join("app/views/components/application_component.rb")
|
50
|
-
end
|
30
|
+
private
|
51
31
|
|
52
|
-
def
|
53
|
-
|
32
|
+
def tailwind_configuration_path
|
33
|
+
if tailwind_configuration_files.any?
|
34
|
+
Pathname.new(
|
35
|
+
tailwind_configuration_files.first,
|
36
|
+
)
|
37
|
+
end
|
54
38
|
end
|
55
39
|
|
56
|
-
def
|
57
|
-
|
40
|
+
def tailwind_configuration_files
|
41
|
+
Dir.glob(
|
42
|
+
[
|
43
|
+
"#{Rails.root}/tailwind.config.js",
|
44
|
+
"#{Rails.root}/app/**/tailwind.config.js",
|
45
|
+
"#{Rails.root}/config/**/tailwind.config.js",
|
46
|
+
],
|
47
|
+
)
|
58
48
|
end
|
59
49
|
end
|
60
50
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Components::Base < Phlex::HTML
|
4
|
+
include Components
|
5
|
+
|
6
|
+
# Include any helpers you want to be available across all components
|
7
|
+
include Phlex::Rails::Helpers::Routes
|
8
|
+
|
9
|
+
if Rails.env.development?
|
10
|
+
def before_template
|
11
|
+
comment { "Before #{self.class.name}" }
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Views::Base < Components::Base
|
4
|
+
# The ApplicationView is an abstract class for all your views.
|
5
|
+
|
6
|
+
# By default, it inherits from `ApplicationComponent`, but you
|
7
|
+
# can change that to `Phlex::HTML` if you want to keep views and
|
8
|
+
# components independent.
|
9
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Views
|
4
|
+
end
|
5
|
+
|
6
|
+
module Components
|
7
|
+
extend Phlex::Kit
|
8
|
+
end
|
9
|
+
|
10
|
+
Rails.autoloaders.main.push_dir(
|
11
|
+
"#{Rails.root}/app/views", namespace: Views
|
12
|
+
)
|
13
|
+
|
14
|
+
Rails.autoloaders.main.push_dir(
|
15
|
+
"#{Rails.root}/app/components", namespace: Components
|
16
|
+
)
|
@@ -1,9 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
class <%= class_name %>View < ApplicationView
|
3
|
+
class Views::<%= "#{namespace}::" if namespaced? %><%= class_name %> < Views::Base
|
5
4
|
def view_template
|
6
5
|
h1 { "<%= class_name %>" }
|
7
6
|
p { "Find me in <%= @path %>" }
|
8
7
|
end
|
9
|
-
end
|
8
|
+
end
|
@@ -5,7 +5,7 @@ module Phlex::Generators
|
|
5
5
|
source_root File.expand_path("templates", __dir__)
|
6
6
|
|
7
7
|
def create_view
|
8
|
-
@path = File.join("app/views", class_path, "#{file_name}
|
8
|
+
@path = File.join("app/views", class_path, "#{file_name}.rb")
|
9
9
|
template "view.rb.erb", @path
|
10
10
|
end
|
11
11
|
end
|
data/lib/phlex/rails/buffered.rb
CHANGED
@@ -30,7 +30,7 @@ module Phlex::Rails
|
|
30
30
|
|
31
31
|
case output
|
32
32
|
when ::ActiveSupport::SafeBuffer
|
33
|
-
@view.instance_variable_get(:@_context).
|
33
|
+
@view.instance_variable_get(:@_context).buffer << output
|
34
34
|
end
|
35
35
|
|
36
36
|
nil
|
@@ -48,16 +48,15 @@ module Phlex::Rails
|
|
48
48
|
@object.respond_to?(...)
|
49
49
|
end
|
50
50
|
|
51
|
-
def method_missing(
|
51
|
+
def method_missing(*, **, &block)
|
52
52
|
output = if block
|
53
|
-
@object.public_send(
|
53
|
+
@object.public_send(*, **) { |*a| @view.capture(*a, &block) }
|
54
54
|
else
|
55
|
-
@object.public_send(
|
55
|
+
@object.public_send(*, **)
|
56
56
|
end
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
@view.instance_variable_get(:@_context).target << output
|
58
|
+
if ::ActiveSupport::SafeBuffer === output
|
59
|
+
@view.instance_variable_get(:@_context).buffer << output
|
61
60
|
end
|
62
61
|
|
63
62
|
nil
|
data/lib/phlex/rails/csv.rb
CHANGED
@@ -4,11 +4,11 @@ module Phlex
|
|
4
4
|
module Rails
|
5
5
|
module CSV
|
6
6
|
module Overrides
|
7
|
-
def each_item(&
|
8
|
-
return super unless
|
7
|
+
def each_item(&)
|
8
|
+
return super unless ActiveRecord::Relation === collection
|
9
9
|
return super unless collection.arel.orders.empty?
|
10
10
|
|
11
|
-
collection.find_each(&
|
11
|
+
collection.find_each(&)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
data/lib/phlex/rails/engine.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module Phlex::Rails::
|
3
|
+
module Phlex::Rails::HelperFinder
|
4
4
|
def method_missing(name, *args, **kwargs, &block)
|
5
5
|
return super unless helpers.respond_to?(name)
|
6
6
|
|
@@ -8,6 +8,6 @@ module Phlex::Rails::HTML::MethodMissing
|
|
8
8
|
module_name = Phlex::Rails::Helpers.constants.find { |mod| mod.to_s.underscore.gsub("domid", "dom_id") == const_name }
|
9
9
|
return super unless module_name
|
10
10
|
|
11
|
-
raise NoMethodError
|
11
|
+
raise NoMethodError.new("Try including `Phlex::Rails::Helpers::#{module_name}` in #{self.class.name}.")
|
12
12
|
end
|
13
13
|
end
|
@@ -16,12 +16,7 @@ module Phlex::Rails::HelperMacros
|
|
16
16
|
helpers.#{method_name}(*args, **kwargs)
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
when ActiveSupport::SafeBuffer
|
21
|
-
@_context.target << output
|
22
|
-
end
|
23
|
-
|
24
|
-
nil
|
19
|
+
raw(output)
|
25
20
|
end
|
26
21
|
RUBY
|
27
22
|
end
|
@@ -63,12 +58,7 @@ module Phlex::Rails::HelperMacros
|
|
63
58
|
helpers.#{method_name}(*args, **kwargs)
|
64
59
|
end
|
65
60
|
|
66
|
-
|
67
|
-
when ActiveSupport::SafeBuffer
|
68
|
-
@_context.target << output
|
69
|
-
end
|
70
|
-
|
71
|
-
nil
|
61
|
+
raw(output)
|
72
62
|
end
|
73
63
|
RUBY
|
74
64
|
end
|
@@ -5,6 +5,7 @@ module Phlex::Rails::Helpers
|
|
5
5
|
module Routes
|
6
6
|
# This must be included first because it defines `url_options` rather than delegating it to the view context.
|
7
7
|
include Rails.application.routes.url_helpers
|
8
|
+
include Rails.application.routes.mounted_helpers
|
8
9
|
|
9
10
|
include URLOptions
|
10
11
|
include DefaultURLOptions
|
@@ -10,11 +10,11 @@ module Phlex::Rails::Helpers::Tag
|
|
10
10
|
|
11
11
|
case result
|
12
12
|
when ActiveSupport::SafeBuffer
|
13
|
-
@_context.
|
13
|
+
@_context.buffer << result
|
14
14
|
when ActionView::Helpers::TagHelper::TagBuilder
|
15
15
|
Phlex::Rails::Buffered.new(
|
16
16
|
result,
|
17
|
-
view: self
|
17
|
+
view: self,
|
18
18
|
)
|
19
19
|
end
|
20
20
|
end
|
@@ -15,10 +15,10 @@ module Phlex::Rails::Helpers::Translate
|
|
15
15
|
base.extend(ClassMethods)
|
16
16
|
end
|
17
17
|
|
18
|
-
def translate(key, **
|
18
|
+
def translate(key, **)
|
19
19
|
key = "#{self.class.translation_path}#{key}" if key.start_with?(".")
|
20
20
|
|
21
|
-
helpers.t(key, **
|
21
|
+
helpers.t(key, **)
|
22
22
|
end
|
23
23
|
|
24
24
|
alias_method :t, :translate
|
data/lib/phlex/rails/helpers.rb
CHANGED
@@ -12,8 +12,6 @@ module Phlex::Rails::Helpers
|
|
12
12
|
autoload :BuildTagValues, "phlex/rails/helpers/build_tag_values"
|
13
13
|
autoload :ButtonTag, "phlex/rails/helpers/button_tag"
|
14
14
|
autoload :ButtonTo, "phlex/rails/helpers/button_to"
|
15
|
-
autoload :CSPMetaTag, "phlex/rails/helpers/csp_meta_tag"
|
16
|
-
autoload :CSRFMetaTags, "phlex/rails/helpers/csrf_meta_tags"
|
17
15
|
autoload :CheckBox, "phlex/rails/helpers/check_box"
|
18
16
|
autoload :CheckBoxTag, "phlex/rails/helpers/check_box_tag"
|
19
17
|
autoload :ClassNames, "phlex/rails/helpers/class_names"
|
@@ -29,11 +27,11 @@ module Phlex::Rails::Helpers
|
|
29
27
|
autoload :ContentTag, "phlex/rails/helpers/content_tag"
|
30
28
|
autoload :ControllerName, "phlex/rails/helpers/controller_name"
|
31
29
|
autoload :ControllerPath, "phlex/rails/helpers/controller_path"
|
30
|
+
autoload :CSPMetaTag, "phlex/rails/helpers/csp_meta_tag"
|
31
|
+
autoload :CSRFMetaTags, "phlex/rails/helpers/csrf_meta_tags"
|
32
32
|
autoload :CurrentCycle, "phlex/rails/helpers/current_cycle"
|
33
33
|
autoload :CurrentPage, "phlex/rails/helpers/current_page"
|
34
34
|
autoload :Cycle, "phlex/rails/helpers/cycle"
|
35
|
-
autoload :DOMClass, "phlex/rails/helpers/dom_class"
|
36
|
-
autoload :DOMID, "phlex/rails/helpers/dom_id"
|
37
35
|
autoload :DateField, "phlex/rails/helpers/date_field"
|
38
36
|
autoload :DateFieldTag, "phlex/rails/helpers/date_field_tag"
|
39
37
|
autoload :DateSelect, "phlex/rails/helpers/date_select"
|
@@ -46,6 +44,8 @@ module Phlex::Rails::Helpers
|
|
46
44
|
autoload :DefaultURLOptions, "phlex/rails/helpers/default_url_options"
|
47
45
|
autoload :DistanceOfTimeInWords, "phlex/rails/helpers/distance_of_time_in_words"
|
48
46
|
autoload :DistanceOfTimeInWordsToNow, "phlex/rails/helpers/distance_of_time_in_words_to_now"
|
47
|
+
autoload :DOMClass, "phlex/rails/helpers/dom_class"
|
48
|
+
autoload :DOMID, "phlex/rails/helpers/dom_id"
|
49
49
|
autoload :EmailField, "phlex/rails/helpers/email_field"
|
50
50
|
autoload :EmailFieldTag, "phlex/rails/helpers/email_field_tag"
|
51
51
|
autoload :ErrorMessage, "phlex/rails/helpers/error_message"
|
@@ -55,8 +55,8 @@ module Phlex::Rails::Helpers
|
|
55
55
|
autoload :FaviconLinkTag, "phlex/rails/helpers/favicon_link_tag"
|
56
56
|
autoload :FieldID, "phlex/rails/helpers/field_id"
|
57
57
|
autoload :FieldName, "phlex/rails/helpers/field_name"
|
58
|
-
autoload :FieldSetTag, "phlex/rails/helpers/field_set_tag"
|
59
58
|
autoload :Fields, "phlex/rails/helpers/fields"
|
59
|
+
autoload :FieldSetTag, "phlex/rails/helpers/field_set_tag"
|
60
60
|
autoload :FieldsFor, "phlex/rails/helpers/fields_for"
|
61
61
|
autoload :FileField, "phlex/rails/helpers/file_field"
|
62
62
|
autoload :FileFieldTag, "phlex/rails/helpers/file_field_tag"
|
@@ -75,8 +75,8 @@ module Phlex::Rails::Helpers
|
|
75
75
|
autoload :ImageSubmitTag, "phlex/rails/helpers/image_submit_tag"
|
76
76
|
autoload :ImageTag, "phlex/rails/helpers/image_tag"
|
77
77
|
autoload :ImageURL, "phlex/rails/helpers/image_url"
|
78
|
-
autoload :JavascriptImportModuleTag, "phlex/rails/helpers/javascript_import_module_tag"
|
79
78
|
autoload :JavascriptImportmapTags, "phlex/rails/helpers/javascript_importmap_tags"
|
79
|
+
autoload :JavascriptImportModuleTag, "phlex/rails/helpers/javascript_import_module_tag"
|
80
80
|
autoload :JavascriptIncludeTag, "phlex/rails/helpers/javascript_include_tag"
|
81
81
|
autoload :JavascriptPath, "phlex/rails/helpers/javascript_path"
|
82
82
|
autoload :JavascriptTag, "phlex/rails/helpers/javascript_tag"
|
@@ -93,6 +93,7 @@ module Phlex::Rails::Helpers
|
|
93
93
|
autoload :MailTo, "phlex/rails/helpers/mail_to"
|
94
94
|
autoload :MonthField, "phlex/rails/helpers/month_field"
|
95
95
|
autoload :MonthFieldTag, "phlex/rails/helpers/month_field_tag"
|
96
|
+
autoload :Notice, "phlex/rails/helpers/notice"
|
96
97
|
autoload :NumberField, "phlex/rails/helpers/number_field"
|
97
98
|
autoload :NumberFieldTag, "phlex/rails/helpers/number_field_tag"
|
98
99
|
autoload :NumberToCurrency, "phlex/rails/helpers/number_to_currency"
|
@@ -130,7 +131,6 @@ module Phlex::Rails::Helpers
|
|
130
131
|
autoload :ResetCycle, "phlex/rails/helpers/reset_cycle"
|
131
132
|
autoload :RichTextArea, "phlex/rails/helpers/rich_text_area"
|
132
133
|
autoload :Routes, "phlex/rails/helpers/routes"
|
133
|
-
autoload :SMSTo, "phlex/rails/helpers/sms_to"
|
134
134
|
autoload :Sanitize, "phlex/rails/helpers/sanitize"
|
135
135
|
autoload :SanitizeCSS, "phlex/rails/helpers/sanitize_css"
|
136
136
|
autoload :SearchField, "phlex/rails/helpers/search_field"
|
@@ -147,6 +147,7 @@ module Phlex::Rails::Helpers
|
|
147
147
|
autoload :SelectTime, "phlex/rails/helpers/select_time"
|
148
148
|
autoload :SelectYear, "phlex/rails/helpers/select_year"
|
149
149
|
autoload :SimpleFormat, "phlex/rails/helpers/simple_format"
|
150
|
+
autoload :SMSTo, "phlex/rails/helpers/sms_to"
|
150
151
|
autoload :StripLinks, "phlex/rails/helpers/strip_links"
|
151
152
|
autoload :StripTags, "phlex/rails/helpers/strip_tags"
|
152
153
|
autoload :StylesheetLinkTag, "phlex/rails/helpers/stylesheet_link_tag"
|
@@ -173,9 +174,9 @@ module Phlex::Rails::Helpers
|
|
173
174
|
autoload :Truncate, "phlex/rails/helpers/truncate"
|
174
175
|
autoload :TurboFrameTag, "phlex/rails/helpers/turbo_frame_tag"
|
175
176
|
autoload :TurboIncludeTags, "phlex/rails/helpers/turbo_include_tags"
|
177
|
+
autoload :TurboRefreshesWith, "phlex/rails/helpers/turbo_refreshes_with"
|
176
178
|
autoload :TurboRefreshMethodTag, "phlex/rails/helpers/turbo_refresh_method_tag"
|
177
179
|
autoload :TurboRefreshScrollTag, "phlex/rails/helpers/turbo_refresh_scroll_tag"
|
178
|
-
autoload :TurboRefreshesWith, "phlex/rails/helpers/turbo_refreshes_with"
|
179
180
|
autoload :TurboStream, "phlex/rails/helpers/turbo_stream"
|
180
181
|
autoload :TurboStreamFrom, "phlex/rails/helpers/turbo_stream_from"
|
181
182
|
autoload :URLField, "phlex/rails/helpers/url_field"
|
@@ -193,56 +194,10 @@ module Phlex::Rails::Helpers
|
|
193
194
|
autoload :VideoPath, "phlex/rails/helpers/video_path"
|
194
195
|
autoload :VideoTag, "phlex/rails/helpers/video_tag"
|
195
196
|
autoload :VideoURL, "phlex/rails/helpers/video_url"
|
196
|
-
autoload :WeekField, "phlex/rails/helpers/week_field"
|
197
|
-
autoload :WeekFieldTag, "phlex/rails/helpers/week_field_tag"
|
198
197
|
autoload :WeekdayOptionsForSelect, "phlex/rails/helpers/weekday_options_for_select"
|
199
198
|
autoload :WeekdaySelect, "phlex/rails/helpers/weekday_select"
|
199
|
+
autoload :WeekField, "phlex/rails/helpers/week_field"
|
200
|
+
autoload :WeekFieldTag, "phlex/rails/helpers/week_field_tag"
|
200
201
|
autoload :WithOutputBuffer, "phlex/rails/helpers/with_output_buffer"
|
201
202
|
autoload :WordWrap, "phlex/rails/helpers/word_wrap"
|
202
|
-
|
203
|
-
DEPRECATED = {
|
204
|
-
Checkbox: :CheckBox,
|
205
|
-
CheckboxTag: :CheckBoxTag,
|
206
|
-
CollectionCheckboxes: :CollectionCheckBoxes,
|
207
|
-
DateTimeField: :DatetimeField,
|
208
|
-
PathToJavaScript: :PathToJavascript,
|
209
|
-
DateTimeFieldTag: :DatetimeFieldTag,
|
210
|
-
DateTimeLocalField: :DatetimeLocalField,
|
211
|
-
DateTimeLocalFieldTag: :DatetimeLocalFieldTag,
|
212
|
-
DateTimeSelect: :DatetimeSelect,
|
213
|
-
JavaScriptImportModuleTag: :JavascriptImportModuleTag,
|
214
|
-
JavaScriptImportMapTags: :JavascriptImportmapTags,
|
215
|
-
JavaScriptIncludeTag: :JavascriptIncludeTag,
|
216
|
-
JavaScriptPath: :JavascriptPath,
|
217
|
-
JavaScriptTag: :JavascriptTag,
|
218
|
-
JavaScriptURL: :JavascriptURL,
|
219
|
-
LinkIf: :LinkToIf,
|
220
|
-
PathToStyleSheet: :PathToStylesheet,
|
221
|
-
SanitizeCss: :SanitizeCSS,
|
222
|
-
SelectDateTime: :SelectDatetime,
|
223
|
-
StyleSheetLinkTag: :StylesheetLinkTag,
|
224
|
-
StyleSheetPath: :StylesheetPath,
|
225
|
-
StyleSheetURL: :StylesheetURL,
|
226
|
-
URLToJavaScript: :URLToJavascript,
|
227
|
-
URLToStyleSheet: :URLToStylesheet
|
228
|
-
}
|
229
|
-
|
230
|
-
def self.const_missing(name)
|
231
|
-
if (helper_module_name = DEPRECATED[name])
|
232
|
-
message = "`Phlex::Rails::Helpers::#{name}` is deprecated. Please use `Phlex::Rails::Helpers::#{helper_module_name}` instead."
|
233
|
-
|
234
|
-
if name.to_s.downcase == helper_module_name.to_s.downcase
|
235
|
-
message << " Note the casing of the module name has changed to match the helper method."
|
236
|
-
end
|
237
|
-
|
238
|
-
Phlex::Rails::Deprecation.warn(message)
|
239
|
-
|
240
|
-
helper_module = const_get(helper_module_name)
|
241
|
-
const_set(name, helper_module)
|
242
|
-
|
243
|
-
helper_module
|
244
|
-
else
|
245
|
-
super
|
246
|
-
end
|
247
|
-
end
|
248
203
|
end
|
data/lib/phlex/rails/html.rb
CHANGED
data/lib/phlex/rails/layout.rb
CHANGED
@@ -14,11 +14,12 @@ module Phlex::Rails
|
|
14
14
|
include Helpers::JavascriptImportModuleTag
|
15
15
|
include Helpers::TurboRefreshMethodTag
|
16
16
|
include Helpers::TurboRefreshScrollTag
|
17
|
+
include Helpers::TurboRefreshesWith
|
17
18
|
|
18
19
|
# @api private
|
19
20
|
module Interface
|
20
|
-
def render(view_context, _locals, &
|
21
|
-
new.render(view_context, &
|
21
|
+
def render(view_context, _locals, &)
|
22
|
+
new.render(view_context, &)
|
22
23
|
end
|
23
24
|
|
24
25
|
def identifier
|
@@ -38,18 +39,17 @@ module Phlex::Rails
|
|
38
39
|
|
39
40
|
def self.included(klass)
|
40
41
|
unless klass < Phlex::HTML
|
41
|
-
raise Phlex::ArgumentError
|
42
|
-
"👋 #{name} should only be included into Phlex::HTML classes."
|
42
|
+
raise Phlex::ArgumentError.new("👋 #{name} should only be included into Phlex::HTML classes.")
|
43
43
|
end
|
44
44
|
|
45
45
|
klass.extend(Interface)
|
46
46
|
end
|
47
47
|
|
48
|
-
def render(view_context, *args, **kwargs, &block)
|
48
|
+
def render(view_context = nil, *args, **kwargs, &block)
|
49
49
|
if @_context
|
50
50
|
super
|
51
51
|
else
|
52
|
-
call(view_context:
|
52
|
+
call(view_context:) do |yielded|
|
53
53
|
case yielded
|
54
54
|
when Symbol
|
55
55
|
output = view_context.view_flow.get(yielded)
|
@@ -57,7 +57,7 @@ module Phlex::Rails
|
|
57
57
|
output = view_context.capture(&block)
|
58
58
|
end
|
59
59
|
|
60
|
-
|
60
|
+
raw output
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|