Module: Original

Extended by:
ActiveSupport::Concern
Included in:
Importo::BaseImporter
Defined in:
app/importers/concerns/original.rb

Instance Method Summary collapse

Instance Method Details

#col_for(translated_name) ⇒ Object



45
46
47
48
49
# File 'app/importers/concerns/original.rb', line 45

def col_for(translated_name)
  col = columns.detect { |k, v| v.name == translated_name || k == translated_name }
  col ||= columns.detect { |k, v| v.allowed_names.include?(translated_name) }
  col
end

#invalid_header_namesObject



41
42
43
# File 'app/importers/concerns/original.rb', line 41

def invalid_header_names
  invalid_header_names_for_row(header_row)
end

#originalObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/importers/concerns/original.rb', line 8

def original
  return @original if @original && !@original.is_a?(Hash)

  if import.respond_to?(:attachment_changes) && import.attachment_changes["original"]
    @original ||= import.attachment_changes["original"]&.attachable

    if @original.is_a?(Hash)
      tempfile = Tempfile.new(["ActiveStorage", import.original.filename.extension_with_delimiter])
      tempfile.binmode
      tempfile.write(@original[:io].read)
      @original[:io].rewind
      tempfile.rewind
      @original = tempfile
    end
  else
    return unless import&.original&.attachment

    @original = Tempfile.new(["ActiveStorage", import.original.filename.extension_with_delimiter])
    @original.binmode
    import.original.download { |block| @original.write(block) }
    @original.flush
    @original.rewind
  end

  @original
end

#structure_valid?Boolean

Returns:

  • (Boolean)


35
36
37
38
39
# File 'app/importers/concerns/original.rb', line 35

def structure_valid?
  return true if !includes_header? || ignore_header?

  invalid_header_names.count.zero?
end