serialport-server 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d7d590e373d175e5375e58cca8f7960baa86ffe9
4
+ data.tar.gz: 2b030249ef0f2823b7d5890c52ee6a07eedd4eb9
5
+ SHA512:
6
+ metadata.gz: 5cc3987c53e68129a8275a880cb50127fe942508aae540f3cb6f5fcf3f8a9dc7815bb37aee2f0ca1da7fdc76d7a06274598d8aaa884d41760358ca532b553f66
7
+ data.tar.gz: 9d25cbcb3521c5cccddb583c2b1800aabe4367144fe304504d088eccfb9c07a9686dd9c0d9812bce5afcb728a4209161581e35fdccf767924b068e99df186e75
@@ -0,0 +1,21 @@
1
+ .DS_Store
2
+ *~
3
+ .\#*
4
+ *\#*
5
+ *.gem
6
+ *.rbc
7
+ .bundle
8
+ .config
9
+ .yardoc
10
+ .ruby-version
11
+ InstalledFiles
12
+ _yardoc
13
+ coverage
14
+ doc/
15
+ lib/bundler/man
16
+ pkg
17
+ rdoc
18
+ spec/reports
19
+ test/tmp
20
+ test/version_tmp
21
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in test.gemspec
4
+ gemspec
@@ -1,3 +1,10 @@
1
+ === 0.1.0 2013-08-27
2
+
3
+ * use Bundler gem template instead of Hoe
4
+ * thank you for contributing @Sparkboxx
5
+ * support Ruby2.0
6
+ * add --version option
7
+
1
8
  === 0.0.3 2012-05-23
2
9
 
3
10
  * Args alias. websocket_port => wp, http_port => hp, socket_port => sp
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Sho Hashimoto
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,23 @@
1
+ SerialPort Server
2
+ =================
3
+ SerialPort Server makes your Device (Arduino, mbed...) WebServer. You can access SerialPort via HTTP, WebSocket and TCP Socket.
4
+
5
+ - http://shokai.github.io/serialport-server
6
+
7
+
8
+ Requirements
9
+ ------------
10
+ - USB Device (Arduino, mbed ...)
11
+
12
+
13
+ Install
14
+ -------
15
+
16
+ % gem install serialport-server
17
+
18
+
19
+ Usage
20
+ -----
21
+
22
+ % serialport-server --help
23
+ % serialport-server /dev/tty.usb-device -http_port 8783 -websocket_prot 8784 -socket_port 8785
data/Rakefile CHANGED
@@ -1,32 +1 @@
1
- require 'rubygems'
2
- gem 'hoe', '>= 2.1.0'
3
- require 'hoe'
4
- require 'fileutils'
5
- require './lib/serialport-server'
6
-
7
- Hoe.plugin :newgem
8
- # Hoe.plugin :website
9
- # Hoe.plugin :cucumberfeatures
10
-
11
- # Generate all the Rake tasks
12
- # Run 'rake -T' to see list of generated tasks (from gem root directory)
13
- $hoe = Hoe.spec 'serialport-server' do
14
- self.developer 'Sho Hashimoto', 'hashimoto@shokai.org'
15
- self.post_install_message = '!! For more information on serialport-server, see http://shokai.github.com/serialport-server'
16
- self.rubyforge_name = self.name # TODO this is default value
17
- self.extra_deps = [['serialport','>= 1.0.4'],
18
- ['eventmachine'],
19
- ['eventmachine_httpserver'],
20
- ['em-websocket'],
21
- ['args_parser'],
22
- ['json']
23
- ]
24
-
25
- end
26
-
27
- require 'newgem/tasks'
28
- Dir['tasks/**/*.rake'].each { |t| load t }
29
-
30
- # TODO - want other tests/tasks run by default? Add them to the list
31
- # remove_task :default
32
- # task :default => [:spec, :features]
1
+ require 'bundler/gem_tasks'
@@ -1,140 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'rubygems'
3
- gem 'serialport','>=1.0.4'
4
- require 'serialport'
5
- require 'eventmachine'
6
- require 'evma_httpserver'
7
- require 'em-websocket'
8
- require 'args_parser'
9
- require 'json'
3
+ $:.unshift File.expand_path '../lib', File.dirname(__FILE__)
4
+ require 'serialport-server'
10
5
 
