oversip-mod-postgresql 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -83,6 +83,22 @@ rescue ::PG::Error => e
83
83
  end
84
84
  ```
85
85
 
86
+ ## Notes
87
+
88
+ ### SQL queries in events others than OverSIP provides
89
+
90
+ If you want to place a SQL query within an event different than those provided by OverSIP (i.e. within a EventMachine `add_timer` or `next_tick` callback) then you need to create a Fiber and place the SQL query there (otherwise "can't yield from root fiber" error will occur):
91
+
92
+ ```
93
+ EM.add_periodic_timer(2) do
94
+ Fiber.new do
95
+ pool = OverSIP::M::Postgresql.pool(:my_db)
96
+ rows = pool.query "SELECT * FROM users"
97
+ log_info "online users: #{rows.inspect}"
98
+ end
99
+ end
100
+ ```
101
+
86
102
 
87
103
  ## Dependencies
88
104
 
@@ -18,6 +18,9 @@ module OverSIP
18
18
  def self.add_pool options
19
19
  raise ::ArgumentError, "`options' must be a Hash" unless options.is_a? ::Hash
20
20
 
21
+ # Avoid the hash to be modified internally.
22
+ options = options.clone
23
+ # Delete options not existing in pg.
21
24
  pool_name = options.delete(:pool_name)
22
25
  pool_size = options.delete(:pool_size) || DEFAULT_POOL_SIZE
23
26
 
@@ -30,11 +33,11 @@ module OverSIP
30
33
  log_info "Adding PostgreSQL connection pool (name: #{pool_name.inspect}, size: #{pool_size})..."
31
34
  @pools[pool_name] = ::EM::Synchrony::ConnectionPool.new(size: pool_size) do
32
35
  # Avoid the hash to be modified by PG::EM::Client.
33
- new_options = options.clone
36
+ options = options.clone
34
37
  # Force DB autoreconnect.
35
- new_options[:async_autoreconnect] = true
38
+ options[:async_autoreconnect] = true
36
39
 
37
- conn = ::PG::EM::Client.new(new_options)
40
+ conn = ::PG::EM::Client.new(options)
38
41
 
39
42
  # Call the given block by passing conn as argument.
40
43
  block.call(conn) if block
@@ -5,7 +5,7 @@ module OverSIP
5
5
  module Version
6
6
  MAJOR = 0
7
7
  MINOR = 1
8
- TINY = 0
8
+ TINY = 1
9
9
  DEVEL = nil # Set to nil for stable releases.
10
10
  end
11
11
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oversip-mod-postgresql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-04 00:00:00.000000000 Z
12
+ date: 2013-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: oversip
16
- requirement: &15205740 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 1.3.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *15205740
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.3.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: em-pg-client
27
- requirement: &15205280 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: 0.2.1
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *15205280
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.2.1
36
46
  description: oversip-mod-postgresql provides an easy to use PostgreSQL connector for
37
47
  OverSIP proxy.
38
48
  email:
@@ -66,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
76
  version: '0'
67
77
  requirements: []
68
78
  rubyforge_project:
69
- rubygems_version: 1.8.11
79
+ rubygems_version: 1.8.23
70
80
  signing_key:
71
81
  specification_version: 3
72
82
  summary: PostgreSQL connector module for OverSIP