Class: IraqUnrest::IraqGovernmentCasualtyFigure

Inherits:
DataSet
  • Object
show all
Defined in:
lib/iraq_unrest/iraq_government_casualty_figure.rb

Constant Summary collapse

ATTRIBUTES =
[ :date, :civilian_killed, :police_killed, :army_killed,
:civilian_wounded, :police_wounded, :army_wounded,
:insurg_killed, :insurg_arrested ]

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DataSet

all, as_json, #attributes=, file_name, generate_csv!, generate_html!, #initialize, to_csv, to_csv!, to_html, to_html!, to_json, to_rickshaw

Methods included from Serializable

#active_model_serializer, #read_attribute_for_serialization, #serialize

Methods included from Validatable

#read_attribute_for_validation, #valid?

Constructor Details

This class inherits a constructor from IraqUnrest::DataSet

Class Method Details

.parse(data) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/iraq_unrest/iraq_government_casualty_figure.rb', line 22

def self.parse(data)
  result = []
  parsed = data.split("\n")
  title = parsed.slice(0).split(",").first.gsub(/\(|\(|\:|\s+/, "").chop.underscore
  comments = parsed.slice!(1..4)

  if title != file_name
    raise Exception, "Could not find a valid title in data source"
  end

  parsed.each do |row|
    fields = row.split(",", -1)

    obj = new(:date => fields[0],
              :civilian_killed => fields[1],
              :police_killed => fields[2],
              :army_killed => fields[3],
              :civilian_wounded => fields[5],
              :police_wounded => fields[6],
              :army_wounded => fields[7],
              :insurg_killed => fields[9],
              :insurg_arrested => fields[10])

    result << obj if obj.valid?
  end

  result
end

.raw_csvObject



18
19
20
# File 'lib/iraq_unrest/iraq_government_casualty_figure.rb', line 18

def self.raw_csv
  GoogleDoc.new.spreadsheet(file_name.to_sym)
end

Instance Method Details

#attributesObject



11
12
13
14
15
16
# File 'lib/iraq_unrest/iraq_government_casualty_figure.rb', line 11

def attributes
  ATTRIBUTES.inject(ActiveSupport::HashWithIndifferentAccess.new) do |result, key|
    result[key] = read_attribute_for_validation(key)
    result
  end
end