Module: SerializationHelper::Utils
- Defined in:
- lib/serialization_helper.rb
Class Method Summary collapse
- .boolean_columns(table) ⇒ Object
- .convert_boolean(value) ⇒ Object
- .convert_booleans(records, columns) ⇒ Object
- .convert_json(value) ⇒ Object
- .convert_jsons(records, columns) ⇒ Object
- .is_boolean(value) ⇒ Object
- .is_json(value) ⇒ Object
- .json_columns(table) ⇒ Object
- .quote_table(table) ⇒ Object
- .unhash_records(records, keys) ⇒ Object
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 |