arbi 1.0.4 → 1.0.5

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.
Files changed (2) hide show
  1. data/lib/arbi.rb +45 -7
  2. metadata +3 -8
@@ -13,7 +13,7 @@ module Arbi
13
13
  require 'getopt/long'
14
14
  include Getopt
15
15
 
16
- VERSION = "1.0.2"
16
+ VERSION = "1.0.5"
17
17
 
18
18
  @cmd = []
19
19
 
@@ -30,6 +30,26 @@ module Arbi
30
30
  exit 0
31
31
  end
32
32
 
33
+ def self.connect address = '127.0.0.1', port = '6969'
34
+ @@connection = TCPSocket.new address, port
35
+ @@connection.print "SERIAL\r\n"
36
+ end
37
+
38
+ def self.connected?
39
+ return true if @@connection
40
+ false
41
+ end
42
+
43
+ def self.connection
44
+ @@connection
45
+ end
46
+
47
+ def self.get what
48
+ raise "Arbi isn't connected to the server" unless self.connected?
49
+ @@connection.print what + "\r\n"
50
+ eval @@connection.gets.strip
51
+ end
52
+
33
53
  class Server
34
54
  require 'socket'
35
55
 
@@ -73,6 +93,10 @@ module Arbi
73
93
  @servert.kill
74
94
  end
75
95
 
96
+ def finalize
97
+ close
98
+ end
99
+
76
100
  private
77
101
 
78
102
  def parse_args
@@ -80,8 +104,8 @@ module Arbi
80
104
  opts = Arbi::Long.getopts(
81
105
  ["--bind-address", "-a", Arbi::REQUIRED],
82
106
  ["--port", "-p", Arbi::REQUIRED],
83
- ["--help", "-h", Arbi::BOOLEAN],
84
- ["--version", "-v", Arbi::BOOLEAN]
107
+ ["--help"],
108
+ ["--version"]
85
109
  )
86
110
  rescue Getopt::Long::Error => e
87
111
  puts "Arguments error: #{e}"
@@ -96,12 +120,13 @@ module Arbi
96
120
 
97
121
  def new_client session
98
122
  @threads.push Thread.start(session){ |session|
123
+ ser = false
99
124
  while message = session.gets
100
125
  toggle = true
101
126
  message = message.strip
102
127
  break if message =~ /^QUIT$/i
103
128
 
104
- if message =~ /^HELP$/i
129
+ if message =~ /^HELP$/i and !ser
105
130
  session.print "help:\r\n"
106
131
  Arbi::cmd.each { |pair|
107
132
  session.print "#{pair[0]}\r\n"
@@ -113,18 +138,27 @@ module Arbi
113
138
  toggle = !toggle
114
139
  end
115
140
 
116
- if message =~ /^VERSION$/i
141
+ if message =~ /^VERSION$/i and !ser
117
142
  session.print "version:\r\nArbi (Client|Server) v#{VERSION}\r\nEND\r\n"
118
143
  toggle = !toggle
119
144
  end
120
145
 
146
+ if message =~ /^SERIAL$/i
147
+ ser = !ser
148
+ toggle = !toggle
149
+ end
150
+
121
151
  Arbi::cmd.each { |pair|
122
152
  if message =~ pair[0]
123
- session.print (pair[1].class == Class ? pair[1].protocolize(pair[1].get_infos) : pair[1].class.protocolize(pair[1].get_infos))
153
+ if ser
154
+ session.print pair[1].get_infos.inspect + "\r\n"
155
+ else
156
+ session.print (pair[1].class == Class ? pair[1].protocolize(pair[1].get_infos) : pair[1].class.protocolize(pair[1].get_infos))
157
+ end
124
158
  toggle = !toggle
125
159
  end
126
160
  }
127
- session.print "error:\r\nCommand doesn't exist\r\nEND\r\n" if toggle
161
+ session.print (ser ? "{'error' => 'command desn\\'t exist'}" : "error:\r\nCommand doesn't exist\r\nEND\r\n") if toggle
128
162
  end
129
163
  @sessions -= [session]
130
164
  session.close
@@ -172,6 +206,10 @@ module Arbi
172
206
  @sock.close
173
207
  end
174
208
 
209
+ def finalize
210
+ close
211
+ end
212
+
175
213
  def show_help
176
214
  puts "Arbi client:"
177
215
  puts "\tUSAGE: #{$0} [switches]"
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arbi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 0
9
- - 4
10
- version: 1.0.4
8
+ - 5
9
+ version: 1.0.5
11
10
  platform: ruby
12
11
  authors:
13
12
  - shura
@@ -15,7 +14,7 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-07-13 00:00:00 +02:00
17
+ date: 2010-08-13 00:00:00 +02:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
@@ -26,7 +25,6 @@ dependencies:
26
25
  requirements:
27
26
  - - ">="
28
27
  - !ruby/object:Gem::Version
29
- hash: 3
30
28
  segments:
31
29
  - 0
32
30
  version: "0"
@@ -40,7 +38,6 @@ dependencies:
40
38
  requirements:
41
39
  - - ">="
42
40
  - !ruby/object:Gem::Version
43
- hash: 3
44
41
  segments:
45
42
  - 0
46
43
  version: "0"
@@ -80,7 +77,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
77
  requirements:
81
78
  - - ">="
82
79
  - !ruby/object:Gem::Version
83
- hash: 3
84
80
  segments:
85
81
  - 0
86
82
  version: "0"
@@ -89,7 +85,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
85
  requirements:
90
86
  - - ">="
91
87
  - !ruby/object:Gem::Version
92
- hash: 3
93
88
  segments:
94
89
  - 0
95
90
  version: "0"