Add deprecation warnings when type spec is missing

This commit is contained in:
Piotr Solnica 2016-06-19 19:00:40 +02:00
parent d6bb0dec86
commit 83d61bacef
7 changed files with 44 additions and 4 deletions

View File

@ -0,0 +1,23 @@
require 'logger'
module Dry
module Validation
module Deprecations
extend Dry::Configurable
setting :logger, Logger.new($stdout)
def self.format(msg, caller)
"#{msg} [#{caller[1].split(':')[0..1].join(' line ')}]"
end
def logger
@logger ||= Deprecations.config.logger
end
def warn(msg)
logger.warn(Deprecations.format(msg, ::Kernel.caller))
end
end
end
end

View File

@ -1,6 +1,10 @@
require 'dry/validation/deprecations'
module Dry
module Validation
class ErrorCompiler::Input < ErrorCompiler
extend Deprecations
attr_reader :name, :input, :rule, :val_type
def initialize(messages, options)
@ -67,12 +71,12 @@ module Dry
end
def options_for_inclusion?(args)
::Kernel.warn 'inclusion is deprecated - use included_in instead.'
warn 'inclusion is deprecated - use included_in instead.'
options_for_included_in?(args)
end
def options_for_exclusion?(args)
::Kernel.warn 'exclusion is deprecated - use excluded_from instead.'
warn 'exclusion is deprecated - use excluded_from instead.'
options_for_excluded_from?(args)
end

View File

@ -1,9 +1,12 @@
require 'dry/validation/schema/rule'
require 'dry/validation/deprecations'
module Dry
module Validation
class Schema
class DSL < BasicObject
include ::Dry::Validation::Deprecations
attr_reader :name, :registry, :rules, :checks, :parent, :options
def self.[](name, options = {})

View File

@ -1,7 +1,11 @@
require 'dry/validation/deprecations'
module Dry
module Validation
class Schema
class Rule < BasicObject
extend ::Dry::Validation::Deprecations
INVALID_PREDICATES = {
value: [],
maybe: [:empty?, :none?],
@ -48,7 +52,7 @@ module Dry
end
def required(*predicates)
::Kernel.warn 'required is deprecated - use filled instead.'
warn 'required is deprecated - use filled instead.'
filled(*predicates)
end

View File

@ -15,7 +15,7 @@ module Dry
end
def key(name, &block)
::Kernel.warn 'key is deprecated - use required instead.'
warn 'key is deprecated - use required instead.'
required(name, &block)
end
@ -25,6 +25,8 @@ module Dry
if type_spec
type_map[name] = type_spec
else
warn "Missing type spec for #{name.inspect} #{type}"
end
rule

0
log/.gitkeep Normal file
View File

View File

@ -23,6 +23,10 @@ module Types
include Dry::Types.module
end
Dry::Validation::Deprecations.configure do |config|
config.logger = Logger.new(SPEC_ROOT.join('../log/deprecations.log'))
end
RSpec.configure do |config|
config.disable_monkey_patching!