lib/evil/client/settings.rb in evil-client-1.0.0 vs lib/evil/client/settings.rb in evil-client-1.1.0
- old
+ new
@@ -1,14 +1,14 @@
class Evil::Client
#
# Container for settings assigned to some operation or scope.
#
class Settings
+ Names.clean(self) # Remove unnecessary methods from the instance
require_relative "settings/validator"
+ extend ::Dry::Initializer
- extend Dry::Initializer
-
class << self
# The schema klass settings belongs to
#
# @return [Class]
#
@@ -32,11 +32,11 @@
# @option opts [#to_sym] :as The name of settings variable
# @option opts [false, :private, :protected] :reader Reader method type
# @return [self]
#
def option(key, type = nil, as: key.to_sym, **opts)
- NameError.check!(as, RESERVED)
+ NameError.check!(as)
super
self
end
# Creates or reloads memoized attribute
@@ -44,11 +44,11 @@
# @param [#to_sym] key The name of the attribute
# @param [Proc] block The body of new attribute
# @return [self]
#
def let(key, &block)
- NameError.check!(key, RESERVED)
+ NameError.check!(key)
define_method(key) do
instance_variable_get(:"@#{key}") ||
instance_variable_set(:"@#{key}", instance_exec(&block))
end
self
@@ -95,21 +95,17 @@
opts = Hash(opts).each_with_object({}) { |(k, v), o| o[k.to_sym] = v }
super logger, opts
rescue => error
raise ValidationError, error.message
end
-
- # @private
- RESERVED = \
- %i[options datetime scope logger basic_auth key_auth token_auth].freeze
end
# The processed hash of options contained by the instance of settings
#
# @return [Hash<Symbol, Object>]
#
def options
- @__options__
+ Options.new @__options__
end
# @!attribute logger
# @return [Logger, nil] The logger attached to current settings
attr_accessor :logger