11
- parser = ArgsParser.parse ARGV do
12
- arg :help, 'show help', :alias => :h
13
- arg :bps, 'bit per second', :default => 9600
14
- arg :bit, 'bit(7-9)', :default => 8
15
- arg :stopbit, 'stopbit', :default => 1
16
- arg :parity, 'parity bit', :default => 0
17
- arg :http_port, 'HTTP port', :alias => :hp, :default => 8783
18
- arg :websocket_port, 'WebSocket port', :alias => :wp, :default => 8784
19
- arg :socket_port, 'TCP Socket port', :alias => :sp, :default => 8785
20
- end
21
-
22
- if !parser.first or parser.has_option? :help
23
- puts parser.help
24
- app_name = $0.split(/\//).last
25
- if RUBY_PLATFORM =~ /mswin|mingw|cygwin|bccwin/
26
- puts "e.g. #{app_name} COM1"
27
- puts " #{app_name} COM1 -hp 8783 -wp 8784 -sp 8785"
28
- else
29
- puts "e.g. #{app_name} /dev/tty.your-device"
30
- puts " #{app_name} /dev/tty.your-device -hp 8783 -wp 8784 -sp 8785"
31
- end
32
- exit 1
33
- end
34
-
35
- begin
36
- @@sp = SerialPort.new(parser.first, parser[:bps].to_i, parser[:bit].to_i, parser[:stopbit].to_i, parser[:parity].to_i) # 9600bps, 8bit, stopbit 1, parity none
37
- rescue => e
38
- STDERR.puts 'cannot open serialport!!'
39
- STDERR.puts e.to_s
40
- exit 1
41
- end
42
-
43
- @@recvs = Array.new
44
- @@channel = EM::Channel.new
45
- @@channel.subscribe do |data|
46
- now = Time.now.to_i*1000+(Time.now.usec/1000.0).round
47
- @@recvs.unshift({:time => now, :data => data})
48
- while @@recvs.size > 100 do
49
- @@recvs.pop
50
- end
51
- end
52
-
53
- class SerialHttpServer < EM::Connection
54
- include EM::HttpServer
55
-
56
- def process_http_request
57
- res = EM::DelegatedHttpResponse.new(self)
58
- puts "[http] #{@http_request_method} #{@http_path_info} #{@http_query_string} #{@http_post_content}"
59
- res.headers['Access-Control-Allow-Origin'] = '*'
60
- res.headers['Access-Control-Allow-Headers'] = 'Content-Type'
61
- res.headers['Access-Control-Allow-Methods'] = 'PUT,DELETE,POST,GET,OPTIONS'
62
- if @http_request_method == 'GET'
63
- res.status = 200
64
- res.content = @@recvs.to_json
65
- res.send_response
66
- elsif @http_request_method == 'POST'
67
- res.status = 200
68
- @@sp.puts @http_post_content
69
- res.content = @@recvs.to_json
70
- res.send_response
71
- end
72
- end
73
- end
74
-
75
- class SerialSocketServer < EM::Connection
76
- def post_init
77
- @sid = @@channel.subscribe do |data|
78
- send_data "#{data}\n"
79
- end
80
- puts "* new socket client <#{@sid}>"
81
-
82
- def receive_data data
83
- data = data.to_s.strip
84
- return if data.size < 1
85
- puts "* socket client <#{@sid}> : #{data}"
86
- @@sp.puts data
87
- end
88
-
89
- def unbind
90
- @@channel.unsubscribe @sid
91
- puts "* socket client <#{@sid}> closed"
92
- end
93
- end
94
- end
95
-
96
- EM::run do
97
- EM::start_server("0.0.0.0", parser[:http_port].to_i, SerialHttpServer)
98
- puts "start HTTP server - port #{parser[:http_port].to_i}"
99
-
100
- EM::start_server('0.0.0.0', parser[:socket_port].to_i, SerialSocketServer)
101
- puts "start TCP Socket server - port #{parser[:socket_port].to_i}"
102
-
103
- EM::WebSocket.start(:host => '0.0.0.0', :port => parser[:websocket_port].to_i) do |ws|
104
- ws.onopen do
105
- sid = @@channel.subscribe do |mes|
106
- ws.send mes.to_s
107
- end
108
- puts "* new websocket client <#{sid}> connected"
109
- ws.onmessage do |mes|
110
- puts "* websocket client <#{sid}> : #{mes}"
111
- @@sp.puts mes.strip
112
- end
113
-
114
- ws.onclose do
115
- @@channel.unsubscribe sid
116
- puts "* websocket client <#{sid}> closed"
117
- end
118
- end
119
- end
120
- puts "start WebSocket server - port #{parser[:websocket_port].to_i}"
121
-
122
- EM::defer do
123
- loop do
124
- data = @@sp.gets.gsub(/[\r\n]/,'')
125
- data = data.to_i if data =~ /^\d+$/
126
- next if !data or data.to_s.size < 1
127
- @@channel.push data
128
- puts data
129
- end
130
- end
131
-
132
- EM::defer do
133
- loop do
134
- line = STDIN.gets.gsub(/[\r\n]/,'')
135
- next if !line or line.to_s.size < 1
136
- @@sp.puts line
137
- end
138
- end
139
-
140
- end
6
+ app = SerialportServer::Application.new ARGV
7
+ app.start
@@ -1,6 +1,14 @@
1
- $:.unshift(File.dirname(__FILE__)) unless
2
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
1
+ require 'eventmachine'
2
+ require 'evma_httpserver'
3
+ require 'em-websocket'
4
+ require 'json'
5
+ require 'serialport'
6
+ require 'args_parser'
7
+
8
+ require 'serialport-server/version'
9
+ require 'serialport-server/socket_server'
10
+ require 'serialport-server/http_server'
11
+ require 'serialport-server/application'
3
12
 
4
13
  module SerialportServer
5
- VERSION = '0.0.3'
6
14
  end
@@ -0,0 +1,126 @@
1
+ module SerialportServer
2
+
3
+ def self.application
4
+ @@application
5
+ end
6
+
7
+ private
8
+ def self.application=(app)
9
+ @@application = app
10
+ end
11
+
12
+
13
+
14
+ class Application
15
+
16
+ def app_name
17
+ 'serialport-server'
18
+ end
19
+
20
+ attr_reader :args, :serialport, :channel, :recvs
21
+
22
+ def initialize(argv)
23
+ SerialportServer.application = self
24
+ @args = ArgsParser.parse argv do
25
+ arg :bps, 'bit per second', :default => 9600
26
+ arg :bit, 'bit(7-9)', :default => 8
27
+ arg :stopbit, 'stopbit', :default => 1
28
+ arg :parity, 'parity bit', :default => 0
29
+ arg :http_port, 'HTTP port', :alias => :hp, :default => 8783
30
+ arg :websocket_port, 'WebSocket port', :alias => :wp, :default => 8784
31
+ arg :socket_port, 'TCP Socket port', :alias => :sp, :default => 8785
32
+ arg :version, 'show version', :alias => :v
33
+ arg :help, 'show help', :alias => :h
34
+
35
+ on :version do
36
+ STDERR.puts "SerialportServer v#{SerialportServer::VERSION}"
37
+ STDERR.puts "http://shokai.github.io/serialport-server"
38
+ exit
39
+ end
40
+ end
41
+
42
+ if !@args.first or @args.has_option? :help
43
+ STDERR.puts @args.help
44
+ if RUBY_PLATFORM =~ /mswin|mingw|cygwin|bccwin/
45
+ STDERR.puts "e.g. #{app_name} COM1"
46
+ STDERR.puts " #{app_name} COM1 -hp 8783 -wp 8784 -sp 8785"
47
+ else
48
+ STDERR.puts "e.g. #{app_name} /dev/tty.your-device"
49
+ STDERR.puts " #{app_name} /dev/tty.your-device -hp 8783 -wp 8784 -sp 8785"
50
+ end
51
+ exit 1
52
+ end
53
+
54
+ begin
55
+ @serialport = SerialPort.new(@args.first,
56
+ @args[:bps].to_i,
57
+ @args[:bit].to_i,
58
+ @args[:stopbit].to_i,
59
+ @args[:parity].to_i)
60
+ rescue => e
61
+ STDERR.puts 'cannot open serialport!!'
62
+ STDERR.puts e.to_s
63
+ exit 1
64
+ end
65
+
66
+ @recvs = Array.new
67
+ @channel = EM::Channel.new
68
+ @channel.subscribe do |data|
69
+ now = Time.now.to_i*1000+(Time.now.usec/1000.0).round
70
+ @recvs.unshift({:time => now, :data => data})
71
+ while @recvs.size > 100 do
72
+ @recvs.pop
73
+ end
74
+ end
75
+ end
76
+
77
+ def start
78
+ EM::run do
79
+ EM::start_server("0.0.0.0", @args[:http_port].to_i, SerialportServer::HttpServer)
80
+ puts "start HTTP server - port #{@args[:http_port].to_i}"
81
+
82
+ EM::start_server('0.0.0.0', @args[:socket_port].to_i, SerialportServer::SocketServer)
83
+ puts "start TCP Socket server - port #{@args[:socket_port].to_i}"
84
+
85
+ EM::WebSocket.start(:host => '0.0.0.0', :port => @args[:websocket_port].to_i) do |ws|
86
+ ws.onopen do
87
+ sid = @channel.subscribe do |mes|
88
+ ws.send mes.to_s
89
+ end
90
+ puts "* new websocket client <#{sid}> connected"
91
+ ws.onmessage do |mes|
92
+ puts "* websocket client <#{sid}> : #{mes}"
93
+ @serialport.puts mes.strip
94
+ end
95
+
96
+ ws.onclose do
97
+ @channel.unsubscribe sid
98
+ puts "* websocket client <#{sid}> closed"
99
+ end
100
+ end
101
+ end
102
+ puts "start WebSocket server - port #{@args[:websocket_port].to_i}"
103
+
104
+ EM::defer do
105
+ loop do
106
+ data = @serialport.gets.gsub(/[\r\n]/,'') rescue next
107
+ data = data.to_i if data =~ /^\d+$/
108
+ next if !data or data.to_s.empty?
109
+ @channel.push data
110
+ puts data
111
+ end
112
+ end
113
+
114
+ EM::defer do
115
+ loop do
116
+ line = STDIN.gets.gsub(/[\r\n]/,'')
117
+ next if !line or line.to_s.empty?
118
+ @serialport.puts line rescue next
119
+ end
120
+ end
121
+
122
+ end
123
+ end
124
+
125
+ end
126
+ end
@@ -0,0 +1,23 @@
1
+ module SerialportServer
2
+ class HttpServer < EM::Connection
3
+ include EM::HttpServer
4
+
5
+ def process_http_request
6
+ res = EM::DelegatedHttpResponse.new(self)
7
+ puts "[http] #{@http_request_method} #{@http_path_info} #{@http_query_string} #{@http_post_content}"
8
+ res.headers['Access-Control-Allow-Origin'] = '*'
9
+ res.headers['Access-Control-Allow-Headers'] = 'Content-Type'
10
+ res.headers['Access-Control-Allow-Methods'] = 'PUT,DELETE,POST,GET,OPTIONS'
11
+ if @http_request_method == 'GET'
12
+ res.status = 200
13
+ res.content = SerialportServer.application.recvs.to_json
14
+ res.send_response
15
+ elsif @http_request_method == 'POST'
16
+ res.status = 200
17
+ SerialportServer.application.serialport.puts @http_post_content
18
+ res.content = SerialportServer.application.recvs.to_json
19
+ res.send_response
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ module SerialportServer
2
+ class SocketServer < EM::Connection
3
+ def post_init
4
+ @sid = SerialportServer.application.channel.subscribe do |data|
5
+ send_data "#{data}\n"
6
+ end
7
+ puts "* new socket client <#{@sid}>"
8
+
9
+ def receive_data data
10
+ data = data.to_s.strip
11
+ return if data.size < 1
12
+ puts "* socket client <#{@sid}> : #{data}"
13
+ SerialportServer.application.serialport.puts data
14
+ end
15
+
16
+ def unbind
17
+ SerialportServer.application.channel.unsubscribe @sid
18
+ puts "* socket client <#{@sid}> closed"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ module SerialportServer
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,29 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'serialport-server/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "serialport-server"
7
+ spec.version = SerialportServer::VERSION
8
+ spec.authors = "Sho Hashimoto"
9
+ spec.email = ["hashimoto@shokai.org"]
10
+ spec.summary = "SerialPort Server makes your Device (Arduino, mbed...) WebServer."
11
+ spec.description = spec.summary
12
+ spec.homepage = "http://shokai.github.io/serialport-server"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files`.split($/).reject{|i| i == "Gemfile.lock" }
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_dependency 'serialport', '>= 1.0.4'
21
+ spec.add_dependency 'eventmachine'
22
+ spec.add_dependency 'eventmachine_httpserver'
23
+ spec.add_dependency 'em-websocket'
24
+ spec.add_dependency 'args_parser', "~> 0.2"
25
+ spec.add_dependency 'json'
26
+
27
+ spec.add_development_dependency "bundler", "~> 1.3"
28
+ spec.add_development_dependency "rake"
29
+ end
metadata CHANGED
@@ -1,177 +1,147 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: serialport-server
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Sho Hashimoto
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-05-23 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2013-08-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: serialport
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 31
29
- segments:
30
- - 1
31
- - 0
32
- - 4
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
33
19
  version: 1.0.4
34
20
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: eventmachine
38
21
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: eventmachine
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
48
34
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: eventmachine_httpserver
52
35
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: eventmachine_httpserver
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
62
48
  type: :runtime
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: em-websocket
66
49
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: em-websocket
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
76
62
  type: :runtime
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: args_parser
80
63
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: args_parser
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.2'
90
76
  type: :runtime
91
- version_requirements: *id005
92
- - !ruby/object:Gem::Dependency
93
- name: json
94
77
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '0.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: json
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
104
90
  type: :runtime
105
- version_requirements: *id006
106
- - !ruby/object:Gem::Dependency
107
- name: rdoc
108
91
  prerelease: false
109
- requirement: &id007 !ruby/object:Gem::Requirement
110
- none: false
111
- requirements:
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
112
101
  - - ~>
113
- - !ruby/object:Gem::Version
114
- hash: 19
115
- segments:
116
- - 3
117
- - 10
118
- version: "3.10"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.3'
119
104
  type: :development
120
- version_requirements: *id007
121
- - !ruby/object:Gem::Dependency
122
- name: newgem
123
105
  prerelease: false
124
- requirement: &id008 !ruby/object:Gem::Requirement
125
- none: false
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- hash: 5
130
- segments:
131
- - 1
132
- - 5
133
- - 3
134
- version: 1.5.3
135
- type: :development
136
- version_requirements: *id008
137
- - !ruby/object:Gem::Dependency
138
- name: hoe
139
- prerelease: false
140
- requirement: &id009 !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
143
108
  - - ~>
144
- - !ruby/object:Gem::Version
145
- hash: 29
146
- segments:
147
- - 2
148
- - 15
149
- version: "2.15"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.3'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
150
118
  type: :development
151
- version_requirements: *id009
152
- description: SerialPort Server makes your Device (Arduino, mbed...) WebServer. You can access SerialPort via HTTP, WebSocket and TCP Socket.
153
- email:
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: SerialPort Server makes your Device (Arduino, mbed...) WebServer.
126
+ email:
154
127
  - hashimoto@shokai.org
155
- executables:
128
+ executables:
156
129
  - serialport-server
157
130
  extensions: []
158
-
159
- extra_rdoc_files:
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - Gemfile
160
135
  - History.txt
161
- - Manifest.txt
162
- - README.rdoc
163
- files:
164
- - History.txt
165
- - Manifest.txt
166
- - README.rdoc
136
+ - LICENSE.txt
137
+ - README.md
167
138
  - Rakefile
168
- - script/console
169
- - script/destroy
170
- - script/generate
171
- - test/test_helper.rb
172
- - test/test_serialport-server.rb
173
139
  - bin/serialport-server
174
140
  - lib/serialport-server.rb
141
+ - lib/serialport-server/application.rb
142
+ - lib/serialport-server/http_server.rb
143
+ - lib/serialport-server/socket_server.rb
144
+ - lib/serialport-server/version.rb
175
145
  - sample/README.md
176
146
  - sample/ajax/index.html
177
147
  - sample/ajax/jquery.js
@@ -180,41 +150,33 @@ files:
180
150
  - sample/websocket/index.html
181
151
  - sample/websocket/jquery.js
182
152
  - sample/websocket/main.js
183
- - .gemtest
184
- homepage: http://shokai.github.com/serialport-server
185
- licenses: []
186
-
187
- post_install_message: "!! For more information on serialport-server, see http://shokai.github.com/serialport-server"
188
- rdoc_options:
189
- - --main
190
- - README.rdoc
191
- require_paths:
153
+ - serialport-server.gemspec
154
+ - test/test_helper.rb
155
+ - test/test_serialport-server.rb
156
+ homepage: http://shokai.github.io/serialport-server
157
+ licenses:
158
+ - MIT
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
192
163
  - lib
193
- required_ruby_version: !ruby/object:Gem::Requirement
194
- none: false
195
- requirements:
196
- - - ">="
197
- - !ruby/object:Gem::Version
198
- hash: 3
199
- segments:
200
- - 0
201
- version: "0"
202
- required_rubygems_version: !ruby/object:Gem::Requirement
203
- none: false
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- hash: 3
208
- segments:
209
- - 0
210
- version: "0"
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - '>='
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
211
174
  requirements: []
212
-
213
- rubyforge_project: serialport-server
214
- rubygems_version: 1.8.17
175
+ rubyforge_project:
176
+ rubygems_version: 2.0.5
215
177
  signing_key:
216
- specification_version: 3
217
- summary: SerialPort Server makes your Device (Arduino, mbed...) WebServer
218
- test_files:
178
+ specification_version: 4
179
+ summary: SerialPort Server makes your Device (Arduino, mbed...) WebServer.
180
+ test_files:
219
181
  - test/test_helper.rb
220
182
  - test/test_serialport-server.rb
data/.gemtest DELETED
File without changes
@@ -1,19 +0,0 @@
1
- History.txt
2
- Manifest.txt
3
- README.rdoc
4
- Rakefile
5
- script/console
6
- script/destroy
7
- script/generate
8
- test/test_helper.rb
9
- test/test_serialport-server.rb
10
- bin/serialport-server
11
- lib/serialport-server.rb
12
- sample/README.md
13
- sample/ajax/index.html
14
- sample/ajax/jquery.js
15
- sample/ajax/main.js
16
- sample/arduino/arduino.ino
17
- sample/websocket/index.html
18
- sample/websocket/jquery.js
19
- sample/websocket/main.js
@@ -1,46 +0,0 @@
1
- = serialport-server
2
-
3
- * http://shokai.github.com/serialport-server
4
-
5
- == DESCRIPTION:
6
-
7
- SerialPort Server makes your Device (Arduino, mbed...) WebServer. You can access SerialPort via HTTP, WebSocket and TCP Socket.
8
-
9
-
10
- == SYNOPSIS:
11
-
12
- % serialport-server --help
13
- % serialport-server /dev/tty.usb-device -http_port 8783 -websocket_prot 8784 -socket_port 8785
14
-
15
- == REQUIREMENTS:
16
-
17
- * USB Device (Arduino, mbed ...)
18
-
19
- == INSTALL:
20
-
21
- * gem install serialport-server
22
-
23
- == LICENSE:
24
-
25
- (The MIT License)
26
-
27
- Copyright (c) 2012 Sho Hashimoto
28
-
29
- Permission is hereby granted, free of charge, to any person obtaining
30
- a copy of this software and associated documentation files (the
31
- 'Software'), to deal in the Software without restriction, including
32
- without limitation the rights to use, copy, modify, merge, publish,
33
- distribute, sublicense, and/or sell copies of the Software, and to
34
- permit persons to whom the Software is furnished to do so, subject to
35
- the following conditions:
36
-
37
- The above copyright notice and this permission notice shall be
38
- included in all copies or substantial portions of the Software.
39
-
40
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
41
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
44
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
45
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
46
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # File: script/console
3
- irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
-
5
- libs = " -r irb/completion"
6
- # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
- # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
- libs << " -r #{File.dirname(__FILE__) + '/../lib/serialport-server.rb'}"
9
- puts "Loading serialport-server gem"
10
- exec "#{irb} #{libs} --simple-prompt"
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
-
4
- begin
5
- require 'rubigen'
6
- rescue LoadError
7
- require 'rubygems'
8
- require 'rubigen'
9
- end
10
- require 'rubigen/scripts/destroy'
11
-
12
- ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
- RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
- RubiGen::Scripts::Destroy.new.run(ARGV)
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
-
4
- begin
5
- require 'rubigen'
6
- rescue LoadError
7
- require 'rubygems'
8
- require 'rubigen'
9
- end
10
- require 'rubigen/scripts/generate'
11
-
12
- ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
- RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
- RubiGen::Scripts::Generate.new.run(ARGV)