em-sessions 0.1.0
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/.gitignore +10 -0
- data/Gemfile +9 -0
- data/README.md +1 -0
- data/Rakefile +2 -0
- data/em-sessions.gemspec +32 -0
- data/lib/em/sessions/client.rb +97 -0
- data/lib/em/sessions/version.rb +5 -0
- data/lib/em-sessions.rb +31 -0
- metadata +81 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: cd932cdfbbaf943d8a201f772dc89ec528a9bf78
|
|
4
|
+
data.tar.gz: 59beafbb43f9b6d5ec674948d745572563157b8f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e356b2f5fcecb04ea37335412d155658988fc4e3a7eaec929b213b594564d5ed2462d8c74bf7c4a565bb85812ef9fe311a6b977e67fc6ae559a1d09803dc6ea9
|
|
7
|
+
data.tar.gz: cace101473a09192002df209d1c31829a5c13130e4e9d6bbb0a25e98b00a4eb06e70b93e654acedf6db1f0e50f7fe67a0bd8e63d9e6a44308d110ee0345cf5ab
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Developing!
|
data/Rakefile
ADDED
data/em-sessions.gemspec
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'em/sessions/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "em-sessions"
|
|
8
|
+
spec.version = Em::Sessions::VERSION
|
|
9
|
+
spec.authors = ["millim"]
|
|
10
|
+
spec.email = ["237092624@qq.com"]
|
|
11
|
+
|
|
12
|
+
spec.summary = "rest-sessions ruby client"
|
|
13
|
+
spec.description = "about rest-sessions ruby client,use em-http-request"
|
|
14
|
+
spec.homepage = "https://github.com/millim"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
|
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
|
19
|
+
# if spec.respond_to?(:metadata)
|
|
20
|
+
# spec.metadata['allowed_push_host'] = "https://github.com/millim"
|
|
21
|
+
# else
|
|
22
|
+
# raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
|
23
|
+
# end
|
|
24
|
+
|
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
26
|
+
spec.bindir = "exe"
|
|
27
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
28
|
+
spec.require_paths = ["lib"]
|
|
29
|
+
|
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
32
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
module Em
|
|
3
|
+
module Sessions
|
|
4
|
+
class Client
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
attr_accessor :http_url, :app
|
|
8
|
+
|
|
9
|
+
def initialize(url, app)
|
|
10
|
+
if url.nil? || app.nil?
|
|
11
|
+
raise 'http_url is blank or app is blank!'
|
|
12
|
+
end
|
|
13
|
+
if url.strip.empty?
|
|
14
|
+
http_url = 'http://localhost:3000/'
|
|
15
|
+
else
|
|
16
|
+
http_url = url =~ /^https?\/\// ? url : "http://#{url}"
|
|
17
|
+
end
|
|
18
|
+
@app = app
|
|
19
|
+
@http_url = http_url =~ /\/$/ ? http_url[0..-2] : http_url
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create(id, out_time = 7200, ip = '0.0.0.0', app = nil)
|
|
23
|
+
app_name = get_app_name app
|
|
24
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/create/#{id}?ip=#{ip}&ttl=#{out_time}}
|
|
25
|
+
return run_em 'put', run_http_url
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def get_by_token(user_token, app = nil)
|
|
29
|
+
app_name = get_app_name app
|
|
30
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/get/#{ user_token }}
|
|
31
|
+
return run_em 'get', run_http_url
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def get_by_id(id, app = nil)
|
|
36
|
+
app_name = get_app_name app
|
|
37
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/soid/#{ id }}
|
|
38
|
+
return run_em 'get', run_http_url
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def delete_by_token(user_token, app = nil)
|
|
42
|
+
app_name = get_app_name app
|
|
43
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/kill/#{ user_token }}
|
|
44
|
+
return run_em 'delete', run_http_url
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def delete_by_id(id, app = nil)
|
|
48
|
+
app_name = get_app_name app
|
|
49
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/killsoid/#{ id }}
|
|
50
|
+
return run_em 'delete', run_http_url
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def delete_all(app = nil)
|
|
54
|
+
app_name = get_app_name app
|
|
55
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/killall}
|
|
56
|
+
return run_em 'delete', run_http_url
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def set_params_by_token(user_token, params = {}, app = nil)
|
|
60
|
+
app_name = get_app_name app
|
|
61
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/set/#{ user_token }}
|
|
62
|
+
return run_em 'post', run_http_url, { 'Content-Type'=>'application/json'}, params
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def activity?(seconds = 600, app = nil)
|
|
66
|
+
app_name = get_app_name app
|
|
67
|
+
run_http_url = %Q{#{@http_url}/#{app_name}/activity?dt=#{seconds}}
|
|
68
|
+
return run_em 'get', run_http_url
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
private
|
|
72
|
+
|
|
73
|
+
def get_app_name(app)
|
|
74
|
+
app.nil? ? @app : app
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def run_em(type, url, head = {}, body = {})
|
|
78
|
+
code = 0
|
|
79
|
+
return_string = ''
|
|
80
|
+
EventMachine.run {
|
|
81
|
+
http = EventMachine::HttpRequest.new(url).send type, head: head, body: body.to_json
|
|
82
|
+
http.errback { code = http.response_header.status; return_string = http.response;EM.stop }
|
|
83
|
+
http.callback { code = http.response_header.status; return_string = http.response;EventMachine.stop }
|
|
84
|
+
}
|
|
85
|
+
if code == 200
|
|
86
|
+
json = JSON.parse return_string
|
|
87
|
+
return 200, json
|
|
88
|
+
end
|
|
89
|
+
return code, json
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
end
|
|
97
|
+
end
|
data/lib/em-sessions.rb
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'em-http-request'
|
|
2
|
+
require 'em/sessions/version'
|
|
3
|
+
require 'em/sessions/client'
|
|
4
|
+
module Em
|
|
5
|
+
module Sessions
|
|
6
|
+
class << self
|
|
7
|
+
attr_reader :http_url, :client, :app
|
|
8
|
+
def init(http_url = 'localhost:3000', app = 'weapp')
|
|
9
|
+
@http_url ||= http_url
|
|
10
|
+
@app = app
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def client
|
|
14
|
+
raise 'Please run Em::Sessions.init(http_url, app) method' if @http_url.empty? && @app.empty?
|
|
15
|
+
@client ||= Client.new @http_url, @app
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def modify_url(url)
|
|
19
|
+
@http_url = url
|
|
20
|
+
@client = nil
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def modify_app(app)
|
|
24
|
+
@app = app
|
|
25
|
+
@client = nil
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: em-sessions
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- millim
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-05-17 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.12'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.12'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '10.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '10.0'
|
|
41
|
+
description: about rest-sessions ruby client,use em-http-request
|
|
42
|
+
email:
|
|
43
|
+
- 237092624@qq.com
|
|
44
|
+
executables: []
|
|
45
|
+
extensions: []
|
|
46
|
+
extra_rdoc_files: []
|
|
47
|
+
files:
|
|
48
|
+
- ".gitignore"
|
|
49
|
+
- Gemfile
|
|
50
|
+
- README.md
|
|
51
|
+
- Rakefile
|
|
52
|
+
- em-sessions.gemspec
|
|
53
|
+
- lib/em-sessions.rb
|
|
54
|
+
- lib/em/sessions/client.rb
|
|
55
|
+
- lib/em/sessions/version.rb
|
|
56
|
+
homepage: https://github.com/millim
|
|
57
|
+
licenses:
|
|
58
|
+
- MIT
|
|
59
|
+
metadata: {}
|
|
60
|
+
post_install_message:
|
|
61
|
+
rdoc_options: []
|
|
62
|
+
require_paths:
|
|
63
|
+
- lib
|
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - ">="
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '0'
|
|
74
|
+
requirements: []
|
|
75
|
+
rubyforge_project:
|
|
76
|
+
rubygems_version: 2.4.8
|
|
77
|
+
signing_key:
|
|
78
|
+
specification_version: 4
|
|
79
|
+
summary: rest-sessions ruby client
|
|
80
|
+
test_files: []
|
|
81
|
+
has_rdoc:
|