atozgen 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/atozgen.rb +131 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dfdead45e8c541e5c67a4b7a8477e6cb69c277b344e5cdbaf6f9459a2f647886
|
4
|
+
data.tar.gz: d548d0cf13f3019b03f45302485410eaf5745a3efb91be18cf0cddb94c02204d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 87e06fd26be60628c51ba02ef26322c412653e4173b5d72533aa96e4feeb3b5ee9b32e780f97cf7cfd2642bf751ff8881594f4f153430679ce698781676ac92d
|
7
|
+
data.tar.gz: 4dcb2e6ec7c798c9c1f6df3e67ad77a42810b946f25bd2c270bd433f23a4ed609b869ed3c7aaaabbcaccdc01198f8d1fca96b71c380c9389dc848e1de820b1d8
|
data/lib/atozgen.rb
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
require "io/console"
|
2
|
+
require 'net/http'
|
3
|
+
|
4
|
+
module Atozgen
|
5
|
+
def self.init
|
6
|
+
puts "------------------------------------------------------------------------------"
|
7
|
+
puts "------------------------------WELCOME ON ATOZGEN------------------------------"
|
8
|
+
puts "------------------------------------------------------------------------------"
|
9
|
+
puts "\n"
|
10
|
+
|
11
|
+
self.form
|
12
|
+
end
|
13
|
+
|
14
|
+
protected
|
15
|
+
def self.hostname_filed(isretry = false)
|
16
|
+
puts "please enter atozgen server hostname* #{"(not allowed empty)" if isretry.eql?(true)}: "
|
17
|
+
hostname = STDIN.gets.chomp
|
18
|
+
|
19
|
+
if hostname.empty?
|
20
|
+
|
21
|
+
self.hostname_filed(true)
|
22
|
+
else
|
23
|
+
|
24
|
+
return hostname
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.deviceid_filed(isretry = false)
|
29
|
+
puts "please enter device id* #{"(not allowed empty)" if isretry.eql?(true)}: "
|
30
|
+
deviceid = STDIN.gets.chomp
|
31
|
+
|
32
|
+
if deviceid.empty?
|
33
|
+
|
34
|
+
self.deviceid_filed(true)
|
35
|
+
else
|
36
|
+
|
37
|
+
return deviceid
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.secretkey_filed(isretry = false)
|
42
|
+
puts "please enter secret key* #{"(not allowed empty)" if isretry.eql?(true)}: "
|
43
|
+
secretkey = STDIN.noecho(&:gets).chomp
|
44
|
+
|
45
|
+
if secretkey.empty?
|
46
|
+
|
47
|
+
self.secretkey_filed(true)
|
48
|
+
else
|
49
|
+
|
50
|
+
return secretkey
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.answer_filed(hostname, isretry = false)
|
55
|
+
puts "are you sure the hostname you entered is '#{hostname}'* #{"(not allowed empty)" if isretry.eql?(true)} ? (y/n)"
|
56
|
+
answer = STDIN.gets.chomp
|
57
|
+
|
58
|
+
self.answer_filed(hostname, true) if answer.empty? || !["y", "yes", "n", "no"].include?(answer.downcase)
|
59
|
+
|
60
|
+
if ["n", "no"].include?(answer.downcase)
|
61
|
+
puts "\n\n\n\n"
|
62
|
+
|
63
|
+
self.init
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.form
|
68
|
+
hostname = self.hostname_filed
|
69
|
+
deviceid = self.deviceid_filed
|
70
|
+
secretkey = self.secretkey_filed
|
71
|
+
|
72
|
+
self.answer_filed(hostname, isretry = false)
|
73
|
+
|
74
|
+
if self.validate?(hostname, deviceid, secretkey, (Rails.application.class.parent_name rescue "ATOZGEN"))
|
75
|
+
|
76
|
+
self.record(hostname, deviceid, secretkey)
|
77
|
+
else
|
78
|
+
|
79
|
+
puts "\n\n\n\n"
|
80
|
+
puts "------------------------------------------------------------------------------"
|
81
|
+
puts "invalid access. make sure the hostname, device id, and secret key are correct!"
|
82
|
+
puts "------------------------------------------------------------------------------"
|
83
|
+
puts "\n"
|
84
|
+
|
85
|
+
self.init
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def self.record(hostname, deviceid, secretkey, filename = "keygen.txt")
|
90
|
+
File.open(filename, "w") do |file|
|
91
|
+
file.puts hostname
|
92
|
+
file.puts deviceid
|
93
|
+
file.puts secretkey
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.read(filename = "keygen.txt")
|
98
|
+
values = []
|
99
|
+
|
100
|
+
File.open(filename, "r") do |file|
|
101
|
+
values[0] = file.gets.chomp
|
102
|
+
values[1] = file.gets.chomp
|
103
|
+
values[2] = file.gets.chomp
|
104
|
+
end
|
105
|
+
|
106
|
+
return values
|
107
|
+
end
|
108
|
+
|
109
|
+
def self.validate?(hostname, deviceid, secretkey, appname)
|
110
|
+
begin
|
111
|
+
uri = URI.parse("#{hostname}/v1/authorize")
|
112
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
113
|
+
http.use_ssl = false
|
114
|
+
headers = {
|
115
|
+
"Content-Type" => "application/json"
|
116
|
+
}
|
117
|
+
request = Net::HTTP::Post.new(uri, headers)
|
118
|
+
request.body = {
|
119
|
+
deviceid: deviceid,
|
120
|
+
secretkey: secretkey,
|
121
|
+
appname: appname
|
122
|
+
}.to_json
|
123
|
+
response = http.request(request)
|
124
|
+
|
125
|
+
return response.code.eql?("200")
|
126
|
+
rescue
|
127
|
+
|
128
|
+
return false
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: atozgen
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dede Badru
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-09-06 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: client side serial number management, for the ATOZPAY projects access.
|
14
|
+
email:
|
15
|
+
- dede.badrujaman@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/atozgen.rb
|
21
|
+
homepage: http://rubygems.org/gems/atozgen
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.7.6
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: client side serial number management.
|
45
|
+
test_files: []
|