Module: Typeguard

Extended by:
Dry::Configurable
Defined in:
lib/typeguard/types.rb,
lib/typeguard/metrics.rb,
lib/typeguard/version.rb,
lib/typeguard/wrapper.rb,
lib/typeguard/resolver.rb,
lib/typeguard/validator.rb,
lib/typeguard/configuration.rb,
lib/typeguard/type_model/builder.rb,
lib/typeguard/type_model/definitions.rb,
lib/typeguard/type_model/mapper/rbs_mapper.rb,
lib/typeguard/type_model/mapper/yard_mapper.rb,
lib/typeguard/type_model/builder/rbs_builder.rb,
lib/typeguard/type_model/builder/yard_builder.rb

Defined Under Namespace

Modules: Metrics, Resolution, TypeModel, Validation

Constant Summary collapse

VERSION =
'1.0.1'
SUPPORTED_SOURCES =
i[yard rbs].freeze

Class Method Summary collapse

Class Method Details

.process!Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/typeguard/configuration.rb', line 43

def self.process!
  unless config.enabled
    puts 'WARNING: typeguard disabled'
    return
  end

  Typeguard::Metrics.config(config.validation)
  Typeguard::TypeModel::Builder.send(config.source)
  builder = TypeModel::Builder::IMPLEMENTATION.new(config.target, config.reparse)
  definitions = builder.build
  Typeguard::Resolution::Resolver.new(definitions, config.resolution).resolve!
  Typeguard::Validation::Wrapper.new(definitions, config.wrapping).wrap!
  at_exit { Typeguard::Metrics.flush } if config.at_exit_report
end

.setting_bool(target = self, name, default: false) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/typeguard/configuration.rb', line 10

def self.setting_bool(target = self, name, default: false)
  target.setting name, default: default, reader: true, constructor: proc { |value|
    raise "Config '#{name}' must be true or false" unless value.is_a?(TrueClass) || value.is_a?(FalseClass)

    value
  }
end