evt-event_source-postgres 0.12.1.1 → 0.13.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b46187f05253e8212ff186ad05a8abbc3dca713
4
- data.tar.gz: d2f17eddaf8845b2480b026bb7f10fe28c4dda7d
3
+ metadata.gz: bcc6eb15d8ed107da6ccd448e0be92c6f93d1cc7
4
+ data.tar.gz: bf794d6b3d1ffe7c8f514fec02d38e7cca63645d
5
5
  SHA512:
6
- metadata.gz: f78fb4d3182f54385e4a9356d3c2f3d235c16f45f843fc471761c20a6367cbd0d79c7af0cbe5231af4b38649422b9e184fe74abe2eddf112798bdc961b357c54
7
- data.tar.gz: 5b58dcaf4cde0d8b5831cd0c0d64567c9572b05e02f7bb43af24f5d40075463075861f861a984e466cf79349671e2eb34d2bc4359ba39a07bccd2fa53c2a6d21
6
+ metadata.gz: 22637fcf20e69a19a7b933adec20b0ffc6626abd1319507bbf68f70ba125553beed71ce1f295798e8f0aa1ef22eaff42ac4dd53173a6a54375be08880421c069
7
+ data.tar.gz: 215c302408bab981a768fec5a3baf8511e3fbec22346dfbf7bcab5be31b7acd0672c322d7651d17bff1357a269d03b57c7c091b247014cced6b71282719b8242
@@ -1,21 +1,21 @@
1
1
  module EventSource
2
2
  module Postgres
3
3
  class Get
4
- include Log::Dependency
4
+ include EventSource::Get
5
5
 
6
- initializer :batch_size, :precedence
6
+ initializer :batch_size
7
7
 
8
8
  dependency :session, Session
9
9
 
10
- def self.build(batch_size: nil, precedence: nil, session: nil)
11
- new(batch_size, precedence).tap do |instance|
10
+ def self.build(batch_size: nil, session: nil)
11
+ new(batch_size).tap do |instance|
12
12
  instance.configure(session: session)
13
13
  end
14
14
  end
15
15
 
16
- def self.configure(receiver, attr_name: nil, position: nil, batch_size: nil, precedence: nil, session: nil)
16
+ def self.configure(receiver, attr_name: nil, position: nil, batch_size: nil, session: nil)
17
17
  attr_name ||= :get
18
- instance = build(batch_size: batch_size, precedence: precedence, session: session)
18
+ instance = build(batch_size: batch_size, session: session)
19
19
  receiver.public_send "#{attr_name}=", instance
20
20
  end
21
21
 
@@ -23,32 +23,32 @@ module EventSource
23
23
  Session.configure self, session: session
24
24
  end
25
25
 
26
- def self.call(stream_name, position: nil, batch_size: nil, precedence: nil, session: nil)
27
- instance = build(batch_size: batch_size, precedence: precedence, session: session)
26
+ def self.call(stream_name, position: nil, batch_size: nil, session: nil)
27
+ instance = build(batch_size: batch_size, session: session)
28
28
  instance.(stream_name, position: position)
29
29
  end
30
30
 
31
31
  def call(stream_name, position: nil)
32
- logger.trace { "Getting event data (Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect}, Precedence: #{precedence.inspect})" }
32
+ logger.trace { "Getting event data (Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect})" }
33
33
 
34
34
  records = get_records(stream_name, position)
35
35
 
36
36
  events = convert(records)
37
37
 
38
- logger.info { "Finished getting event data (Count: #{events.length}, Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect}, Precedence: #{precedence.inspect})" }
38
+ logger.info { "Finished getting event data (Count: #{events.length}, Position: #{position.inspect}, Stream Name: #{stream_name}, Batch Size: #{batch_size.inspect})" }
39
39
  logger.info(tags: [:data, :event_data]) { events.pretty_inspect }
40
40
 
41
41
  events
42
42
  end
43
43
 
44
44
  def get_records(stream_name, position)
45
- logger.trace { "Getting records (Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect}, Precedence: #{precedence.inspect})" }
45
+ logger.trace { "Getting records (Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect})" }
46
46
 
47
- select_statement = SelectStatement.build(stream_name, offset: position, batch_size: batch_size, precedence: precedence)
47
+ select_statement = SelectStatement.build(stream_name, position: position, batch_size: batch_size)
48
48
 
