class SportsmansSupply::Base

Public Class Methods

connect(options = {}) { |ftp| ... } click to toggle source
# File lib/sportsmans-supply/base.rb, line 4
def self.connect(options = {})
  requires!(options, :username, :password)

  Net::FTP.open(SportsmansSupply.config.ftp_host, options[:username], options[:password]) do |ftp|
    yield(ftp)
  end
end

Protected Class Methods

requires!(hash, *params) click to toggle source
# File lib/sportsmans-supply/base.rb, line 18
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) { |ftp| ... } click to toggle source
# File lib/sportsmans-supply/base.rb, line 31
def connect(options)
  self.class.connect(options) do |ftp|
    begin
      yield(ftp)
    end
  end
end
get_file(filename, file_directory = nil) click to toggle source
# File lib/sportsmans-supply/base.rb, line 39
def get_file(filename, file_directory = nil)
  connect(@options) do |ftp|
    tempfile = Tempfile.new
    ftp.getbinaryfile(File.join(file_directory, filename), tempfile.path)
    tempfile
  end
end
requires!(*args) click to toggle source
# File lib/sportsmans-supply/base.rb, line 14
def requires!(*args)
  self.class.requires!(*args)
end