Sha256: ea22d2847b55f8ceb9eda291ce06640b8418c0071fe33a11e1669ca9bcff1885
Contents?: true
Size: 722 Bytes
Versions: 1
Compression:
Stored size: 722 Bytes
Contents
class Tram::Policy # Describes a validator class Validator attr_reader :scope, :name, :block, :stop_on_failure def ==(other) other.is_a?(self.class) && name && other.name == name end def check(object) object.__send__ :instance_variable_set, :@__scope__, scope name ? object.__send__(name) : object.instance_exec(&block) rescue object.__send__ :instance_variable_set, :@__scope__, nil end private def initialize(scope, name, block, stop_on_failure: false) @scope = scope @name = name&.to_sym @block = block raise "Provide either method name or a block" unless !name ^ !block @stop_on_failure = stop_on_failure end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tram-policy-0.2.0 | lib/tram/policy/validator.rb |