49
49
  records = session.execute(select_statement.sql)
50
50
 
51
- logger.debug { "Finished getting records (Count: #{records.ntuples}, Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect}, Precedence: #{precedence.inspect})" }
51
+ logger.debug { "Finished getting records (Count: #{records.ntuples}, Stream: #{stream_name}, Position: #{position.inspect}, Batch Size: #{batch_size.inspect})" }
52
52
 
53
53
  records
54
54
  end
@@ -4,20 +4,16 @@ module EventSource
4
4
  class SelectStatement
5
5
  include Log::Dependency
6
6
 
7
- initializer :stream, w(:offset), w(:batch_size), w(:precedence)
7
+ initializer :stream, w(:position), w(:batch_size)
8
8
 
9
- def offset
10
- @offset ||= Defaults.offset
9
+ def position
10
+ @position ||= Defaults.position
11
11
  end
12
12
 
13
13
  def batch_size
14
14
  @batch_size ||= Defaults.batch_size
15
15
  end
16
16
 
17
- def precedence
18
- @precedence ||= Defaults.precedence
19
- end
20
-
21
17
  def stream_name
22
18
  stream.name
23
19
  end
@@ -26,13 +22,13 @@ module EventSource
26
22
  stream.type
27
23
  end
28
24
 
29
- def self.build(stream_name, offset: nil, batch_size: nil, precedence: nil)
25
+ def self.build(stream_name, position: nil, batch_size: nil)
30
26
  stream = Stream.new(stream_name)
31
- new(stream, offset, batch_size, precedence)
27
+ new(stream, position, batch_size)
32
28
  end
33
29
 
34
30
  def sql
35
- logger.trace(tag: :sql) { "Composing select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{offset}, Batch Size: #{batch_size}, Precedence: #{precedence})" }
31
+ logger.trace(tag: :sql) { "Composing select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{position}, Batch Size: #{batch_size})" }
36
32
 
37
33
  statement = <<-SQL
38
34
  SELECT
@@ -47,17 +43,16 @@ module EventSource
47
43
  FROM
48
44
  events
49
45
  WHERE
50
- #{where_clause_field} = '#{stream_name}'
46
+ #{where_clause_field} = '#{stream_name}' AND
47
+ #{position_field} >= #{position}
51
48
  ORDER BY
52
- global_position #{precedence.to_s.upcase}
49
+ #{position_field} ASC
53
50
  LIMIT
54
51
  #{batch_size}
55
- OFFSET
56
- #{offset}
57
52
  ;
58
53
  SQL
59
54
 
60
- logger.debug(tag: :sql) { "Composed select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{offset}, Batch Size: #{batch_size}, Precedence: #{precedence})" }
55
+ logger.debug(tag: :sql) { "Composed select statement (Stream: #{stream_name}, Category: #{stream.category?}, Type: #{stream_type}, Position: #{position}, Batch Size: #{batch_size})" }
61
56
  logger.debug(tags: [:data, :sql]) { "Statement: #{statement}" }
62
57
 
63
58
  statement
@@ -71,18 +66,22 @@ module EventSource
71
66
  end
72
67
  end
73
68
 
69
+ def position_field
70
+ unless stream.category?
71
+ 'position'
72
+ else
73
+ 'global_position'
74
+ end
75
+ end
76
+
74
77
  module Defaults
75
- def self.offset
78
+ def self.position
76
79
  0
77
80
  end
78
81
 
79
82
  def self.batch_size
80
83
  1000
81
84
  end
82
-
83
- def self.precedence
84
- :asc
85
- end
86
85
  end
87
86
  end
88
87
  end
@@ -3,8 +3,8 @@ module EventSource
3
3
  class Read
4
4
  include EventSource::Read
5
5
 
6
- def configure(batch_size: nil, precedence: nil, session: nil)
7
- Get.configure(self, batch_size: batch_size, precedence: precedence, session: session)
6
+ def configure(batch_size: nil, session: nil)
7
+ Get.configure(self, batch_size: batch_size, session: session)
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-event_source-postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1.1
4
+ version: 0.13.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-25 00:00:00.000000000 Z
11
+ date: 2017-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-event_source