module Atozgen

Public Class Methods

init() click to toggle source
# File lib/atozgen.rb, line 5
def self.init
  puts "------------------------------------------------------------------------------"
  puts "------------------------------WELCOME ON ATOZGEN------------------------------"
  puts "------------------------------------------------------------------------------"
  puts "\n"

  self.form
end

Protected Class Methods

answer_filed(hostname, isretry = false) click to toggle source
# File lib/atozgen.rb, line 54
def self.answer_filed(hostname, isretry = false)
  puts "are you sure the hostname you entered is '#{hostname}'* #{"(not allowed empty)" if isretry.eql?(true)} ? (y/n)"
  answer = STDIN.gets.chomp

  self.answer_filed(hostname, true) if answer.empty? || !["y", "yes", "n", "no"].include?(answer.downcase)

   if ["n", "no"].include?(answer.downcase)
    puts "\n\n\n\n"

    self.init
  end
end
deviceid_filed(isretry = false) click to toggle source
# File lib/atozgen.rb, line 28
def self.deviceid_filed(isretry = false)
  puts "please enter device id* #{"(not allowed empty)" if isretry.eql?(true)}: "
  deviceid = STDIN.gets.chomp

  if deviceid.empty?

    self.deviceid_filed(true)
  else

    return deviceid
  end
end
form() click to toggle source
# File lib/atozgen.rb, line 67
def self.form
  hostname  = self.hostname_filed
  deviceid  = self.deviceid_filed
  secretkey = self.secretkey_filed

  self.answer_filed(hostname, isretry = false)

  if self.validate?(hostname, deviceid, secretkey, (Rails.application.class.parent_name rescue "ATOZGEN"))

    self.record(hostname, deviceid, secretkey)
  else

    puts "\n\n\n\n"
    puts "------------------------------------------------------------------------------"
    puts "invalid access. make sure the hostname, device id, and secret key are correct!"
    puts "------------------------------------------------------------------------------"
    puts "\n"

    self.init
  end
end
hostname_filed(isretry = false) click to toggle source
# File lib/atozgen.rb, line 15
def self.hostname_filed(isretry = false)
  puts "please enter atozgen server hostname* #{"(not allowed empty)" if isretry.eql?(true)}: "
  hostname = STDIN.gets.chomp

  if hostname.empty?

    self.hostname_filed(true)
  else

    return hostname
  end
end
read(filename = "keygen.txt") click to toggle source
# File lib/atozgen.rb, line 97
def self.read(filename = "keygen.txt")
  values = []

  File.open(filename, "r") do |file|
    values[0] = file.gets.chomp
    values[1] = file.gets.chomp
    values[2] = file.gets.chomp
  end

  return values
end
record(hostname, deviceid, secretkey, filename = "keygen.txt") click to toggle source
# File lib/atozgen.rb, line 89
def self.record(hostname, deviceid, secretkey, filename = "keygen.txt")
  File.open(filename, "w") do |file|
    file.puts hostname
    file.puts deviceid
    file.puts secretkey
  end
end
secretkey_filed(isretry = false) click to toggle source
# File lib/atozgen.rb, line 41
def self.secretkey_filed(isretry = false)
  puts "please enter secret key* #{"(not allowed empty)" if isretry.eql?(true)}: "
  secretkey = STDIN.noecho(&:gets).chomp

  if secretkey.empty?

    self.secretkey_filed(true)
  else

    return secretkey
  end
end
validate?(hostname, deviceid, secretkey, appname) click to toggle source
# File lib/atozgen.rb, line 109
def self.validate?(hostname, deviceid, secretkey, appname)
  begin
    uri          = URI.parse("#{hostname}/v1/authorize")
    http         = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = false
    headers      = {
                      "Content-Type" => "application/json"
                   }
    request      = Net::HTTP::Post.new(uri, headers)
    request.body =  {
                      deviceid: deviceid,
                      secretkey: secretkey,
                      appname: appname
                    }.to_json
    response     = http.request(request)

    return response.code.eql?("200")
  rescue

    return false
  end
end