module ActiveRecord::PGEnum
Constants
- KNOWN_VERSIONS
- VERSION
Attributes
enabled_version[R]
Public Class Methods
detected_version()
click to toggle source
# File lib/active_record/pg_enum.rb, line 28 def detected_version approximate_version Gem.loaded_specs["activerecord"].version end
install(version)
click to toggle source
# File lib/active_record/pg_enum.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 "[PGEnum] Current ActiveRecord version unsupported! Falling back to: #{enabled_version}" end initialize! end
register(patch, &block)
click to toggle source
# File lib/active_record/pg_enum.rb, line 24 def register(patch, &block) monkeypatches[patch] = block end
Private Class Methods
approximate_version(version)
click to toggle source
# File lib/active_record/pg_enum.rb, line 47 def approximate_version(version) segments = version.respond_to?(:canonical_segments) ? version.canonical_segments.dup : version.segments segments.pop while segments.any? { |s| String === s } segments.pop while segments.size > 2 segments.push(0) while segments.size < 2 Gem::Version.new segments.join(".") end
initialize!()
click to toggle source
# File lib/active_record/pg_enum.rb, line 38 def initialize! require "active_record/pg_enum/command_recorder" require "active_record/pg_enum/postgresql_adapter" require "active_record/pg_enum/schema_statements" Dir[File.join(__dir__, "pg_enum", enabled_version.to_s, "*.rb")].each { |file| require file } monkeypatches.keys.each { |patch| monkeypatches.delete(patch).call } end
monkeypatches()
click to toggle source
# File lib/active_record/pg_enum.rb, line 34 def monkeypatches @patches ||= {} end