class CSVStepImporter::Base

Public Class Methods

set(name, value_or_proc) click to toggle source

defines a method with the specified proc or a proc returning the value of the second attribute

# File lib/csv_step_importer/base.rb, line 16
def self.set(name, value_or_proc)
  procedure = value_or_proc.is_a?(Proc) ? value_or_proc : -> { value_or_proc }
  define_method name, procedure
end

Public Instance Methods

ancestors() click to toggle source
# File lib/csv_step_importer/base.rb, line 32
def ancestors
  @ancestors ||= [parent] + (parent ? parent.ancestors : [])
end
assign_attributes(attributes) click to toggle source
# File lib/csv_step_importer/base.rb, line 26
def assign_attributes(attributes)
  attributes.each do |key, value|
    send("#{key}=", value)
  end
end
create_or_update() click to toggle source
# File lib/csv_step_importer/base.rb, line 40
def create_or_update
  raise "please extend and implement"
end
inspect() click to toggle source
# File lib/csv_step_importer/base.rb, line 70
def inspect
  to_s
end
persisted?() click to toggle source
# File lib/csv_step_importer/base.rb, line 36
def persisted?
  false
end
save() click to toggle source
# File lib/csv_step_importer/base.rb, line 44
def save
  run_callbacks :save do
    return false unless valid?

    status = if use_transaction
      !!::ActiveRecord::Base.transaction do
        raise ::ActiveRecord::Rollback unless create_or_update
        true
      end
    else
      create_or_update
    end

    status
  end
end
save!() click to toggle source
# File lib/csv_step_importer/base.rb, line 61
def save!
  save || raise(CSVFileImportError.new(errors&.messages))
end
to_s() click to toggle source
# File lib/csv_step_importer/base.rb, line 74
def to_s
  vars = self.instance_variables.map do |key|
    next if key == :@children
    next if key == :@parent
    next if key == :@env
    next if key == :@errors
    next if key == :@cache
    "#{key}=#{instance_variable_get(key).inspect}"
  end.compact.join(", ")
  "<#{self.class}: #{vars}>"
end
update(attributes) click to toggle source
# File lib/csv_step_importer/base.rb, line 65
def update(attributes)
  assign_attributes(attributes)
  save
end