Sha256: 54b1f439ac649b744c0a3fce8de40665f1531bb35699655b3e96fa90f51f2baf

Contents?: true

Size: 1.53 KB

Versions: 24

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

module Motor
  module ActiveRecordUtils
    module_function

    def reset_id_sequence!(model)
      case ActiveRecord::Base.connection.class.name
      when 'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter'
        ActiveRecord::Base.connection.reset_pk_sequence!(model.table_name)
      else
        ActiveRecord::Base.connection.reset_sequence!(model.table_name, 'id')
      end
    end

    def generate_csv_for_relation(relation, reset_limit: false)
      relation = relation.limit(nil).offset(nil) if reset_limit

      result = load_query_for_csv(relation)

      CSV.generate do |csv|
        csv << result.columns

        result.rows.each { |row| csv << row }
      end
    end

    def load_query_for_csv(relation)
      model_name = relation.klass.model_name.human(count: :many, default: relation.klass.name.titleize.pluralize)

      query = Motor::Query.find_by(name: "Export #{model_name}")

      relation.klass.connection.exec_query(query&.sql_body || relation.to_sql)
    end
  end
end

require_relative './active_record_utils/types'
require_relative './active_record_utils/fetch_methods'
require_relative './active_record_utils/defined_scopes_extension'
require_relative './active_record_utils/active_storage_links_extension'
require_relative './active_record_utils/active_storage_blob_patch'
require_relative './active_record_utils/active_record_filter_patch'
require_relative './active_record_utils/active_record_connection_column_patch'
require_relative './active_record_utils/action_text_attribute_patch'

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
motor-admin-0.3.4 lib/motor/active_record_utils.rb
motor-admin-0.3.3 lib/motor/active_record_utils.rb
motor-admin-0.3.2 lib/motor/active_record_utils.rb
motor-admin-0.3.1 lib/motor/active_record_utils.rb
motor-admin-0.3.0 lib/motor/active_record_utils.rb
motor-admin-0.2.89 lib/motor/active_record_utils.rb
motor-admin-0.2.88 lib/motor/active_record_utils.rb
motor-admin-0.2.87 lib/motor/active_record_utils.rb
motor-admin-0.2.86 lib/motor/active_record_utils.rb
motor-admin-0.2.85 lib/motor/active_record_utils.rb
motor-admin-0.2.84 lib/motor/active_record_utils.rb
motor-admin-0.2.83 lib/motor/active_record_utils.rb
motor-admin-0.2.82 lib/motor/active_record_utils.rb
motor-admin-0.2.81 lib/motor/active_record_utils.rb
motor-admin-0.2.80 lib/motor/active_record_utils.rb
motor-admin-0.2.79 lib/motor/active_record_utils.rb
motor-admin-0.2.78 lib/motor/active_record_utils.rb
motor-admin-0.2.77 lib/motor/active_record_utils.rb
motor-admin-0.2.76 lib/motor/active_record_utils.rb
motor-admin-0.2.75 lib/motor/active_record_utils.rb