Module: SerializationHelper::Utils

Defined in:
lib/serialization_helper.rb

Class Method Summary collapse

Class Method Details

.boolean_columns(table) ⇒ Object



153
154
155
156
# File 'lib/serialization_helper.rb', line 153

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

.convert_boolean(value) ⇒ Object



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

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

.convert_booleans(records, columns) ⇒ Object



124
125
126
127
128
129
130
131
132
# File 'lib/serialization_helper.rb', line 124

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

.convert_json(value) ⇒ Object



148
149
150
151
# File 'lib/serialization_helper.rb', line 148

def self.convert_json(value)
  return nil if value.nil?
  JSON.parse(value)
end

.convert_jsons(records, columns) ⇒ Object



134
135
136
137
138
139
140
141
142
# File 'lib/serialization_helper.rb', line 134

def self.convert_jsons(records, columns)
  records.map do |record|
    columns.each do |column|
      next if is_json(record[column])
      record[column] = convert_json(record[column])
    end
    record
  end
end

.is_boolean(value) ⇒ Object



163
164
165
# File 'lib/serialization_helper.rb', line 163

def self.is_boolean(value)
  value.kind_of?(TrueClass) or value.kind_of?(FalseClass)
end

.is_json(value) ⇒ Object



167
168
169
# File 'lib/serialization_helper.rb', line 167

def self.is_json(value)
  value.kind_of?(Hash) or value.kind_of?(Array)
end

.json_columns(table) ⇒ Object



158
159
160
161
# File 'lib/serialization_helper.rb', line 158

def self.json_columns(table)
  columns = ActiveRecord::Base.connection.columns(table).select { |c| c.sql_type == 'json' }
  columns.map { |c| c.name }
end

.quote_table(table) ⇒ Object



171
172
173
# File 'lib/serialization_helper.rb', line 171

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

.unhash_records(records, keys) ⇒ Object



118
119
120
121
122
# File 'lib/serialization_helper.rb', line 118

def self.unhash_records(records, keys)
  records.map do |record|
    keys.map { |key| record[key] }
  end
end