wallaby-view 0.1.5 → 0.1.6
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 -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
|