minep-request 0.0.5 → 0.0.6

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.
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