Class: ActiveRecord::Import::ValuesSetsBytesParser
- Inherits:
-
Object
- Object
- ActiveRecord::Import::ValuesSetsBytesParser
- Defined in:
- lib/activerecord-import/value_sets_parser.rb
Instance Attribute Summary collapse
-
#max_bytes ⇒ Object
readonly
Returns the value of attribute max_bytes.
-
#reserved_bytes ⇒ Object
readonly
Returns the value of attribute reserved_bytes.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(values, options) ⇒ ValuesSetsBytesParser
constructor
A new instance of ValuesSetsBytesParser.
- #parse ⇒ Object
Constructor Details
#initialize(values, options) ⇒ ValuesSetsBytesParser
Returns a new instance of ValuesSetsBytesParser.
9 10 11 12 13 |
# File 'lib/activerecord-import/value_sets_parser.rb', line 9 def initialize(values, ) @values = values @reserved_bytes = [:reserved_bytes] @max_bytes = [:max_bytes] end |
Instance Attribute Details
#max_bytes ⇒ Object (readonly)
Returns the value of attribute max_bytes.
3 4 5 |
# File 'lib/activerecord-import/value_sets_parser.rb', line 3 def max_bytes @max_bytes end |
#reserved_bytes ⇒ Object (readonly)
Returns the value of attribute reserved_bytes.
3 4 5 |
# File 'lib/activerecord-import/value_sets_parser.rb', line 3 def reserved_bytes @reserved_bytes end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
3 4 5 |
# File 'lib/activerecord-import/value_sets_parser.rb', line 3 def values @values end |
Class Method Details
.parse(values, options) ⇒ Object
5 6 7 |
# File 'lib/activerecord-import/value_sets_parser.rb', line 5 def self.parse(values, ) new(values, ).parse end |
Instance Method Details
#parse ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/activerecord-import/value_sets_parser.rb', line 15 def parse value_sets = [] arr, current_arr_values_size, current_size = [], 0, 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 |