Class: DataClassifier
- Inherits:
-
Object
- Object
- DataClassifier
- Defined in:
- lib/analyzer.rb
Overview
Creates a Mongo Class mapping csv file
d=DataClassifier.new “/Users/carlobifulco/Dropbox/code/next_gen/hotspot2.csv” d.print_class
Instance Attribute Summary collapse
-
#file_name ⇒ Object
Returns the value of attribute file_name.
-
#fs_line ⇒ Object
Returns the value of attribute fs_line.
-
#headers ⇒ Object
Returns the value of attribute headers.
-
#keys_types ⇒ Object
Returns the value of attribute keys_types.
-
#template ⇒ Object
Returns the value of attribute template.
Instance Method Summary collapse
- #cheap_headers(file_path) ⇒ Object
-
#initialize(file_name = "test.csv") ⇒ DataClassifier
constructor
A new instance of DataClassifier.
- #mongo_types ⇒ Object
-
#print_class ⇒ Object
prints the class.
Constructor Details
#initialize(file_name = "test.csv") ⇒ DataClassifier
Returns a new instance of DataClassifier.
396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 |
# File 'lib/analyzer.rb', line 396 def initialize file_name="test.csv" @header_zip=self.cheap_headers file_name @file_name=file_name @class_name=make_class_name file_name #self.instance_variable_set "@#{@class_name}",make_mongo_class(@class_name) @template=""" class #{@class_name} include MongoMapper::Document include DataUtilities safe timestamps! """ end |
Instance Attribute Details
#file_name ⇒ Object
Returns the value of attribute file_name.
395 396 397 |
# File 'lib/analyzer.rb', line 395 def file_name @file_name end |
#fs_line ⇒ Object
Returns the value of attribute fs_line.
395 396 397 |
# File 'lib/analyzer.rb', line 395 def fs_line @fs_line end |
#headers ⇒ Object
Returns the value of attribute headers.
395 396 397 |
# File 'lib/analyzer.rb', line 395 def headers @headers end |
#keys_types ⇒ Object
Returns the value of attribute keys_types.
395 396 397 |
# File 'lib/analyzer.rb', line 395 def keys_types @keys_types end |
#template ⇒ Object
Returns the value of attribute template.
395 396 397 |
# File 'lib/analyzer.rb', line 395 def template @template end |
Instance Method Details
#cheap_headers(file_path) ⇒ Object
415 416 417 418 419 420 421 422 423 424 425 426 427 |
# File 'lib/analyzer.rb', line 415 def cheap_headers file_path index=0 container=[] CSV.foreach(file_path) do |row| container<<row #puts row index+=1 if index>2 then break end end container[0]=container[0].map{|x| x.gsub(".","_").downcase} zipped=container[0].zip container[1] zipped.select {|x| x[0]!="" and x[0]!=nil} end |
#mongo_types ⇒ Object
430 431 432 433 434 435 |
# File 'lib/analyzer.rb', line 430 def mongo_types @header_zip.each_with_object({}) do |hz,container| key=hz[0].gsub(" ","_") container[hz[0].to_sym]=StringToMongo.mongo_type hz[1] end end |
#print_class ⇒ Object
prints the class
438 439 440 441 442 443 444 |
# File 'lib/analyzer.rb', line 438 def print_class puts template self.mongo_types.sort_by{|k,v| k}.each do |r| puts " key :#{r[0]}, #{r[1]} " end puts "end" end |