minep-request 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/lib/minep-request.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require 'securerandom'
2
3
 
3
4
  require "minep-request/version"
4
5
  require "minep-request/minep"
@@ -21,6 +21,7 @@ module Minep
21
21
  args[k] = read
22
22
  end
23
23
  end
24
+ args["id"] = SecureRandom.uuid
24
25
  "#{request.upcase}=#{JSON.dump args}"
25
26
  end
26
27
  end
@@ -1,5 +1,3 @@
1
- require 'minep-request/minep'
2
-
3
1
  module Minep
4
2
  module Request
5
3
  CommandsInfo ||= {
@@ -16,10 +14,42 @@ module Minep
16
14
  "quit" => "Disconnect and quit the program"
17
15
  }
18
16
 
17
+ Status ||= [
18
+ "Ok",
19
+ "Request is unvalid",
20
+ "Request is unknown",
21
+ "Request argument is unvalid",
22
+ "User is unknown",
23
+ "Signup failed",
24
+ "Action is forbidden",
25
+ "Buffer is unknown",
26
+ "Someone is already logged",
27
+ "Request ID is missing"
28
+ ]
29
+
19
30
  def self.CommandsInfo
20
31
  CommandsInfo
21
32
  end
22
33
 
34
+ def self.readAndParseResponse request, socket
35
+ responsetab = socket.readpartial(4096).split '='
36
+ return $stderr.puts "Error while parsing response"if responsetab[0] != "RESPONSE"
37
+ response = {}
38
+ begin
39
+ response = JSON.parse responsetab[1]
40
+ rescue JSON::ParserError => error
41
+ return $stderr.puts "Error while parsing response"
42
+ end
43
+ if !response["status"] or !response["id"] or !response["info"]
44
+ return $stderr.puts "Error while parsing response"
45
+ end
46
+ status = response["status"]
47
+ if status != 0
48
+ return $stderr.puts "Error : #{request.upcase} : #{Status[status]}"
49
+ end
50
+ response
51
+ end
52
+
23
53
  def self.load socket, type
24
54
  args = {
25
55
  :path => "",
@@ -33,6 +63,7 @@ module Minep
33
63
  args[:line] = Minep.read.to_i
34
64
  printf "port : "
35
65
  args[:port] = Minep.read.to_i
66
+ args[:id] = SecureRandom.uuid
36
67
  if File.exist? args[:path]
37
68
  f = File.new args[:path]
38
69
  args[:size] = f.size
@@ -56,6 +87,14 @@ module Minep
56
87
  end
57
88
  sleep 2
58
89
  socket.write "LOAD=#{JSON.dump args}"
90
+ response = readAndParseResponse "LOAD", socket
91
+ return if response.nil?
92
+ if response["info"]["uuid"]
93
+ puts "Buffer id : #{response["info"]["uuid"]}"
94
+ return response["status"]
95
+ else
96
+ return $stderr.puts "Error while parsing response"
97
+ end
59
98
  else
60
99
  $stderr.puts "File #{args[:path]} doesn't exists"
61
100
  end
@@ -67,6 +106,9 @@ module Minep
67
106
  :pass => ""
68
107
  }
69
108
  socket.write Minep.makeMsg("AUTHENTICATE", args)
109
+ response = readAndParseResponse "AUTHENTICATE", socket
110
+ return if response.nil?
111
+ response["status"]
70
112
  end
71
113
 
72
114
  def self.signup socket
@@ -77,6 +119,9 @@ module Minep
77
119
  :website => ""
78
120
  }
79
121
  socket.write Minep.makeMsg("SIGNUP", args)
122
+ response = readAndParseResponse "SIGNUP", socket
123
+ return if response.nil?
124
+ response["status"]
80
125
  end
81
126
 
82
127
  def self.exec socket
@@ -86,6 +131,9 @@ module Minep
86
131
  :args => []
87
132
  }
88
133
  socket.write Minep.makeMsg("EXEC", args)
134
+ response = readAndParseResponse "EXEC", socket
135
+ return if response.nil?
136
+ response["status"]
89
137
  end
90
138
 
91
139
  def self.insert socket
@@ -94,6 +142,9 @@ module Minep
94
142
  :text => ""
95
143
  }
96
144
  socket.write Minep.makeMsg("INSERT", args)
145
+ response = readAndParseResponse "INSERT", socket
146
+ return if response.nil?
147
+ response["status"]
97
148
  end
98
149
 
99
150
  def self.move socket
@@ -103,6 +154,9 @@ module Minep
103
154
  :number => 0
104
155
  }
105
156
  socket.write Minep.makeMsg("MOVE", args)
157
+ response = readAndParseResponse "MOVE", socket
158
+ return if response.nil?
159
+ response["status"]
106
160
  end
107
161
 
108
162
  def self.backspace socket
@@ -111,6 +165,9 @@ module Minep
111
165
  :number => 0
112
166
  }
113
167
  socket.write Minep.makeMsg("BACKSPACE", args)
168
+ response = readAndParseResponse "BACKSPACE", socket
169
+ return if response.nil?
170
+ response["status"]
114
171
  end
115
172
 
116
173
  def self.delete socket
@@ -119,6 +176,9 @@ module Minep
119
176
  :number => 0
120
177
  }
121
178
  socket.write Minep.makeMsg("DELETE", args)
179
+ response = readAndParseResponse "DELETE", socket
180
+ return if response.nil?
181
+ response["status"]
122
182
  end
123
183
  end
124
184
  end
@@ -1,6 +1,6 @@
1
1
  module Minep
2
2
  module Request
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  DATE = Time.now.to_s.split[0]
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minep-request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-12 00:00:00.000000000 Z
12
+ date: 2013-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: WEBSocket