class ActiveRecord::Import::ValueSetsBytesParser
Attributes
max_bytes[R]
reserved_bytes[R]
values[R]
Public Class Methods
new(values, options)
click to toggle source
# File lib/activerecord-import/value_sets_parser.rb, line 9 def initialize(values, options) @values = values @reserved_bytes = options[:reserved_bytes] @max_bytes = options[:max_bytes] end
parse(values, options)
click to toggle source
# File lib/activerecord-import/value_sets_parser.rb, line 5 def self.parse(values, options) new(values, options).parse end
Public Instance Methods
parse()
click to toggle source
# File lib/activerecord-import/value_sets_parser.rb, line 15 def parse value_sets = [] arr = [] current_size = 0 values.each_with_index do |val, i| comma_bytes = arr.size bytes_thus_far = reserved_bytes + current_size + val.bytesize + comma_bytes if bytes_thus_far <= max_bytes current_size += val.bytesize arr << val else value_sets << arr arr = [val] current_size = val.bytesize end # if we're on the last iteration push whatever we have in arr to value_sets value_sets << arr if i == (values.size - 1) end [*value_sets] end