Class: Departure::RailsAdapter

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/departure/rails_adapter.rb

Defined Under Namespace

Classes: BaseAdapter, MustImplementError, UnsupportedRailsVersionError, V7_2_Adapter, V8_0_Adapter, V8_1_Adapter

Class Method Summary collapse

Class Method Details

.current_versionObject



18
19
20
# File 'lib/departure/rails_adapter.rb', line 18

def current_version
  ActiveRecord::VERSION
end

.for(ar_version) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/departure/rails_adapter.rb', line 26

def for(ar_version)
  if ar_version::MAJOR == 8 && ar_version::MINOR.positive?
    V8_1_Adapter
  elsif ar_version::MAJOR == 8
    V8_0_Adapter
  elsif ar_version::MAJOR >= 7 && ar_version::MINOR >= 2
    V7_2_Adapter
  else
    raise UnsupportedRailsVersionError, "Unsupported Rails version: #{ar_version}"
  end
end

.for_currentObject



22
23
24
# File 'lib/departure/rails_adapter.rb', line 22

def for_current
  self.for(current_version)
end

.version_matches?(version_string, compatibility_string = current_version::STRING) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
# File 'lib/departure/rails_adapter.rb', line 13

def version_matches?(version_string, compatibility_string = current_version::STRING)
  requirement = Gem::Requirement.new(compatibility_string)
  requirement.satisfied_by?(Gem::Version.new(version_string))
end