class OrionWholesale::Base
Public Class Methods
connect(options = {}) { |sftp| ... }
click to toggle source
# File lib/orion_wholesale/base.rb, line 4 def self.connect(options = {}) requires!(options, :username, :password) Net::SFTP.start(OrionWholesale.config.ftp_host, options[:username], password: options[:password], port: OrionWholesale.config.ftp_port) do |sftp| yield(sftp) end end
Protected Class Methods
requires!(hash, *params)
click to toggle source
# File lib/orion_wholesale/base.rb, line 19 def self.requires!(hash, *params) params.each do |param| if param.is_a?(Array) raise ArgumentError.new("Missing required parameter: #{param.first}") unless hash.has_key?(param.first) valid_options = param[1..-1] raise ArgumentError.new("Parameter: #{param.first} must be one of: #{valid_options.join(', ')}") unless valid_options.include?(hash[param.first]) else raise ArgumentError.new("Missing required parameter: #{param}") unless hash.has_key?(param) end end end
Protected Instance Methods
connect(options) { |sftp| ... }
click to toggle source
Instance methods become class methods through inheritance
# File lib/orion_wholesale/base.rb, line 33 def connect(options) self.class.connect(options) do |sftp| begin yield(sftp) end end end
content_for(xml_doc, field)
click to toggle source
# File lib/orion_wholesale/base.rb, line 41 def content_for(xml_doc, field) node = xml_doc.css(field).first if node.nil? nil else node.content.try(:strip) end end
get_file(filename, file_directory=nil)
click to toggle source
# File lib/orion_wholesale/base.rb, line 51 def get_file(filename, file_directory=nil) connect(@options) do |sftp| begin tempfile = Tempfile.new sftp.download!(File.join(file_directory, filename), tempfile.path) return tempfile end end end
get_most_recent_file(file_prefix, file_directory=nil)
click to toggle source
# File lib/orion_wholesale/base.rb, line 63 def get_most_recent_file(file_prefix, file_directory=nil) filenames = [] connect(@options) do |sftp| sftp.dir.foreach(file_directory) { |entry| filenames << entry.name } filename = filenames.select{ |n| n.include?(file_prefix) }.sort.last tempfile = self.get_file(filename, file_directory) return tempfile end end
requires!(*args)
click to toggle source
Wrapper to `self.requires!` that can be used as an instance method.
# File lib/orion_wholesale/base.rb, line 15 def requires!(*args) self.class.requires!(*args) end