phlex-rails 1.2.1 → 2.0.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|