Sha256: 2d96f4d6922150ae54b94c986a789e00dec124aaa63359b74677282a519deb1a

Contents?: true

Size: 859 Bytes

Versions: 3

Compression:

Stored size: 859 Bytes

Contents

module ActiveRecord
  module SaferMigrations
    module PostgreSQLAdapter
      SET_SETTING_SQL = <<-SQL
      UPDATE
        pg_settings
      SET
        setting = :value
      WHERE
        name = :setting_name
      SQL

      GET_SETTING_SQL = <<-SQL
      SELECT
        setting
      FROM
        pg_settings
      WHERE
        name = :setting_name
      SQL

      def set_setting(setting_name, value)
        sql = fill_sql_values(SET_SETTING_SQL, value: value, setting_name: setting_name)
        execute(sql)
      end

      def get_setting(setting_name)
        sql = fill_sql_values(GET_SETTING_SQL, setting_name: setting_name)
        result = execute(sql)
        result.first["setting"]
      end

      def fill_sql_values(sql, values)
        ActiveRecord::Base.send(:replace_named_bind_variables, sql, values)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activerecord-safer_migrations-2.0.0 lib/active_record/safer_migrations/postgresql_adapter.rb
activerecord-safer_migrations-1.0.0 lib/active_record/safer_migrations/postgresql_adapter.rb
activerecord-safer_migrations-0.1.0 lib/active_record/safer_migrations/postgresql_adapter.rb