Module: ActiveRecord::PGCollation

Defined in:
lib/active_record/pg_collation.rb,
lib/active_record/pg_collation/version.rb,
lib/active_record/pg_collation/command_recorder.rb,
lib/active_record/pg_collation/6.1/schema_dumper.rb,
lib/active_record/pg_collation/schema_statements.rb,
lib/active_record/pg_collation/postgresql_adapter.rb

Defined Under Namespace

Modules: CommandRecorder, PostgreSQLAdapter, SchemaDumper

Constant Summary collapse

KNOWN_VERSIONS =
%w[6.1].map { |v| Gem::Version.new(v) }
VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.enabled_versionObject (readonly)

Returns the value of attribute enabled_version.



9
10
11
# File 'lib/active_record/pg_collation.rb', line 9

def enabled_version
  @enabled_version
end

Class Method Details

.detected_versionObject



28
29
30
# File 'lib/active_record/pg_collation.rb', line 28

def detected_version
  approximate_version(Gem.loaded_specs["activerecord"].version)
end

.install(version) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/active_record/pg_collation.rb', line 11

def install(version)
  @enabled_version = approximate_version(version)

  # Don't immediately fail if we don't yet support the current version.
  # There's at least a chance it could work.
  if !KNOWN_VERSIONS.include?(enabled_version) && enabled_version > KNOWN_VERSIONS.last
    @enabled_version = KNOWN_VERSIONS.last
    warn("[PGCollation] Current ActiveRecord version unsupported! Falling back to: #{enabled_version}")
  end

  initialize!
end

.register(patch, &block) ⇒ Object



24
25
26
# File 'lib/active_record/pg_collation.rb', line 24

def register(patch, &block)
  monkeypatches[patch] = block
end