Class: Scaffolding::Parser::Raw
- Inherits:
-
Base
- Object
- Base
- Scaffolding::Parser::Raw
show all
- Defined in:
- lib/scaffolding/parser/raw.rb
Instance Method Summary
collapse
Methods inherited from Base
#build_string, #clean_source_name, #col_seperator, #data_types, #errors, #file, #import_data, #initialize, #predict_row, #results, #save_row, #scaffold_rank, #source_name, #utf8_encode, #valid_data?, #web
Instance Method Details
#bad_data ⇒ Object
20
21
22
|
# File 'lib/scaffolding/parser/raw.rb', line 20
def bad_data
@data.delete_if {|row| row.split(@col_seperator).count != @column_count }
end
|
#column_count ⇒ Object
14
15
16
17
18
|
# File 'lib/scaffolding/parser/raw.rb', line 14
def column_count
row_counts = []
@data.map{ |row| row_counts << row.split(@col_seperator).count }
row_counts.uniq.max_by{ |i| row_counts.count(i) }
end
|
24
25
26
27
28
|
# File 'lib/scaffolding/parser/raw.rb', line 24
def
first_row = @data.map.first.split(@col_seperator)
@headers = first_row.map{ || .strip.downcase.gsub(/(\W|\d)/, "") }
@data.shift
end
|
#groom_data ⇒ Object
5
6
7
8
9
10
11
12
|
# File 'lib/scaffolding/parser/raw.rb', line 5
def groom_data
@data = @data.split("\n")
@column_count = column_count
bad_data
setup_columns
hashed_data
end
|
#hashed_data ⇒ Object
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/scaffolding/parser/raw.rb', line 34
def hashed_data
@data = @data.map do |row|
fields = row.split(@col_seperator)
hash = {}
@headers.each_with_index do |, index|
hash[] = fields[index].to_s.strip
end
hash
end
end
|
#process_data(process_row) ⇒ Object
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/scaffolding/parser/raw.rb', line 45
def process_data(process_row)
@data.each do |row|
@row_number += 1
begin
self.send(process_row, row)
rescue => e
@errors << "Unable to process row #{@row_number} Error: #{e}\n"
end
end
end
|
#setup_columns ⇒ Object
30
31
32
|
# File 'lib/scaffolding/parser/raw.rb', line 30
def setup_columns
@headers.each{ |column| @scaffolding[column.to_sym] = data_types }
end
|