piko-lite-box 0.0.1
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 +7 -0
- data/hanami-3.0.1/CHANGELOG.md +1701 -0
- data/hanami-3.0.1/LICENSE +20 -0
- data/hanami-3.0.1/README.md +89 -0
- data/hanami-3.0.1/hanami.gemspec +49 -0
- data/hanami-3.0.1/lib/hanami/app.rb +197 -0
- data/hanami-3.0.1/lib/hanami/boot.rb +5 -0
- data/hanami-3.0.1/lib/hanami/config/actions/content_security_policy.rb +140 -0
- data/hanami-3.0.1/lib/hanami/config/actions/cookies.rb +57 -0
- data/hanami-3.0.1/lib/hanami/config/actions/sessions.rb +83 -0
- data/hanami-3.0.1/lib/hanami/config/actions.rb +189 -0
- data/hanami-3.0.1/lib/hanami/config/assets.rb +84 -0
- data/hanami-3.0.1/lib/hanami/config/console.rb +79 -0
- data/hanami-3.0.1/lib/hanami/config/db.rb +35 -0
- data/hanami-3.0.1/lib/hanami/config/i18n.rb +138 -0
- data/hanami-3.0.1/lib/hanami/config/logger.rb +207 -0
- data/hanami-3.0.1/lib/hanami/config/null_config.rb +17 -0
- data/hanami-3.0.1/lib/hanami/config/router.rb +48 -0
- data/hanami-3.0.1/lib/hanami/config/views.rb +103 -0
- data/hanami-3.0.1/lib/hanami/config.rb +564 -0
- data/hanami-3.0.1/lib/hanami/constants.rb +62 -0
- data/hanami-3.0.1/lib/hanami/env.rb +52 -0
- data/hanami-3.0.1/lib/hanami/errors.rb +41 -0
- data/hanami-3.0.1/lib/hanami/extensions/action/i18n_helper.rb +64 -0
- data/hanami-3.0.1/lib/hanami/extensions/action/name_inferrer.rb +34 -0
- data/hanami-3.0.1/lib/hanami/extensions/action/slice_configured_action.rb +190 -0
- data/hanami-3.0.1/lib/hanami/extensions/action.rb +147 -0
- data/hanami-3.0.1/lib/hanami/extensions/db/repo.rb +108 -0
- data/hanami-3.0.1/lib/hanami/extensions/mailer/slice_configured_mailer.rb +134 -0
- data/hanami-3.0.1/lib/hanami/extensions/mailer.rb +28 -0
- data/hanami-3.0.1/lib/hanami/extensions/operation/slice_configured_db_operation.rb +90 -0
- data/hanami-3.0.1/lib/hanami/extensions/operation.rb +33 -0
- data/hanami-3.0.1/lib/hanami/extensions/router/errors.rb +58 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/context.rb +298 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/part.rb +92 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/scope.rb +36 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/slice_configured_context.rb +73 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/slice_configured_helpers.rb +55 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/slice_configured_part.rb +73 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/slice_configured_view.rb +243 -0
- data/hanami-3.0.1/lib/hanami/extensions/view/standard_helpers.rb +26 -0
- data/hanami-3.0.1/lib/hanami/extensions/view.rb +38 -0
- data/hanami-3.0.1/lib/hanami/extensions.rb +30 -0
- data/hanami-3.0.1/lib/hanami/helpers/assets_helper.rb +804 -0
- data/hanami-3.0.1/lib/hanami/helpers/form_helper/form_builder.rb +1389 -0
- data/hanami-3.0.1/lib/hanami/helpers/form_helper/values.rb +75 -0
- data/hanami-3.0.1/lib/hanami/helpers/form_helper.rb +213 -0
- data/hanami-3.0.1/lib/hanami/helpers/i18n_helper.rb +241 -0
- data/hanami-3.0.1/lib/hanami/logger/rack_formatter.rb +73 -0
- data/hanami-3.0.1/lib/hanami/logger/sql_formatter.rb +80 -0
- data/hanami-3.0.1/lib/hanami/logger/sql_logger.rb +48 -0
- data/hanami-3.0.1/lib/hanami/middleware/assets.rb +21 -0
- data/hanami-3.0.1/lib/hanami/middleware/content_security_policy_nonce.rb +53 -0
- data/hanami-3.0.1/lib/hanami/middleware/public_errors_app.rb +75 -0
- data/hanami-3.0.1/lib/hanami/middleware/render_errors.rb +90 -0
- data/hanami-3.0.1/lib/hanami/port.rb +45 -0
- data/hanami-3.0.1/lib/hanami/prepare.rb +5 -0
- data/hanami-3.0.1/lib/hanami/provider/source.rb +16 -0
- data/hanami-3.0.1/lib/hanami/provider_registrar.rb +28 -0
- data/hanami-3.0.1/lib/hanami/providers/assets.rb +28 -0
- data/hanami-3.0.1/lib/hanami/providers/db/adapter.rb +75 -0
- data/hanami-3.0.1/lib/hanami/providers/db/adapters.rb +66 -0
- data/hanami-3.0.1/lib/hanami/providers/db/config.rb +44 -0
- data/hanami-3.0.1/lib/hanami/providers/db/gateway.rb +87 -0
- data/hanami-3.0.1/lib/hanami/providers/db/sql_adapter.rb +100 -0
- data/hanami-3.0.1/lib/hanami/providers/db.rb +325 -0
- data/hanami-3.0.1/lib/hanami/providers/db_logging.rb +19 -0
- data/hanami-3.0.1/lib/hanami/providers/i18n/backend.rb +373 -0
- data/hanami-3.0.1/lib/hanami/providers/i18n/locale/en.yml +57 -0
- data/hanami-3.0.1/lib/hanami/providers/i18n.rb +114 -0
- data/hanami-3.0.1/lib/hanami/providers/inflector.rb +17 -0
- data/hanami-3.0.1/lib/hanami/providers/logger.rb +41 -0
- data/hanami-3.0.1/lib/hanami/providers/mailers.rb +101 -0
- data/hanami-3.0.1/lib/hanami/providers/rack.rb +47 -0
- data/hanami-3.0.1/lib/hanami/providers/relations.rb +31 -0
- data/hanami-3.0.1/lib/hanami/providers/routes.rb +29 -0
- data/hanami-3.0.1/lib/hanami/rake_tasks.rb +54 -0
- data/hanami-3.0.1/lib/hanami/routes.rb +146 -0
- data/hanami-3.0.1/lib/hanami/settings/composite_store.rb +53 -0
- data/hanami-3.0.1/lib/hanami/settings/env_store.rb +32 -0
- data/hanami-3.0.1/lib/hanami/settings.rb +234 -0
- data/hanami-3.0.1/lib/hanami/setup.rb +6 -0
- data/hanami-3.0.1/lib/hanami/slice/router.rb +280 -0
- data/hanami-3.0.1/lib/hanami/slice/routes_helper.rb +37 -0
- data/hanami-3.0.1/lib/hanami/slice/routing/middleware/stack.rb +216 -0
- data/hanami-3.0.1/lib/hanami/slice/routing/resolver.rb +88 -0
- data/hanami-3.0.1/lib/hanami/slice/view_name_inferrer.rb +63 -0
- data/hanami-3.0.1/lib/hanami/slice.rb +1239 -0
- data/hanami-3.0.1/lib/hanami/slice_configurable.rb +72 -0
- data/hanami-3.0.1/lib/hanami/slice_name.rb +111 -0
- data/hanami-3.0.1/lib/hanami/slice_registrar.rb +215 -0
- data/hanami-3.0.1/lib/hanami/universal_logger.rb +250 -0
- data/hanami-3.0.1/lib/hanami/version.rb +45 -0
- data/hanami-3.0.1/lib/hanami/web/rack_logger.rb +126 -0
- data/hanami-3.0.1/lib/hanami/web/welcome.html.erb +584 -0
- data/hanami-3.0.1/lib/hanami/web/welcome.rb +46 -0
- data/hanami-3.0.1/lib/hanami.rb +276 -0
- data/piko-lite-box.gemspec +11 -0
- metadata +137 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/configurable"
|
|
4
|
+
require "dry/logger"
|
|
5
|
+
|
|
6
|
+
module Hanami
|
|
7
|
+
class Config
|
|
8
|
+
# Hanami logger config
|
|
9
|
+
#
|
|
10
|
+
# @api public
|
|
11
|
+
# @since 2.0.0
|
|
12
|
+
class Logger
|
|
13
|
+
include Dry::Configurable
|
|
14
|
+
|
|
15
|
+
# @return [Hanami::SliceName]
|
|
16
|
+
#
|
|
17
|
+
# @api private
|
|
18
|
+
# @since 2.0.0
|
|
19
|
+
attr_reader :app_name
|
|
20
|
+
|
|
21
|
+
# @return [Symbol]
|
|
22
|
+
#
|
|
23
|
+
# @api private
|
|
24
|
+
# @since 2.0.0
|
|
25
|
+
attr_reader :env
|
|
26
|
+
|
|
27
|
+
# @!attribute [rw] level
|
|
28
|
+
# Sets or returns the logger's level.
|
|
29
|
+
#
|
|
30
|
+
# Defaults to `:info` for the production environment and `:debug` for all others.
|
|
31
|
+
# Can be set via the `HANAMI_LOG_LEVEL` environment variable.
|
|
32
|
+
#
|
|
33
|
+
# @return [Symbol]
|
|
34
|
+
#
|
|
35
|
+
# @api public
|
|
36
|
+
# @since 2.0.0
|
|
37
|
+
setting :level
|
|
38
|
+
|
|
39
|
+
# @!attribute [rw] stream
|
|
40
|
+
# Sets or returns the logger's stream.
|
|
41
|
+
#
|
|
42
|
+
# This can be a file path or an `IO`-like object for the logger to write to.
|
|
43
|
+
#
|
|
44
|
+
# Defaults to `"log/test.log"` for the test environment and `$stdout` for all others.
|
|
45
|
+
#
|
|
46
|
+
# @return [String, #write]
|
|
47
|
+
#
|
|
48
|
+
# @api public
|
|
49
|
+
# @since 2.0.0
|
|
50
|
+
setting :stream, default: $stdout
|
|
51
|
+
|
|
52
|
+
# @!attribute [rw] formatter
|
|
53
|
+
# Sets or returns the logger's formatter.
|
|
54
|
+
#
|
|
55
|
+
# This may be a name that matches a formatter registered with `Dry::Logger`, which includes
|
|
56
|
+
# `:string`, `:rack` and `:json`.
|
|
57
|
+
#
|
|
58
|
+
# This may also be an instance of Ruby's built-in `::Logger::Formatter` or any compatible
|
|
59
|
+
# object.
|
|
60
|
+
#
|
|
61
|
+
# Defaults to `:json` for the production environment, and `:rack` for all others.
|
|
62
|
+
#
|
|
63
|
+
# @return [Symbol, ::Logger::Formatter]
|
|
64
|
+
#
|
|
65
|
+
# @api public
|
|
66
|
+
# @since 2.0.0
|
|
67
|
+
setting :formatter, default: :string
|
|
68
|
+
|
|
69
|
+
# @!attribute [rw] template
|
|
70
|
+
# Sets or returns log entry string template
|
|
71
|
+
#
|
|
72
|
+
# Defaults to `false`.
|
|
73
|
+
#
|
|
74
|
+
# @return [Boolean]
|
|
75
|
+
#
|
|
76
|
+
# @api public
|
|
77
|
+
# @since 2.0.0
|
|
78
|
+
setting :template, default: :details
|
|
79
|
+
|
|
80
|
+
# @!attribute [rw] filters
|
|
81
|
+
# Sets or returns an array of attribute names to filter from logs.
|
|
82
|
+
#
|
|
83
|
+
# Defaults to `["_csrf", "password", "password_confirmation"]`. If you want to preserve
|
|
84
|
+
# these defaults, append to this array rather than reassigning it.
|
|
85
|
+
#
|
|
86
|
+
# @return [Array<String>]
|
|
87
|
+
#
|
|
88
|
+
# @api public
|
|
89
|
+
# @since 2.0.0
|
|
90
|
+
setting :filters, default: %w[_csrf password password_confirmation].freeze
|
|
91
|
+
|
|
92
|
+
# @!attribute [rw] logger_constructor
|
|
93
|
+
# Sets or returns the constructor proc to use for the logger instantiation.
|
|
94
|
+
#
|
|
95
|
+
# Defaults to either `Config#production_logger` or `Config#development_logger`
|
|
96
|
+
#
|
|
97
|
+
# @api public
|
|
98
|
+
# @since 2.0.0
|
|
99
|
+
setting :logger_constructor
|
|
100
|
+
|
|
101
|
+
# @!attribute [rw] options
|
|
102
|
+
# Sets or returns a hash of options to pass to the {logger_constructor} when initializing
|
|
103
|
+
# the logger.
|
|
104
|
+
#
|
|
105
|
+
# Defaults to `{}`
|
|
106
|
+
#
|
|
107
|
+
# @return [Hash]
|
|
108
|
+
#
|
|
109
|
+
# @api public
|
|
110
|
+
# @since 2.0.0
|
|
111
|
+
setting :options, default: {}
|
|
112
|
+
|
|
113
|
+
# Returns a new `Logger` config.
|
|
114
|
+
#
|
|
115
|
+
# You should not need to initialize this directly, instead use {Hanami::Config#logger}.
|
|
116
|
+
#
|
|
117
|
+
# @param env [Symbol] the Hanami env
|
|
118
|
+
# @param app_name [Hanami::SliceName]
|
|
119
|
+
#
|
|
120
|
+
# @api private
|
|
121
|
+
def initialize(env:, app_name:)
|
|
122
|
+
@app_name = app_name
|
|
123
|
+
@env = env
|
|
124
|
+
|
|
125
|
+
case env
|
|
126
|
+
when :development
|
|
127
|
+
config.level = :debug
|
|
128
|
+
config.options = {colorize: true}
|
|
129
|
+
config.logger_constructor = method(:development_logger)
|
|
130
|
+
when :test
|
|
131
|
+
config.level = :debug
|
|
132
|
+
config.stream = File.join("log", "#{env}.log")
|
|
133
|
+
config.logger_constructor = method(:development_logger)
|
|
134
|
+
else
|
|
135
|
+
config.level = :info
|
|
136
|
+
config.formatter = :json
|
|
137
|
+
config.logger_constructor = method(:production_logger)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Returns a new instance of the logger.
|
|
142
|
+
#
|
|
143
|
+
# @return [logger_class]
|
|
144
|
+
#
|
|
145
|
+
# @api public
|
|
146
|
+
# @since 2.0.0
|
|
147
|
+
def instance
|
|
148
|
+
logger_constructor.call(env, app_name.name, **logger_constructor_options)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Build an instance of a development logger
|
|
152
|
+
#
|
|
153
|
+
# This logger is used in both development and test
|
|
154
|
+
#
|
|
155
|
+
# @return [Dry::Logger::Dispatcher]
|
|
156
|
+
# @since 2.0.0
|
|
157
|
+
# @api private
|
|
158
|
+
def development_logger(_env, app_name, **options)
|
|
159
|
+
Dry.Logger(app_name, **options) do |setup|
|
|
160
|
+
setup
|
|
161
|
+
.add_backend(log_if: -> entry { !entry.tag?(:rack) && !entry.tag?(:sql) })
|
|
162
|
+
.add_backend(log_if: -> entry { entry.tag?(:rack) }, formatter: Hanami::Logger::RackFormatter)
|
|
163
|
+
.add_backend(log_if: -> entry { entry.tag?(:sql) }, formatter: Hanami::Logger::SQLFormatter)
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Build an instance of a production logger
|
|
168
|
+
#
|
|
169
|
+
# This logger is used in both development and test
|
|
170
|
+
#
|
|
171
|
+
# @return [Dry::Logger::Dispatcher]
|
|
172
|
+
# @since 2.0.0
|
|
173
|
+
# @api private
|
|
174
|
+
def production_logger(_env, app_name, **options)
|
|
175
|
+
Dry.Logger(app_name, **options)
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
private
|
|
179
|
+
|
|
180
|
+
# @api private
|
|
181
|
+
def logger_constructor_options
|
|
182
|
+
{
|
|
183
|
+
stream: stream,
|
|
184
|
+
level: ENV["HANAMI_LOG_LEVEL"]&.to_sym || level,
|
|
185
|
+
formatter: formatter,
|
|
186
|
+
filters: filters,
|
|
187
|
+
template: template,
|
|
188
|
+
**options
|
|
189
|
+
}
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# @api private
|
|
193
|
+
def method_missing(name, *args, &block)
|
|
194
|
+
if config.respond_to?(name)
|
|
195
|
+
config.public_send(name, *args, &block)
|
|
196
|
+
else
|
|
197
|
+
super
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# @api private
|
|
202
|
+
def respond_to_missing?(name, _include_all = false)
|
|
203
|
+
config.respond_to?(name) || super
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/configurable"
|
|
4
|
+
|
|
5
|
+
module Hanami
|
|
6
|
+
class Config
|
|
7
|
+
# NullConfig can serve as a fallback config object when out-of-gem config objects are not
|
|
8
|
+
# available (specifically, when the hanami-action, hanami-router or hanami-view gems are not
|
|
9
|
+
# loaded)
|
|
10
|
+
class NullConfig
|
|
11
|
+
include Dry::Configurable
|
|
12
|
+
|
|
13
|
+
def finalize!(*)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/configurable"
|
|
4
|
+
require_relative "../slice/routing/resolver"
|
|
5
|
+
|
|
6
|
+
module Hanami
|
|
7
|
+
class Config
|
|
8
|
+
# Hanami router config
|
|
9
|
+
#
|
|
10
|
+
# @since 2.0.0
|
|
11
|
+
# @api private
|
|
12
|
+
class Router
|
|
13
|
+
include Dry::Configurable
|
|
14
|
+
|
|
15
|
+
# Base config is provided so router config can include the `base_url`
|
|
16
|
+
attr_reader :base_config
|
|
17
|
+
private :base_config
|
|
18
|
+
|
|
19
|
+
# @api private
|
|
20
|
+
# @since 2.0.0
|
|
21
|
+
def initialize(base_config)
|
|
22
|
+
@base_config = base_config
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
setting :resolver, default: Slice::Routing::Resolver
|
|
26
|
+
|
|
27
|
+
# @api private
|
|
28
|
+
# @since 2.0.0
|
|
29
|
+
def options
|
|
30
|
+
{base_url: base_config.base_url}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
private
|
|
34
|
+
|
|
35
|
+
def method_missing(name, *args, &block)
|
|
36
|
+
if config.respond_to?(name)
|
|
37
|
+
config.public_send(name, *args, &block)
|
|
38
|
+
else
|
|
39
|
+
super
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def respond_to_missing?(name, _include_all = false)
|
|
44
|
+
config.respond_to?(name) || super
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "dry/configurable"
|
|
4
|
+
require "hanami/view"
|
|
5
|
+
|
|
6
|
+
module Hanami
|
|
7
|
+
class Config
|
|
8
|
+
# Hanami views config
|
|
9
|
+
#
|
|
10
|
+
# This exposes all the settings from the standalone `Hanami::View` class, pre-configured with
|
|
11
|
+
# sensible defaults for actions within a full Hanami app. It also provides additional settings
|
|
12
|
+
# for further integration of views with other full stack app components.
|
|
13
|
+
#
|
|
14
|
+
# @since 2.1.0
|
|
15
|
+
# @api public
|
|
16
|
+
class Views
|
|
17
|
+
include Dry::Configurable
|
|
18
|
+
|
|
19
|
+
# @!attribute [rw] default_template_engine
|
|
20
|
+
# Sets or returns the default template engine to use for generated views.
|
|
21
|
+
#
|
|
22
|
+
# Used by generators when no explicit template engine is specified.
|
|
23
|
+
# Supports `erb`, `haml`, and `slim`.
|
|
24
|
+
#
|
|
25
|
+
# Defaults to `"erb"`.
|
|
26
|
+
#
|
|
27
|
+
# @example
|
|
28
|
+
# config.views.default_template_engine = "slim"
|
|
29
|
+
#
|
|
30
|
+
# @return [String] the template engine name
|
|
31
|
+
#
|
|
32
|
+
# @api public
|
|
33
|
+
# @since 2.4.0
|
|
34
|
+
setting :default_template_engine, default: "erb"
|
|
35
|
+
|
|
36
|
+
# @api private
|
|
37
|
+
# @since 2.1.0
|
|
38
|
+
attr_reader :base_config
|
|
39
|
+
protected :base_config
|
|
40
|
+
|
|
41
|
+
# @api private
|
|
42
|
+
# @since 2.1.0
|
|
43
|
+
def initialize(*)
|
|
44
|
+
super
|
|
45
|
+
|
|
46
|
+
@base_config = Hanami::View.config.dup
|
|
47
|
+
|
|
48
|
+
configure_defaults
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# @api private
|
|
52
|
+
# @since 2.1.0
|
|
53
|
+
def initialize_copy(source)
|
|
54
|
+
super
|
|
55
|
+
@base_config = source.base_config.dup
|
|
56
|
+
end
|
|
57
|
+
private :initialize_copy
|
|
58
|
+
|
|
59
|
+
# @api private
|
|
60
|
+
# @since 2.1.0
|
|
61
|
+
def finalize!
|
|
62
|
+
return self if frozen?
|
|
63
|
+
|
|
64
|
+
base_config.finalize!
|
|
65
|
+
|
|
66
|
+
super
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
private
|
|
70
|
+
|
|
71
|
+
def configure_defaults
|
|
72
|
+
self.layout = "app"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# An inflector for views is not configurable via `config.views.inflector` on an
|
|
76
|
+
# `Hanami::App`. The app-wide inflector is already configurable
|
|
77
|
+
# there as `config.inflector` and will be used as the default inflector for views.
|
|
78
|
+
#
|
|
79
|
+
# A custom inflector may still be provided in an `Hanami::View` subclass, via
|
|
80
|
+
# `config.inflector=`.
|
|
81
|
+
NON_FORWARDABLE_METHODS = %i[inflector inflector=].freeze
|
|
82
|
+
private_constant :NON_FORWARDABLE_METHODS
|
|
83
|
+
|
|
84
|
+
def method_missing(name, *args, &block)
|
|
85
|
+
return super if NON_FORWARDABLE_METHODS.include?(name)
|
|
86
|
+
|
|
87
|
+
if config.respond_to?(name)
|
|
88
|
+
config.public_send(name, *args, &block)
|
|
89
|
+
elsif base_config.respond_to?(name)
|
|
90
|
+
base_config.public_send(name, *args, &block)
|
|
91
|
+
else
|
|
92
|
+
super
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def respond_to_missing?(name, _include_all = false)
|
|
97
|
+
return false if NON_FORWARDABLE_METHODS.include?(name)
|
|
98
|
+
|
|
99
|
+
config.respond_to?(name) || base_config.respond_to?(name) || super
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|