actionview 6.1.7.2 → 7.0.6
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/CHANGELOG.md +268 -254
- data/MIT-LICENSE +1 -0
- data/README.rdoc +2 -2
- data/lib/action_view/base.rb +4 -7
- data/lib/action_view/buffers.rb +2 -2
- data/lib/action_view/cache_expiry.rb +46 -32
- data/lib/action_view/dependency_tracker/erb_tracker.rb +154 -0
- data/lib/action_view/dependency_tracker/ripper_tracker.rb +59 -0
- data/lib/action_view/dependency_tracker.rb +6 -147
- data/lib/action_view/digestor.rb +7 -4
- data/lib/action_view/flows.rb +4 -4
- data/lib/action_view/gem_version.rb +5 -5
- data/lib/action_view/helpers/active_model_helper.rb +2 -2
- data/lib/action_view/helpers/asset_tag_helper.rb +95 -39
- data/lib/action_view/helpers/asset_url_helper.rb +16 -16
- data/lib/action_view/helpers/atom_feed_helper.rb +3 -4
- data/lib/action_view/helpers/cache_helper.rb +52 -3
- data/lib/action_view/helpers/capture_helper.rb +4 -4
- data/lib/action_view/helpers/controller_helper.rb +2 -2
- data/lib/action_view/helpers/csp_helper.rb +1 -1
- data/lib/action_view/helpers/csrf_helper.rb +2 -2
- data/lib/action_view/helpers/date_helper.rb +111 -43
- data/lib/action_view/helpers/debug_helper.rb +3 -1
- data/lib/action_view/helpers/form_helper.rb +211 -85
- data/lib/action_view/helpers/form_options_helper.rb +70 -33
- data/lib/action_view/helpers/form_tag_helper.rb +150 -53
- data/lib/action_view/helpers/javascript_helper.rb +3 -5
- data/lib/action_view/helpers/number_helper.rb +17 -16
- data/lib/action_view/helpers/output_safety_helper.rb +4 -4
- data/lib/action_view/helpers/rendering_helper.rb +5 -6
- data/lib/action_view/helpers/sanitize_helper.rb +3 -3
- data/lib/action_view/helpers/tag_helper.rb +37 -8
- data/lib/action_view/helpers/tags/base.rb +5 -25
- data/lib/action_view/helpers/tags/check_box.rb +1 -1
- data/lib/action_view/helpers/tags/collection_select.rb +1 -1
- data/lib/action_view/helpers/tags/file_field.rb +16 -0
- data/lib/action_view/helpers/tags/select.rb +1 -1
- data/lib/action_view/helpers/tags/time_field.rb +10 -1
- data/lib/action_view/helpers/tags/weekday_select.rb +28 -0
- data/lib/action_view/helpers/tags.rb +3 -2
- data/lib/action_view/helpers/text_helper.rb +25 -14
- data/lib/action_view/helpers/translation_helper.rb +12 -43
- data/lib/action_view/helpers/url_helper.rb +194 -123
- data/lib/action_view/helpers.rb +25 -25
- data/lib/action_view/layouts.rb +7 -4
- data/lib/action_view/lookup_context.rb +33 -52
- data/lib/action_view/model_naming.rb +2 -2
- data/lib/action_view/path_set.rb +16 -22
- data/lib/action_view/railtie.rb +19 -7
- data/lib/action_view/record_identifier.rb +1 -1
- data/lib/action_view/render_parser.rb +188 -0
- data/lib/action_view/renderer/abstract_renderer.rb +2 -2
- data/lib/action_view/renderer/partial_renderer.rb +1 -35
- data/lib/action_view/renderer/renderer.rb +4 -4
- data/lib/action_view/renderer/streaming_template_renderer.rb +3 -3
- data/lib/action_view/renderer/template_renderer.rb +6 -2
- data/lib/action_view/rendering.rb +3 -3
- data/lib/action_view/ripper_ast_parser.rb +198 -0
- data/lib/action_view/routing_url_for.rb +8 -5
- data/lib/action_view/template/error.rb +108 -13
- data/lib/action_view/template/handlers/erb.rb +6 -0
- data/lib/action_view/template/handlers.rb +3 -3
- data/lib/action_view/template/html.rb +3 -3
- data/lib/action_view/template/inline.rb +3 -3
- data/lib/action_view/template/raw_file.rb +3 -3
- data/lib/action_view/template/resolver.rb +89 -314
- data/lib/action_view/template/text.rb +3 -3
- data/lib/action_view/template/types.rb +14 -12
- data/lib/action_view/template.rb +18 -2
- data/lib/action_view/template_details.rb +66 -0
- data/lib/action_view/template_path.rb +64 -0
- data/lib/action_view/test_case.rb +7 -3
- data/lib/action_view/testing/resolvers.rb +11 -12
- data/lib/action_view/unbound_template.rb +33 -7
- data/lib/action_view/version.rb +1 -1
- data/lib/action_view/view_paths.rb +4 -4
- data/lib/action_view.rb +2 -3
- data/lib/assets/compiled/rails-ujs.js +36 -5
- metadata +23 -16
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActionView
|
4
|
+
# Represents a template path within ActionView's lookup and rendering system,
|
5
|
+
# like "users/show"
|
6
|
+
#
|
7
|
+
# TemplatePath makes it convenient to convert between separate name, prefix,
|
8
|
+
# partial arguments and the virtual path.
|
9
|
+
class TemplatePath
|
10
|
+
attr_reader :name, :prefix, :partial, :virtual
|
11
|
+
alias_method :partial?, :partial
|
12
|
+
alias_method :virtual_path, :virtual
|
13
|
+
|
14
|
+
# Convert name, prefix, and partial into a virtual path string
|
15
|
+
def self.virtual(name, prefix, partial)
|
16
|
+
if prefix.empty?
|
17
|
+
"#{partial ? "_" : ""}#{name}"
|
18
|
+
elsif partial
|
19
|
+
"#{prefix}/_#{name}"
|
20
|
+
else
|
21
|
+
"#{prefix}/#{name}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Build a TemplatePath form a virtual path
|
26
|
+
def self.parse(virtual)
|
27
|
+
if nameidx = virtual.rindex("/")
|
28
|
+
prefix = virtual[0, nameidx]
|
29
|
+
name = virtual.from(nameidx + 1)
|
30
|
+
prefix = prefix[1..] if prefix.start_with?("/")
|
31
|
+
else
|
32
|
+
prefix = ""
|
33
|
+
name = virtual
|
34
|
+
end
|
35
|
+
partial = name.start_with?("_")
|
36
|
+
name = name[1..] if partial
|
37
|
+
new name, prefix, partial, virtual
|
38
|
+
end
|
39
|
+
|
40
|
+
# Convert name, prefix, and partial into a TemplatePath
|
41
|
+
def self.build(name, prefix, partial)
|
42
|
+
new name, prefix, partial, virtual(name, prefix, partial)
|
43
|
+
end
|
44
|
+
|
45
|
+
def initialize(name, prefix, partial, virtual)
|
46
|
+
@name = name
|
47
|
+
@prefix = prefix
|
48
|
+
@partial = partial
|
49
|
+
@virtual = virtual
|
50
|
+
end
|
51
|
+
|
52
|
+
alias :to_str :virtual
|
53
|
+
alias :to_s :virtual
|
54
|
+
|
55
|
+
def hash # :nodoc:
|
56
|
+
@virtual.hash
|
57
|
+
end
|
58
|
+
|
59
|
+
def eql?(other) # :nodoc:
|
60
|
+
@virtual == other.virtual
|
61
|
+
end
|
62
|
+
alias :== :eql? # :nodoc:
|
63
|
+
end
|
64
|
+
end
|
@@ -24,6 +24,10 @@ module ActionView
|
|
24
24
|
self.class.controller_path = path
|
25
25
|
end
|
26
26
|
|
27
|
+
def self.controller_name
|
28
|
+
"test"
|
29
|
+
end
|
30
|
+
|
27
31
|
def initialize
|
28
32
|
super
|
29
33
|
self.class.controller_path = ""
|
@@ -53,7 +57,7 @@ module ActionView
|
|
53
57
|
include ActiveSupport::Testing::ConstantLookup
|
54
58
|
|
55
59
|
delegate :lookup_context, to: :controller
|
56
|
-
attr_accessor :controller, :output_buffer, :rendered
|
60
|
+
attr_accessor :controller, :request, :output_buffer, :rendered
|
57
61
|
|
58
62
|
module ClassMethods
|
59
63
|
def tests(helper_class)
|
@@ -74,11 +78,11 @@ module ActionView
|
|
74
78
|
def helper_method(*methods)
|
75
79
|
# Almost a duplicate from ActionController::Helpers
|
76
80
|
methods.flatten.each do |method|
|
77
|
-
_helpers_for_modification.module_eval
|
81
|
+
_helpers_for_modification.module_eval <<~end_eval, __FILE__, __LINE__ + 1
|
78
82
|
def #{method}(*args, &block) # def current_user(*args, &block)
|
79
83
|
_test_case.send(:'#{method}', *args, &block) # _test_case.send(:'current_user', *args, &block)
|
80
84
|
end # end
|
81
|
-
ruby2_keywords(:'#{method}')
|
85
|
+
ruby2_keywords(:'#{method}')
|
82
86
|
end_eval
|
83
87
|
end
|
84
88
|
end
|
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
require "action_view/template/resolver"
|
4
4
|
|
5
|
-
module ActionView
|
5
|
+
module ActionView # :nodoc:
|
6
6
|
# Use FixtureResolver in your tests to simulate the presence of files on the
|
7
7
|
# file system. This is used internally by Rails' own test suite, and is
|
8
8
|
# useful for testing extensions that have no way of knowing what the file
|
9
9
|
# system will look like at runtime.
|
10
|
-
class FixtureResolver <
|
10
|
+
class FixtureResolver < FileSystemResolver
|
11
11
|
def initialize(hash = {})
|
12
12
|
super("")
|
13
13
|
@hash = hash
|
@@ -23,23 +23,22 @@ module ActionView #:nodoc:
|
|
23
23
|
end
|
24
24
|
|
25
25
|
private
|
26
|
-
def
|
27
|
-
@hash.keys.
|
28
|
-
|
29
|
-
end.map do |fixture|
|
30
|
-
"/#{fixture}"
|
26
|
+
def template_glob(glob)
|
27
|
+
@hash.keys.filter_map do |path|
|
28
|
+
"/#{path}" if File.fnmatch(glob, path)
|
31
29
|
end
|
32
30
|
end
|
33
31
|
|
34
32
|
def source_for_template(template)
|
35
|
-
@hash[template
|
33
|
+
@hash[template.from(1)]
|
36
34
|
end
|
37
35
|
end
|
38
36
|
|
39
|
-
class NullResolver <
|
40
|
-
def
|
41
|
-
|
42
|
-
|
37
|
+
class NullResolver < Resolver
|
38
|
+
def find_templates(name, prefix, partial, details, locals = [])
|
39
|
+
path = TemplatePath.build(name, prefix, partial)
|
40
|
+
handler = ActionView::Template::Handlers::Raw
|
41
|
+
[ActionView::Template.new("Template generated by Null Resolver", path.virtual, handler, virtual_path: path.virtual, format: nil, variant: nil, locals: locals)]
|
43
42
|
end
|
44
43
|
end
|
45
44
|
end
|
@@ -4,28 +4,54 @@ require "concurrent/map"
|
|
4
4
|
|
5
5
|
module ActionView
|
6
6
|
class UnboundTemplate
|
7
|
-
|
7
|
+
attr_reader :virtual_path, :details
|
8
|
+
delegate :locale, :format, :variant, :handler, to: :@details
|
9
|
+
|
10
|
+
def initialize(source, identifier, details:, virtual_path:)
|
8
11
|
@source = source
|
9
12
|
@identifier = identifier
|
10
|
-
@
|
11
|
-
@
|
13
|
+
@details = details
|
14
|
+
@virtual_path = virtual_path
|
12
15
|
|
13
16
|
@templates = Concurrent::Map.new(initial_capacity: 2)
|
17
|
+
@write_lock = Mutex.new
|
14
18
|
end
|
15
19
|
|
16
20
|
def bind_locals(locals)
|
17
|
-
@templates[locals]
|
21
|
+
if template = @templates[locals]
|
22
|
+
template
|
23
|
+
else
|
24
|
+
@write_lock.synchronize do
|
25
|
+
normalized_locals = normalize_locals(locals)
|
26
|
+
|
27
|
+
# We need ||=, both to dedup on the normalized locals and to check
|
28
|
+
# while holding the lock.
|
29
|
+
@templates[normalized_locals] ||= build_template(normalized_locals)
|
30
|
+
|
31
|
+
# This may have already been assigned, but we've already de-dup'd so
|
32
|
+
# reassignment is fine.
|
33
|
+
@templates[locals.dup] = @templates[normalized_locals]
|
34
|
+
end
|
35
|
+
end
|
18
36
|
end
|
19
37
|
|
20
38
|
private
|
21
39
|
def build_template(locals)
|
22
|
-
options = @options.merge(locals: locals)
|
23
40
|
Template.new(
|
24
41
|
@source,
|
25
42
|
@identifier,
|
26
|
-
|
27
|
-
|
43
|
+
details.handler_class,
|
44
|
+
|
45
|
+
format: details.format_or_default,
|
46
|
+
variant: variant&.to_s,
|
47
|
+
virtual_path: @virtual_path,
|
48
|
+
|
49
|
+
locals: locals.map(&:to_s)
|
28
50
|
)
|
29
51
|
end
|
52
|
+
|
53
|
+
def normalize_locals(locals)
|
54
|
+
locals.map(&:to_sym).sort!.freeze
|
55
|
+
end
|
30
56
|
end
|
31
57
|
end
|
data/lib/action_view/version.rb
CHANGED
@@ -91,9 +91,9 @@ module ActionView
|
|
91
91
|
self.class._prefixes
|
92
92
|
end
|
93
93
|
|
94
|
-
#
|
94
|
+
# LookupContext is the object responsible for holding all
|
95
95
|
# information required for looking up templates, i.e. view paths and
|
96
|
-
# details. Check
|
96
|
+
# details. Check ActionView::LookupContext for more information.
|
97
97
|
def lookup_context
|
98
98
|
@_lookup_context ||=
|
99
99
|
ActionView::LookupContext.new(self.class._view_paths, details_for_lookup, _prefixes)
|
@@ -103,7 +103,7 @@ module ActionView
|
|
103
103
|
{}
|
104
104
|
end
|
105
105
|
|
106
|
-
# Append a path to the list of view paths for the current
|
106
|
+
# Append a path to the list of view paths for the current LookupContext.
|
107
107
|
#
|
108
108
|
# ==== Parameters
|
109
109
|
# * <tt>path</tt> - If a String is provided, it gets converted into
|
@@ -113,7 +113,7 @@ module ActionView
|
|
113
113
|
lookup_context.view_paths.push(*path)
|
114
114
|
end
|
115
115
|
|
116
|
-
# Prepend a path to the list of view paths for the current
|
116
|
+
# Prepend a path to the list of view paths for the current LookupContext.
|
117
117
|
#
|
118
118
|
# ==== Parameters
|
119
119
|
# * <tt>path</tt> - If a String is provided, it gets converted into
|
data/lib/action_view.rb
CHANGED
@@ -44,6 +44,8 @@ module ActionView
|
|
44
44
|
autoload :Rendering
|
45
45
|
autoload :RoutingUrlFor
|
46
46
|
autoload :Template
|
47
|
+
autoload :TemplateDetails
|
48
|
+
autoload :TemplatePath
|
47
49
|
autoload :UnboundTemplate
|
48
50
|
autoload :ViewPaths
|
49
51
|
|
@@ -59,10 +61,7 @@ module ActionView
|
|
59
61
|
|
60
62
|
autoload_at "action_view/template/resolver" do
|
61
63
|
autoload :Resolver
|
62
|
-
autoload :PathResolver
|
63
64
|
autoload :FileSystemResolver
|
64
|
-
autoload :OptimizedFileSystemResolver
|
65
|
-
autoload :FallbackFileSystemResolver
|
66
65
|
end
|
67
66
|
|
68
67
|
autoload_at "action_view/buffers" do
|
@@ -73,6 +73,22 @@ Released under the MIT license
|
|
73
73
|
return element[expando][key] = value;
|
74
74
|
};
|
75
75
|
|
76
|
+
Rails.isContentEditable = function(element) {
|
77
|
+
var isEditable;
|
78
|
+
isEditable = false;
|
79
|
+
while (true) {
|
80
|
+
if (element.isContentEditable) {
|
81
|
+
isEditable = true;
|
82
|
+
break;
|
83
|
+
}
|
84
|
+
element = element.parentElement;
|
85
|
+
if (!element) {
|
86
|
+
break;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return isEditable;
|
90
|
+
};
|
91
|
+
|
76
92
|
Rails.$ = function(selector) {
|
77
93
|
return Array.prototype.slice.call(document.querySelectorAll(selector));
|
78
94
|
};
|
@@ -395,9 +411,9 @@ Released under the MIT license
|
|
395
411
|
|
396
412
|
}).call(this);
|
397
413
|
(function() {
|
398
|
-
var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;
|
414
|
+
var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;
|
399
415
|
|
400
|
-
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;
|
416
|
+
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;
|
401
417
|
|
402
418
|
Rails.handleDisabledElement = function(e) {
|
403
419
|
var element;
|
@@ -417,6 +433,9 @@ Released under the MIT license
|
|
417
433
|
} else {
|
418
434
|
element = e;
|
419
435
|
}
|
436
|
+
if (isContentEditable(element)) {
|
437
|
+
return;
|
438
|
+
}
|
420
439
|
if (matches(element, Rails.linkDisableSelector)) {
|
421
440
|
return enableLinkElement(element);
|
422
441
|
} else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {
|
@@ -429,6 +448,9 @@ Released under the MIT license
|
|
429
448
|
Rails.disableElement = function(e) {
|
430
449
|
var element;
|
431
450
|
element = e instanceof Event ? e.target : e;
|
451
|
+
if (isContentEditable(element)) {
|
452
|
+
return;
|
453
|
+
}
|
432
454
|
if (matches(element, Rails.linkDisableSelector)) {
|
433
455
|
return disableLinkElement(element);
|
434
456
|
} else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {
|
@@ -513,10 +535,12 @@ Released under the MIT license
|
|
513
535
|
|
514
536
|
}).call(this);
|
515
537
|
(function() {
|
516
|
-
var stopEverything;
|
538
|
+
var isContentEditable, stopEverything;
|
517
539
|
|
518
540
|
stopEverything = Rails.stopEverything;
|
519
541
|
|
542
|
+
isContentEditable = Rails.isContentEditable;
|
543
|
+
|
520
544
|
Rails.handleMethod = function(e) {
|
521
545
|
var csrfParam, csrfToken, form, formContent, href, link, method;
|
522
546
|
link = this;
|
@@ -524,6 +548,9 @@ Released under the MIT license
|
|
524
548
|
if (!method) {
|
525
549
|
return;
|
526
550
|
}
|
551
|
+
if (isContentEditable(this)) {
|
552
|
+
return;
|
553
|
+
}
|
527
554
|
href = Rails.href(link);
|
528
555
|
csrfToken = Rails.csrfToken();
|
529
556
|
csrfParam = Rails.csrfParam();
|
@@ -545,10 +572,10 @@ Released under the MIT license
|
|
545
572
|
|
546
573
|
}).call(this);
|
547
574
|
(function() {
|
548
|
-
var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,
|
575
|
+
var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,
|
549
576
|
slice = [].slice;
|
550
577
|
|
551
|
-
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;
|
578
|
+
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;
|
552
579
|
|
553
580
|
isRemote = function(element) {
|
554
581
|
var value;
|
@@ -566,6 +593,10 @@ Released under the MIT license
|
|
566
593
|
fire(element, 'ajax:stopped');
|
567
594
|
return false;
|
568
595
|
}
|
596
|
+
if (isContentEditable(element)) {
|
597
|
+
fire(element, 'ajax:stopped');
|
598
|
+
return false;
|
599
|
+
}
|
569
600
|
withCredentials = element.getAttribute('data-with-credentials');
|
570
601
|
dataType = element.getAttribute('data-type') || 'script';
|
571
602
|
if (matches(element, Rails.formSubmitSelector)) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 7.0.6
|
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:
|
26
|
+
version: 7.0.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,28 +92,28 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - '='
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
95
|
+
version: 7.0.6
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - '='
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
102
|
+
version: 7.0.6
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: activemodel
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
107
|
- - '='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
109
|
+
version: 7.0.6
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - '='
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
116
|
+
version: 7.0.6
|
117
117
|
description: Simple, battle-tested conventions and helpers for building web pages.
|
118
118
|
email: david@loudthinking.com
|
119
119
|
executables: []
|
@@ -129,6 +129,8 @@ files:
|
|
129
129
|
- lib/action_view/cache_expiry.rb
|
130
130
|
- lib/action_view/context.rb
|
131
131
|
- lib/action_view/dependency_tracker.rb
|
132
|
+
- lib/action_view/dependency_tracker/erb_tracker.rb
|
133
|
+
- lib/action_view/dependency_tracker/ripper_tracker.rb
|
132
134
|
- lib/action_view/digestor.rb
|
133
135
|
- lib/action_view/flows.rb
|
134
136
|
- lib/action_view/gem_version.rb
|
@@ -189,6 +191,7 @@ files:
|
|
189
191
|
- lib/action_view/helpers/tags/translator.rb
|
190
192
|
- lib/action_view/helpers/tags/url_field.rb
|
191
193
|
- lib/action_view/helpers/tags/week_field.rb
|
194
|
+
- lib/action_view/helpers/tags/weekday_select.rb
|
192
195
|
- lib/action_view/helpers/text_helper.rb
|
193
196
|
- lib/action_view/helpers/translation_helper.rb
|
194
197
|
- lib/action_view/helpers/url_helper.rb
|
@@ -200,6 +203,7 @@ files:
|
|
200
203
|
- lib/action_view/path_set.rb
|
201
204
|
- lib/action_view/railtie.rb
|
202
205
|
- lib/action_view/record_identifier.rb
|
206
|
+
- lib/action_view/render_parser.rb
|
203
207
|
- lib/action_view/renderer/abstract_renderer.rb
|
204
208
|
- lib/action_view/renderer/collection_renderer.rb
|
205
209
|
- lib/action_view/renderer/object_renderer.rb
|
@@ -209,6 +213,7 @@ files:
|
|
209
213
|
- lib/action_view/renderer/streaming_template_renderer.rb
|
210
214
|
- lib/action_view/renderer/template_renderer.rb
|
211
215
|
- lib/action_view/rendering.rb
|
216
|
+
- lib/action_view/ripper_ast_parser.rb
|
212
217
|
- lib/action_view/routing_url_for.rb
|
213
218
|
- lib/action_view/tasks/cache_digests.rake
|
214
219
|
- lib/action_view/template.rb
|
@@ -228,6 +233,8 @@ files:
|
|
228
233
|
- lib/action_view/template/sources/file.rb
|
229
234
|
- lib/action_view/template/text.rb
|
230
235
|
- lib/action_view/template/types.rb
|
236
|
+
- lib/action_view/template_details.rb
|
237
|
+
- lib/action_view/template_path.rb
|
231
238
|
- lib/action_view/test_case.rb
|
232
239
|
- lib/action_view/testing/resolvers.rb
|
233
240
|
- lib/action_view/unbound_template.rb
|
@@ -239,12 +246,12 @@ licenses:
|
|
239
246
|
- MIT
|
240
247
|
metadata:
|
241
248
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
242
|
-
changelog_uri: https://github.com/rails/rails/blob/
|
243
|
-
documentation_uri: https://api.rubyonrails.org/
|
249
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.0.6/actionview/CHANGELOG.md
|
250
|
+
documentation_uri: https://api.rubyonrails.org/v7.0.6/
|
244
251
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
245
|
-
source_code_uri: https://github.com/rails/rails/tree/
|
252
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.0.6/actionview
|
246
253
|
rubygems_mfa_required: 'true'
|
247
|
-
post_install_message:
|
254
|
+
post_install_message:
|
248
255
|
rdoc_options: []
|
249
256
|
require_paths:
|
250
257
|
- lib
|
@@ -252,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
252
259
|
requirements:
|
253
260
|
- - ">="
|
254
261
|
- !ruby/object:Gem::Version
|
255
|
-
version: 2.
|
262
|
+
version: 2.7.0
|
256
263
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
257
264
|
requirements:
|
258
265
|
- - ">="
|
@@ -260,8 +267,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
260
267
|
version: '0'
|
261
268
|
requirements:
|
262
269
|
- none
|
263
|
-
rubygems_version: 3.4.
|
264
|
-
signing_key:
|
270
|
+
rubygems_version: 3.4.13
|
271
|
+
signing_key:
|
265
272
|
specification_version: 4
|
266
273
|
summary: Rendering framework putting the V in MVC (part of Rails).
|
267
274
|
test_files: []
|