class Jetel::Modules::Module
Attributes
downloader[R]
Public Class Methods
download_dir(modul, source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 42 def download_dir(modul, source, opts) Module.target_dir(modul, source, opts, 'downloaded') end
downloaded_file(modul, source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 54 def downloaded_file(modul, source, opts) File.join(download_dir(modul, source, opts), source[:filename_downloaded] || source[:url].split('/').last) end
extract_dir(modul, source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 46 def extract_dir(modul, source, opts) Module.target_dir(modul, source, opts, 'extracted') end
extracted_file(modul, source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 58 def extracted_file(modul, source, opts) File.join(extract_dir(modul, source, opts), source[:filename_extracted] || source[:url].split('/').last) end
new()
click to toggle source
# File lib/jetel/modules/module.rb, line 67 def initialize @downloader = Downloader.new end
target_dir(modul, source, dir, *path)
click to toggle source
# File lib/jetel/modules/module.rb, line 36 def target_dir(modul, source, dir, *path) klass = modul.class.name.split('::').last source_name = Helper.sanitize(source[:name]) File.join(dir.kind_of?(Hash) ? dir['download_dir'] : dir || Config[:DATA_DIRECTORY], klass, source[:flat] ? '' : source_name, path) end
transform_dir(modul, source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 50 def transform_dir(modul, source, opts) Module.target_dir(modul, source, opts, 'transformed') end
transformed_file(modul, source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 62 def transformed_file(modul, source, opts) File.join(transform_dir(modul, source, opts), source[:filename_transformed] || source[:url].split('/').last) end
Public Instance Methods
download_dir(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 83 def download_dir(source, opts) Module.download_dir(self, source, opts) end
download_source(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 71 def download_source(source, opts) downloaded_file = downloaded_file(source, opts) unless File.exists?(downloaded_file) downloader.download(source[:url], {:dir => download_dir(source, opts), :filename => source[:filename_downloaded]}) end end
downloaded_file(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 95 def downloaded_file(source, opts) Module.downloaded_file(self, source, opts) end
extract_dir(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 87 def extract_dir(source, opts) Module.extract_dir(self, source, opts) end
extracted_file(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 99 def extracted_file(source, opts) Module.extracted_file(self, source, opts) end
load(global_options, options, args)
click to toggle source
# File lib/jetel/modules/module.rb, line 107 def load(global_options, options, args) sources = self.class.sources if args.length > 0 args = args.map(&:downcase) sources = sources.select do |source| args.index(source[:name].downcase) end end sources.map do |source| opts = global_options.merge(options) transformed_file = transformed_file(source, opts) loader = Helper.get_loader(opts['data_loader']) Dir.glob(transformed_file).each do |one_file| puts "Loading file #{one_file}" loader.load(self, source, one_file, opts) end end end
sources(global_options, options, _args)
click to toggle source
# File lib/jetel/modules/module.rb, line 130 def sources(global_options, options, _args) opts = global_options.merge(options) res = self.class.sources if opts['format'] == 'json' puts MultiJson.dump(res, :pretty => true) else pp res end end
target_dir(source, opts, *path)
click to toggle source
# File lib/jetel/modules/module.rb, line 79 def target_dir(source, opts, *path) Module.target_dir(self, source, opts['download_dir'], *path) end
transform_dir(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 91 def transform_dir(source, opts) Module.transform_dir(self, source, opts) end
transformed_file(source, opts)
click to toggle source
# File lib/jetel/modules/module.rb, line 103 def transformed_file(source, opts) Module.transformed_file(self, source, opts) end
unzip(source, options = {})
click to toggle source
# File lib/jetel/modules/module.rb, line 143 def unzip(source, options = {}) downloaded_file = downloaded_file(source, options) dest_dir = extract_dir(source, options) FileUtils.mkdir_p(dest_dir) ::Zip::File.open(downloaded_file) do |zip_file| # Handle entries one by one zip_file.each do |entry| # Extract to file/directory/symlink puts "Extracting #{entry.name}" dest_file = File.join(dest_dir, entry.name.split('/').last) FileUtils.rm_rf(dest_file) entry.extract(dest_file) end end end