em-midori 0.1.4.1 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/em-midori.rb +1 -0
- data/lib/em-midori/core_ext/promise.rb +2 -2
- data/lib/em-midori/core_ext/safe_require.rb +9 -0
- data/lib/em-midori/extension/postgres.rb +10 -4
- data/lib/em-midori/extension/sequel.rb +14 -0
- data/lib/em-midori/version.rb +1 -1
- metadata +4 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f432595f5783ebce17b63e45e546d7875c62202f
|
4
|
+
data.tar.gz: 7a1b441d9baa8c203fd588bd95c92ad2cc3a39dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 479fe680e641aab68cc929be341745bfc1a505774a554b2f8590253add2a25441f011ab88ad6a1f10f07016a7613196d660262bf1467a5a8f5a9e12c8c23cf67
|
7
|
+
data.tar.gz: 22714ec1d12f80e3dc2de87e8b1265e9391ae71f9cb0dccd92cd585f835c3b54f4efb5dcd4e4f328a1637f781568c5a5ecb2b5e6032a527a8296a64ae05bf6d3
|
data/lib/em-midori.rb
CHANGED
@@ -13,6 +13,7 @@ require_relative 'em-midori/core_ext/promise'
|
|
13
13
|
require_relative 'em-midori/core_ext/promise_exception'
|
14
14
|
require_relative 'em-midori/core_ext/define_class'
|
15
15
|
require_relative 'em-midori/core_ext/proc'
|
16
|
+
require_relative 'em-midori/core_ext/safe_require'
|
16
17
|
|
17
18
|
require_relative 'em-midori/version'
|
18
19
|
require_relative 'em-midori/const'
|
@@ -18,11 +18,11 @@ end
|
|
18
18
|
|
19
19
|
class DeferPromise < Promise
|
20
20
|
def initialize(deffered)
|
21
|
-
super(->(resolve,
|
21
|
+
super(->(resolve, _reject){
|
22
22
|
EventMachine.defer(proc {
|
23
23
|
begin
|
24
24
|
deffered.call
|
25
|
-
rescue
|
25
|
+
rescue StandardError => e
|
26
26
|
PromiseException.new(e)
|
27
27
|
end
|
28
28
|
}, proc { |result| resolve.call(result) })
|
@@ -1,11 +1,17 @@
|
|
1
|
+
safe_require 'postgres-pr/message', 'gem install postgres-pr'
|
2
|
+
|
1
3
|
class Midori::Postgres
|
4
|
+
attr_reader :connected
|
5
|
+
|
2
6
|
def initialize(*args)
|
7
|
+
@connected = false
|
3
8
|
@db = EM.connect(*args, EM::P::Postgres3)
|
4
9
|
end
|
5
10
|
|
6
11
|
def connect(db_name, username, password)
|
7
12
|
await(Promise.new(->(resolve, _reject) {
|
8
13
|
@db.connect(db_name, username, password).callback do |status|
|
14
|
+
@connected = status
|
9
15
|
resolve.call(status)
|
10
16
|
end
|
11
17
|
}))
|
@@ -15,7 +21,8 @@ class Midori::Postgres
|
|
15
21
|
await(Promise.new(->(resolve, _reject) {
|
16
22
|
begin
|
17
23
|
@db.query(sql).callback do |status, result, errors|
|
18
|
-
|
24
|
+
@connected = status
|
25
|
+
resolve.call(Midori::Postgres::Result.new(result, errors))
|
19
26
|
end
|
20
27
|
end
|
21
28
|
}))
|
@@ -23,9 +30,8 @@ class Midori::Postgres
|
|
23
30
|
end
|
24
31
|
|
25
32
|
class Midori::Postgres::Result
|
26
|
-
attr_reader :
|
27
|
-
def initialize(
|
28
|
-
@status = status
|
33
|
+
attr_reader :result, :errors
|
34
|
+
def initialize(result, errors)
|
29
35
|
@result = result
|
30
36
|
@errors = errors
|
31
37
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
safe_require 'sequel', 'gem install sequel'
|
2
|
+
require 'sequel/adapters/postgres'
|
3
|
+
|
4
|
+
module Sequel
|
5
|
+
module Postgres
|
6
|
+
class Adapter < ::PGconn
|
7
|
+
def execute_query(sql, args)
|
8
|
+
@db.log_connection_yield(sql, self, args) do
|
9
|
+
args ? await(defer{async_exec(sql, args)}) : await(defer{async_exec(sql)})
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/em-midori/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: em-midori
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HeckPsi Lab
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.4'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: postgres-pr
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.7'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0.7'
|
69
55
|
description: EM Midori is an EventMachine-based Web Framework written in pure Ruby,
|
70
56
|
providing high performance and proper abstraction.
|
71
57
|
email: business@heckpsi.com
|
@@ -86,11 +72,13 @@ files:
|
|
86
72
|
- lib/em-midori/core_ext/proc.rb
|
87
73
|
- lib/em-midori/core_ext/promise.rb
|
88
74
|
- lib/em-midori/core_ext/promise_exception.rb
|
75
|
+
- lib/em-midori/core_ext/safe_require.rb
|
89
76
|
- lib/em-midori/core_ext/string.rb
|
90
77
|
- lib/em-midori/eventsource.rb
|
91
78
|
- lib/em-midori/exception.rb
|
92
79
|
- lib/em-midori/extension/file.rb
|
93
80
|
- lib/em-midori/extension/postgres.rb
|
81
|
+
- lib/em-midori/extension/sequel.rb
|
94
82
|
- lib/em-midori/middleware.rb
|
95
83
|
- lib/em-midori/request.rb
|
96
84
|
- lib/em-midori/response.rb
|