wallaby-view 0.1.5 → 0.1.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/README.md +2 -2
- data/lib/wallaby/view.rb +0 -3
- data/lib/wallaby/view/action_viewable.rb +16 -9
- data/lib/wallaby/view/custom_lookup_context.rb +2 -2
- data/lib/wallaby/view/custom_prefixes.rb +7 -7
- data/lib/wallaby/view/version.rb +1 -1
- metadata +69 -8
- data/lib/action_view/partial_renderer.rb +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b3a499676db69e41f08251a98cd380af6875ac62ec9dee5f0e0a3b417ea04c8d
|
|
4
|
+
data.tar.gz: f614b7e34a5d24843550ccd17fd8f30e2f684c3d8a0198cab0ff09e6e9bea76b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a2011712b90441fab47976d2b9b381b6e7a879dbf5959be12bb5730ffb15472fc38f29985b615e46ea67821a7ab9657fa496750c71a904900a90e6c6c9cc0775
|
|
7
|
+
data.tar.gz: de63a2f32221fabbbfd905368ba74e95ba2342a96eda42b8d0e52f021e3e029387f25da8cb4be58f077156bb47fb4c24f69400120daa74af11ba90ce3aa4f306
|
data/README.md
CHANGED
|
@@ -53,7 +53,7 @@ end
|
|
|
53
53
|
# app/controllers/admin/users_controller
|
|
54
54
|
class Admin::UsersController < Admin::ApplicationController
|
|
55
55
|
self.theme_name = 'account'
|
|
56
|
-
self.prefix_options = {
|
|
56
|
+
self.prefix_options = { edit: 'form' }
|
|
57
57
|
end
|
|
58
58
|
```
|
|
59
59
|
|
|
@@ -81,7 +81,7 @@ Then in the `admin/application#edit` template, rendering the relative `form` par
|
|
|
81
81
|
<% render 'form' %>
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
For `admin/users#edit` action, since `
|
|
84
|
+
For `admin/users#edit` action, since `prefix_options` option is set, `edit` will be mapped to `form`, and `form` will be added to the prefixes as well.
|
|
85
85
|
Therefore, the lookup folder order of `admin/users#edit` becomes:
|
|
86
86
|
|
|
87
87
|
- app/views/admin/users/edit
|
data/lib/wallaby/view.rb
CHANGED
|
@@ -8,14 +8,21 @@ module Wallaby
|
|
|
8
8
|
extend ActiveSupport::Concern
|
|
9
9
|
|
|
10
10
|
module ClassMethods # :nodoc:
|
|
11
|
-
# @!attribute[w] prefix_options
|
|
11
|
+
# @!attribute [w] prefix_options
|
|
12
12
|
attr_writer :prefix_options
|
|
13
13
|
|
|
14
|
-
# @!attribute[r] prefix_options
|
|
15
|
-
# It stores the options for {#_prefixes}. It can inherit options from superclass.
|
|
14
|
+
# @!attribute [r] prefix_options
|
|
15
|
+
# It stores the options for {#_prefixes #_prefixes}. It can inherit options from superclass.
|
|
16
16
|
# @return [Hash] prefix options
|
|
17
17
|
def prefix_options
|
|
18
|
-
@prefix_options ||= superclass.try(:prefix_options)
|
|
18
|
+
@prefix_options ||= superclass.try(:prefix_options).try(:dup) || {}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Add prefix options
|
|
22
|
+
# @param new_options [Hash]
|
|
23
|
+
# @return [Hash] merged prefix options
|
|
24
|
+
def merge_prefix_options(new_options)
|
|
25
|
+
prefix_options.merge!(new_options)
|
|
19
26
|
end
|
|
20
27
|
end
|
|
21
28
|
|
|
@@ -31,7 +38,7 @@ module Wallaby
|
|
|
31
38
|
# Override
|
|
32
39
|
# {https://github.com/rails/rails/blob/master/actionview/lib/action_view/view_paths.rb#L97 lookup_context}
|
|
33
40
|
# to provide caching for template/partial lookup.
|
|
34
|
-
# @return {
|
|
41
|
+
# @return {CustomLookupContext}
|
|
35
42
|
|
|
36
43
|
# (see #lookup_context)
|
|
37
44
|
def override_lookup_context
|
|
@@ -41,12 +48,12 @@ module Wallaby
|
|
|
41
48
|
|
|
42
49
|
# @!method _prefixes(prefixes: nil, controller_path: nil, action_name: nil, themes: nil, options: nil, &block)
|
|
43
50
|
# Override {https://github.com/rails/rails/blob/master/actionview/lib/action_view/view_paths.rb#L90 _prefixes}
|
|
44
|
-
# to allow other (e.g. {
|
|
45
|
-
# {
|
|
51
|
+
# to allow other (e.g. {CustomPrefixes#action_name},
|
|
52
|
+
# {CustomPrefixes#themes}) to be added to the prefixes list.
|
|
46
53
|
# @param prefixes [Array<String>] the base prefixes
|
|
47
54
|
# @param action_name [String] the action name to add to the prefixes list
|
|
48
55
|
# @param themes [String] the theme name to add to the prefixes list
|
|
49
|
-
# @param options [Hash] the options that {
|
|
56
|
+
# @param options [Hash] the options that {CustomPrefixes} accepts
|
|
50
57
|
# @return [Array<String>]
|
|
51
58
|
|
|
52
59
|
# (see #_prefixes)
|
|
@@ -61,7 +68,7 @@ module Wallaby
|
|
|
61
68
|
prefixes: prefixes || original_prefixes,
|
|
62
69
|
action_name: action_name || params[:action],
|
|
63
70
|
themes: themes || self.class.themes,
|
|
64
|
-
options:
|
|
71
|
+
options: self.class.prefix_options.merge(options || {}), &block
|
|
65
72
|
)
|
|
66
73
|
end
|
|
67
74
|
end
|
|
@@ -4,11 +4,11 @@ module Wallaby
|
|
|
4
4
|
module View
|
|
5
5
|
# Custom lookup context to cache lookup results.
|
|
6
6
|
class CustomLookupContext < ::ActionView::LookupContext
|
|
7
|
-
# Convert an ActionView::LookupContext instance into {
|
|
7
|
+
# Convert an ActionView::LookupContext instance into {CustomLookupContext}
|
|
8
8
|
# @param lookup_context [ActionView::LookupContext]
|
|
9
9
|
# @param details [Hash]
|
|
10
10
|
# @param prefixes [Array<String>]
|
|
11
|
-
# @return [
|
|
11
|
+
# @return [CustomLookupContext]
|
|
12
12
|
def self.convert(lookup_context, details: nil, prefixes: nil)
|
|
13
13
|
return lookup_context if lookup_context.is_a? self
|
|
14
14
|
|
|
@@ -7,7 +7,7 @@ module Wallaby
|
|
|
7
7
|
# @!attribute [r] prefixes
|
|
8
8
|
# Base prefixes to extend
|
|
9
9
|
# @return [Array<String>]
|
|
10
|
-
# @see
|
|
10
|
+
# @see ActionViewable#_prefixes
|
|
11
11
|
attr_reader :prefixes
|
|
12
12
|
|
|
13
13
|
# @!attribute [r] action_name
|
|
@@ -18,7 +18,7 @@ module Wallaby
|
|
|
18
18
|
# @!attribute [r] themes
|
|
19
19
|
# Themes to be inserted
|
|
20
20
|
# @return [Array<Hash>]
|
|
21
|
-
# @see
|
|
21
|
+
# @see Themeable#.themes
|
|
22
22
|
attr_reader :themes
|
|
23
23
|
|
|
24
24
|
# @!attribute [r] options
|
|
@@ -55,7 +55,7 @@ module Wallaby
|
|
|
55
55
|
# @example To extend given prefixes with mapped action:
|
|
56
56
|
# Wallaby::View::CustomPrefixes.execute(
|
|
57
57
|
# prefixes: ['users', 'application'], action_name: 'edit',
|
|
58
|
-
# options: {
|
|
58
|
+
# options: { 'edit' => 'form' }
|
|
59
59
|
# )
|
|
60
60
|
#
|
|
61
61
|
# # => [
|
|
@@ -110,7 +110,7 @@ module Wallaby
|
|
|
110
110
|
insert_themes_into array
|
|
111
111
|
|
|
112
112
|
# Be able to change the array in overriding methods
|
|
113
|
-
# in {
|
|
113
|
+
# in {ActionViewable#override_prefixes}
|
|
114
114
|
new_array = yield array if block_given?
|
|
115
115
|
|
|
116
116
|
# If the above block doesn't return a new array, it returns the old `array`.
|
|
@@ -120,7 +120,7 @@ module Wallaby
|
|
|
120
120
|
|
|
121
121
|
# @return [Array<String>] Action names
|
|
122
122
|
def actions
|
|
123
|
-
@actions ||= [action_name, mapped_action_name].compact
|
|
123
|
+
@actions ||= [action_name, *mapped_action_name].compact
|
|
124
124
|
end
|
|
125
125
|
|
|
126
126
|
# Insert theme names into the prefixes
|
|
@@ -133,9 +133,9 @@ module Wallaby
|
|
|
133
133
|
end
|
|
134
134
|
|
|
135
135
|
# Map the {#action_name} using `options[:mapping_actions]`
|
|
136
|
-
# @return [String
|
|
136
|
+
# @return [Array<String>] mapped action name
|
|
137
137
|
def mapped_action_name
|
|
138
|
-
options[:mapping_actions].try(:[], action_name)
|
|
138
|
+
Array((options[:mapping_actions] || options).try(:[], action_name))
|
|
139
139
|
end
|
|
140
140
|
end
|
|
141
141
|
end
|
data/lib/wallaby/view/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: wallaby-view
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tian Chen
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-12-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: railties
|
|
@@ -17,6 +17,9 @@ dependencies:
|
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: 4.2.0
|
|
20
|
+
- - "<="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 6.2.0
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -24,14 +27,17 @@ dependencies:
|
|
|
24
27
|
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: 4.2.0
|
|
30
|
+
- - "<="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 6.2.0
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
34
|
+
name: github-markup
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
30
36
|
requirements:
|
|
31
37
|
- - ">="
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
39
|
version: '0'
|
|
34
|
-
type: :
|
|
40
|
+
type: :development
|
|
35
41
|
prerelease: false
|
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
43
|
requirements:
|
|
@@ -52,6 +58,48 @@ dependencies:
|
|
|
52
58
|
- - ">="
|
|
53
59
|
- !ruby/object:Gem::Version
|
|
54
60
|
version: '0'
|
|
61
|
+
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: redcarpet
|
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
type: :development
|
|
69
|
+
prerelease: false
|
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
name: simplecov
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
type: :development
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: sqlite3
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
type: :development
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
55
103
|
- !ruby/object:Gem::Dependency
|
|
56
104
|
name: wallaby-cop
|
|
57
105
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,6 +114,20 @@ dependencies:
|
|
|
66
114
|
- - ">="
|
|
67
115
|
- !ruby/object:Gem::Version
|
|
68
116
|
version: '0'
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: yard
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0'
|
|
124
|
+
type: :development
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0'
|
|
69
131
|
description: Wallaby View to extend Rails layout/template/partial inheritance chain.
|
|
70
132
|
email:
|
|
71
133
|
- me@tian.im
|
|
@@ -75,7 +137,6 @@ extra_rdoc_files: []
|
|
|
75
137
|
files:
|
|
76
138
|
- LICENSE
|
|
77
139
|
- README.md
|
|
78
|
-
- lib/action_view/partial_renderer.rb
|
|
79
140
|
- lib/wallaby/view.rb
|
|
80
141
|
- lib/wallaby/view/action_viewable.rb
|
|
81
142
|
- lib/wallaby/view/custom_lookup_context.rb
|
|
@@ -89,7 +150,7 @@ metadata:
|
|
|
89
150
|
homepage_uri: https://github.com/wallaby-rails/wallaby-view
|
|
90
151
|
source_code_uri: https://github.com/wallaby-rails/wallaby-view
|
|
91
152
|
changelog_uri: https://github.com/wallaby-rails/wallaby-view/blob/master/CHANGELOG.md
|
|
92
|
-
post_install_message:
|
|
153
|
+
post_install_message:
|
|
93
154
|
rdoc_options: []
|
|
94
155
|
require_paths:
|
|
95
156
|
- lib
|
|
@@ -105,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
105
166
|
version: '0'
|
|
106
167
|
requirements: []
|
|
107
168
|
rubygems_version: 3.1.2
|
|
108
|
-
signing_key:
|
|
169
|
+
signing_key:
|
|
109
170
|
specification_version: 4
|
|
110
171
|
summary: Wallaby View to extend Rails layout/template/partial inheritance chain.
|
|
111
172
|
test_files: []
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module ActionView # :nodoc:
|
|
4
|
-
# Re-open ActionView::PartialRenderer to disable logging for partials
|
|
5
|
-
# that have been rendered for more than once.
|
|
6
|
-
#
|
|
7
|
-
# Every log requires the IO. Reducing the logs will dramatically improve the performance.
|
|
8
|
-
# @see #instrument
|
|
9
|
-
class PartialRenderer
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
# @!method original_instrument(name, **options, &block)
|
|
13
|
-
# Original method of {#instrument}
|
|
14
|
-
# @param name [String]
|
|
15
|
-
# @param options [Hash]
|
|
16
|
-
# @yield [payload]
|
|
17
|
-
# @yieldparam payload [Hash] payload object for instrument
|
|
18
|
-
# @return [ActionView::OutputBuffer]
|
|
19
|
-
alias original_instrument instrument
|
|
20
|
-
|
|
21
|
-
# Logs for partial rendering. Only one log will be printed
|
|
22
|
-
# even if a partial has been rendered for more than once.
|
|
23
|
-
#
|
|
24
|
-
# To disable this feature and see all logs,
|
|
25
|
-
# set `ENV['ALL_PARTIAL_LOGS']` to `true`
|
|
26
|
-
# @param name [String]
|
|
27
|
-
# @param options [Hash]
|
|
28
|
-
# @yield [payload]
|
|
29
|
-
# @yieldparam payload [Hash] payload object for instrument
|
|
30
|
-
# @return [ActionView::OutputBuffer]
|
|
31
|
-
def instrument(name, **options, &block)
|
|
32
|
-
identifier = options[:identifier] || @template.try(:identifier) || @path
|
|
33
|
-
instrumented = RequestStore.store[:instrumented] ||= {}
|
|
34
|
-
|
|
35
|
-
return yield({}) if !ENV['ALL_PARTIAL_LOGS'] && instrumented[identifier]
|
|
36
|
-
|
|
37
|
-
original_instrument(name, **options, &block).tap do
|
|
38
|
-
instrumented[identifier] ||= true
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|