Class: Passlib::Internal::Dependency
- Inherits:
-
Module
- Object
- Module
- Passlib::Internal::Dependency
- Defined in:
- lib/passlib/internal/dependency.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(dependency) ⇒ Dependency
constructor
A new instance of Dependency.
- #inspect ⇒ Object
Constructor Details
#initialize(dependency) ⇒ Dependency
Returns a new instance of Dependency.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/passlib/internal/dependency.rb', line 15 def initialize(dependency, &) super() @dependency = dependency.to_s require @dependency define_method("#{dependency}_available?") { true } rescue LoadError begin # Reraise so Exception#cause is set raise Passlib::MissingDependency, "missing dependency: #{dependency}" rescue Passlib::MissingDependency => exception define_method("#{dependency}_available?") { false } define_method("available?") { false } define_method(:create) { |*| raise exception } define_method(:load) { |*| raise exception } end ensure private "#{dependency}_available?" super(&) if block_given? end |
Class Method Details
.[] ⇒ Object
7 |
# File 'lib/passlib/internal/dependency.rb', line 7 def self.[](...) = new(...) |
.new(dependency, *requirements) ⇒ Object
9 10 11 12 13 |
# File 'lib/passlib/internal/dependency.rb', line 9 def self.new(dependency, *requirements, &) KNOWN[dependency] ||= [] KNOWN[dependency].concat(requirements) super(dependency, &) end |
Instance Method Details
#inspect ⇒ Object
35 36 37 |
# File 'lib/passlib/internal/dependency.rb', line 35 def inspect "#{self.class.inspect}[#{@dependency.inspect}]" end |