Module: ActiveRecordDumper::SerializationHelper::Utils

Defined in:
lib/activerecord_dumper/serialization_helper.rb

Class Method Summary collapse

Class Method Details

.boolean_columns(table) ⇒ Object



130
131
132
133
# File 'lib/activerecord_dumper/serialization_helper.rb', line 130

def self.boolean_columns(table)
  columns = ActiveRecord::Base.connection.columns(table).reject { |c| silence_warnings { c.type != :boolean } }
  columns.map(&:name)
end

.convert_boolean(value) ⇒ Object



126
127
128
# File 'lib/activerecord_dumper/serialization_helper.rb', line 126

def self.convert_boolean(value)
  ['t', '1', true, 1].include?(value)
end

.convert_booleans(records, columns) ⇒ Object



115
116
117
118
119
120
121
122
123
124
# File 'lib/activerecord_dumper/serialization_helper.rb', line 115

def self.convert_booleans(records, columns)
  records.each do |record|
    columns.each do |column|
      next if is_boolean(record[column])

      record[column] = convert_boolean(record[column])
    end
  end
  records
end

.is_boolean(value) ⇒ Object



135
136
137
# File 'lib/activerecord_dumper/serialization_helper.rb', line 135

def self.is_boolean(value)
  value.is_a?(TrueClass) || value.is_a?(FalseClass)
end

.quote_column(column) ⇒ Object



143
144
145
# File 'lib/activerecord_dumper/serialization_helper.rb', line 143

def self.quote_column(column)
  ActiveRecord::Base.connection.quote_column_name(column)
end

.quote_table(table) ⇒ Object



139
140
141
# File 'lib/activerecord_dumper/serialization_helper.rb', line 139

def self.quote_table(table)
  ActiveRecord::Base.connection.quote_table_name(table)
end

.unhash(hash, keys) ⇒ Object



103
104
105
# File 'lib/activerecord_dumper/serialization_helper.rb', line 103

def self.unhash(hash, keys)
  keys.map { |key| hash[key] }
end

.unhash_records(records, keys) ⇒ Object



107
108
109
110
111
112
113
# File 'lib/activerecord_dumper/serialization_helper.rb', line 107

def self.unhash_records(records, keys)
  records.each_with_index do |record, index|
    records[index] = unhash(record, keys)
  end

  records
end