class Datasets::SeabornData
Constants
- URL_FORMAT
Public Class Methods
new(name)
click to toggle source
Calls superclass method
Datasets::Dataset::new
# File lib/datasets/seaborn-data.rb, line 5 def initialize(name) super() @metadata.id = "seaborn-data-#{name}" @metadata.name = "SeabornData: #{name}" @metadata.url = URL_FORMAT % {name: name} @data_path = cache_dir_path + (name + ".csv") @name = name end
Public Instance Methods
each() { |record| ... }
click to toggle source
# File lib/datasets/seaborn-data.rb, line 15 def each(&block) return to_enum(__method__) unless block_given? download(@data_path, @metadata.url) unless @data_path.exist? CSV.open(@data_path, headers: :first_row, converters: :all) do |csv| csv.each do |row| record = prepare_record(row) yield record end end end
Private Instance Methods
prepare_record(csv_row)
click to toggle source
# File lib/datasets/seaborn-data.rb, line 28 def prepare_record(csv_row) record = csv_row.to_h record.transform_keys!(&:to_sym) # Perform the same preprocessing as seaborn's load_dataset function preprocessor = :"preprocess_#{@name}_record" __send__(preprocessor, record) if respond_to?(preprocessor, true) record end
preprocess_flights_record(record)
click to toggle source
The same preprocessing as seaborn.load_dataset
# File lib/datasets/seaborn-data.rb, line 40 def preprocess_flights_record(record) record[:month] &&= record[:month][0,3] end
preprocess_penguins_record(record)
click to toggle source
The same preprocessing as seaborn.load_dataset
# File lib/datasets/seaborn-data.rb, line 45 def preprocess_penguins_record(record) record[:sex] &&= record[:sex].capitalize end