Module: ActiveAdmin::Dependency

Defined in:
lib/active_admin/dependency.rb

Defined Under Namespace

Modules: Adapter, Requirements Classes: Matcher

Class Method Summary collapse

Class Method Details

.[](name) ⇒ Object


54
55
56
# File 'lib/active_admin/dependency.rb', line 54

def self.[](name)
  Matcher.new name.to_s
end

.method_missing(name, *args) ⇒ Object

Provides a clean interface to check for gem dependencies at runtime.

ActiveAdmin::Dependency.draper

> #<ActiveAdmin::Dependency::Matcher for draper 1.2.1>

ActiveAdmin::Dependency.draper?

> true

ActiveAdmin::Dependency.draper? '>= 1.5.0'

> false

ActiveAdmin::Dependency.draper? '= 1.2.1'

> true

ActiveAdmin::Dependency.draper? '~> 1.2.0'

> true

ActiveAdmin::Dependency.rails? '>= 4.1.0', '<= 4.1.1'

> true

ActiveAdmin::Dependency.rails! '2' -> ActiveAdmin::DependencyError: You provided rails 3.2.18 but we need: 2.

ActiveAdmin::Dependency.devise! -> ActiveAdmin::DependencyError: To use devise you need to specify it in your Gemfile.

All but the pessimistic operator (~>) can also be run using Ruby's comparison syntax.

ActiveAdmin::Dependency.rails >= '3.2.18'

> true

Which is especially useful if you're looking up a gem with dashes in the name.

ActiveAdmin::Dependency < 5

> false


44
45
46
47
48
49
50
51
52
# File 'lib/active_admin/dependency.rb', line 44

def self.method_missing(name, *args)
  if name[-1] == '?'
    Matcher.new(name[0..-2]).match? args
  elsif name[-1] == '!'
    Matcher.new(name[0..-2]).match! args
  else
    Matcher.new name.to_s
  end
end

.rails5?Boolean

Returns:

  • (Boolean)

58
59
60
# File 'lib/active_admin/dependency.rb', line 58

def self.rails5?
  rails >= '5.x'
end