Sha256: 938c7062e2fdea7c2f52e32382edf5dffd21c2e29bccd68adb8bed8b2f021605
Contents?: true
Size: 702 Bytes
Versions: 3
Compression:
Stored size: 702 Bytes
Contents
module Raven INTERFACES = {} # rubocop:disable Style/MutableConstant class Interface def initialize(attributes = nil) attributes.each do |attr, value| public_send "#{attr}=", value end if attributes yield self if block_given? end def self.name(value = nil) @interface_name ||= value end def to_hash Hash[instance_variables.map { |name| [name[1..-1].to_sym, instance_variable_get(name)] }] end end def self.register_interface(mapping) mapping.each_pair do |key, klass| INTERFACES[key.to_s] = klass INTERFACES[klass.name] = klass end end def self.find_interface(name) INTERFACES[name.to_s] end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sentry-raven-2.0.2 | lib/raven/interfaces.rb |
sentry-raven-2.0.1 | lib/raven/interfaces.rb |
sentry-raven-2.0.0 | lib/raven/interfaces.rb |