Class: Tachyon

Inherits:
Object
  • Object
show all
Defined in:
lib/tachyon.rb,
lib/tachyon/version.rb

Constant Summary collapse

VERSION =
"0.1.4"

Class Method Summary collapse

Class Method Details

.insert(klass, data) ⇒ Object

Raises:

  • (ArgumentError)


4
5
6
7
8
9
10
11
12
13
# File 'lib/tachyon.rb', line 4

def self.insert(klass, data)
  raise ArgumentError, "data must be a hash or array" unless data.is_a?(Array) || data.is_a?(Hash)
  raise ArgumentError, "klass must inherit from ActiveRecord::Base" unless klass < ActiveRecord::Base

  if data.is_a?(Array)
    self.insert_records(klass, data)
  elsif data.is_a?(Hash)
    self.insert_record(klass, data)
  end
end

.insert_record(klass, data) ⇒ Object



15
16
17
18
19
20
# File 'lib/tachyon.rb', line 15

def self.insert_record(klass, data)
  begin
      klass.new(data).save(validate: false)
  rescue ActiveRecord::RecordNotUnique
  end
end

.insert_records(klass, data) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/tachyon.rb', line 22

def self.insert_records(klass, data)
  klass.connection.transaction do
    data.each do |record|
      self.insert_record(klass, record)
    end
  end
end