Class: Jetel::Modules::Sfpd

Inherits:
Module
  • Object
show all
Defined in:
lib/jetel/modules/sfpd/sfpd.rb

Instance Attribute Summary

Attributes inherited from Module

#downloader

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Module

#download_dir, download_dir, #download_source, downloaded_file, #downloaded_file, extract_dir, #extract_dir, extracted_file, #extracted_file, #initialize, #load, #sources, target_dir, #target_dir, #transform_dir, transform_dir, transformed_file, #transformed_file, #unzip

Constructor Details

This class inherits a constructor from Jetel::Modules::Module

Class Method Details

.sourcesObject



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/jetel/modules/sfpd/sfpd.rb', line 32

def sources
  [
    {
      name: 'sfpd',
      filename_downloaded: 'SFPD_Incidents_-_from_1_January_2003.csv',
      filename_extracted: 'SFPD_Incidents_-_from_1_January_2003.csv',
      filename_transformed: 'SFPD_Incidents_-_from_1_January_2003.csv',
      url: 'https://data.sfgov.org/api/views/tmnf-yvry/rows.csv'
    }
  ]
end

Instance Method Details

#download(global_options, options, args) ⇒ Object



45
46
47
48
49
# File 'lib/jetel/modules/sfpd/sfpd.rb', line 45

def download(global_options, options, args)
  self.class.sources.pmap do |source|
    download_source(source, global_options.merge(options))
  end
end

#extract(global_options, options, args) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/jetel/modules/sfpd/sfpd.rb', line 51

def extract(global_options, options, args)
  self.class.sources.pmap do |source|
    downloaded_file = downloaded_file(source, global_options.merge(options))
    dest_dir = extract_dir(source, global_options.merge(options))

    puts "Extracting #{downloaded_file}"

    FileUtils.mkdir_p(dest_dir)
    FileUtils.cp(downloaded_file, dest_dir)
  end
end

#transform(global_options, options, args) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/jetel/modules/sfpd/sfpd.rb', line 63

def transform(global_options, options, args)
  self.class.sources.pmap do |source|
    extracted_file = extracted_file(source, global_options.merge(options))
    dest_dir = transform_dir(source, global_options.merge(options))

    puts "Transforming #{extracted_file}"

    FileUtils.mkdir_p(dest_dir)
    FileUtils.cp(extracted_file, dest_dir)
  end
end