Class: Ticket::Replicator::FileTransformer

Inherits:
Object
  • Object
show all
Defined in:
lib/ticket/replicator/file_transformer.rb,
lib/ticket/replicator/file_transformer/for_csv.rb,
lib/ticket/replicator/file_transformer/for_xlsx.rb

Direct Known Subclasses

ForCSV, ForXLSX

Defined Under Namespace

Classes: ForCSV, ForXLSX, TransformError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(extracted_path, transformed_path) ⇒ FileTransformer

Returns a new instance of FileTransformer.



31
32
33
34
# File 'lib/ticket/replicator/file_transformer.rb', line 31

def initialize(extracted_path, transformed_path)
  @extracted_path = extracted_path
  @transformed_path = transformed_path
end

Instance Attribute Details

#extracted_pathObject (readonly)

Returns the value of attribute extracted_path.



29
30
31
# File 'lib/ticket/replicator/file_transformer.rb', line 29

def extracted_path
  @extracted_path
end

#transformed_pathObject (readonly)

Returns the value of attribute transformed_path.



29
30
31
# File 'lib/ticket/replicator/file_transformer.rb', line 29

def transformed_path
  @transformed_path
end

Class Method Details

.file_extension_without_dot(extracted_path) ⇒ Object



23
24
25
# File 'lib/ticket/replicator/file_transformer.rb', line 23

def self.file_extension_without_dot(extracted_path)
  File.extname(extracted_path).gsub(".", "")
end

.run_class(extracted_path) ⇒ Object



19
20
21
# File 'lib/ticket/replicator/file_transformer.rb', line 19

def self.run_class(extracted_path)
  "#{name}::For#{file_extension_without_dot(extracted_path).upcase}".constantize
end

.run_on(extracted_path, transformed_path) ⇒ Object



15
16
17
# File 'lib/ticket/replicator/file_transformer.rb', line 15

def self.run_on(extracted_path, transformed_path)
  run_class(extracted_path).send(:new, extracted_path, transformed_path).run
end

Instance Method Details

#runObject



36
37
38
39
40
41
# File 'lib/ticket/replicator/file_transformer.rb', line 36

def run
  CSV.open(transformed_path, "wb", force_quotes: true) do |csv|
    csv << transformed_headers
    transformed_rows.each { |row| csv << row }
  end
end