class ActiveAdmin::Dependency::Matcher
def <=>(other)
def <=>(other) if @spec @spec.version <=> Gem::Version.create(other) else # you'd otherwise get an unhelpful error message: # ArgumentError: comparison of ActiveAdmin::Dependency::Matcher with 2 failed raise DependencyError, "To use #{@name} you need to specify it in your Gemfile." end end
def initialize(name)
def initialize(name) @name, @spec = name, Gem.loaded_specs[name] end
def inspect
def inspect info = @spec ? "#{@spec.name} #{@spec.version}" : '(missing)' "<ActiveAdmin::Dependency::Matcher for #{info}>" end
def match!(*reqs)
def match!(*reqs) unless @spec raise DependencyError, "To use #{@name} you need to specify it in your Gemfile." end unless match? reqs raise DependencyError, "You provided #{@spec.name} #{@spec.version} but we need: #{reqs.join ', '}." end end
def match?(*reqs)
def match?(*reqs) !!@spec && Gem::Requirement.create(reqs).satisfied_by?(@spec.version) end