Module: ActiveRecord::SaveMany::Functions

Defined in:
lib/activerecord_save_many/save_many.rb

Class Method Summary collapse

Class Method Details

.add_columns(klass, values, options) ⇒ Object



44
45
46
47
# File 'lib/activerecord_save_many/save_many.rb', line 44

def add_columns(klass, values, options)
  columns = options[:columns] || klass.column_names
  [columns, values]
end

.check_options(permitted, options) ⇒ Object



29
30
31
32
33
# File 'lib/activerecord_save_many/save_many.rb', line 29

def check_options(permitted, options)
  unknown_keys = options.keys.to_set - permitted
  raise "unknown options: #{unknown_keys.to_a.join(", ")}" if !unknown_keys.empty?
  raise "can't :replace and :ignore||:update||:async" if options[:replace] && (options[:ignore] || options[:update] || options[:updates] || options[:async])
end

.disable_async?Boolean

Returns:

  • (Boolean)


23
24
25
26
# File 'lib/activerecord_save_many/save_many.rb', line 23

def disable_async?
  # for predictable tests we disable delayed insert during testing
  rails_env()=="test"
end

.rails_envObject



18
19
20
# File 'lib/activerecord_save_many/save_many.rb', line 18

def rails_env
  RAILS_ENV if defined? RAILS_ENV
end

.slice_array(max_length, arr) ⇒ Object

slice an array into smaller arrays with maximum size max_size



37
38
39
40
41
# File 'lib/activerecord_save_many/save_many.rb', line 37

def slice_array(max_length, arr)
  slices = []
  (0..arr.length-1).step( max_length ){ |i| slices << arr.slice(i,max_length) }
  slices
end