nexia_event_store 0.6.0 → 0.6.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc9b1f564f3ddc8e4d22914517f12d8cc6f53d02
4
- data.tar.gz: e1c77390b4b25728ed97aff1704aa1ecbfabf7c8
3
+ metadata.gz: 115b1bb8a9f14f799f97b9038cf9ae1ed8a9aacd
4
+ data.tar.gz: b1e31142a7fda060e2f4b2cd1a81a3c0cc8dc652
5
5
  SHA512:
6
- metadata.gz: 605f0b48862fd33d06ae738ed0be5c67c5a0bca60c0f02f4358f02017a81d98de7cc4400eec8e0acf03319d047012ae68e121b329b4c87b67450779631066d2f
7
- data.tar.gz: d52f66b078358357c0f8b86a30d81e2659e24a9da5114d1155f2f4034609b9eba1173f54376db965fac5aba347adc2cd5c2b0fae052d861da78680e76128b46b
6
+ metadata.gz: 46eac58f16227a98364a52a33c0c9d8f91c1dcbfd8047c52373e4a0d0ea131a6f16324a5ccd54b7c21d2781f6903b2c312dbba32ad951b55bdb1fe4cf2d72671
7
+ data.tar.gz: 1f6c50f1f137024ac13b1a683b68815ea34e7f833555a66624b9bb885f2917b96708d8f06749af111164756bd0822da0c16de56269703e914f7ea937a92f3385
@@ -38,22 +38,13 @@ module EventStore
38
38
 
39
39
  def last_event_before(start_time, fully_qualified_names = [])
40
40
  timestampz = start_time.strftime("%Y-%m-%d %H:%M:%S%z")
41
- names = fully_qualified_names.map { |n| "'#{n}'" }.join(',')
42
- last_event_before_query = <<-EOSQL
43
- SELECT * FROM
44
- (SELECT *, LAST_VALUE(occurred_at)
45
- OVER(PARTITION BY fully_qualified_name ORDER BY occurred_at
46
- ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as last
47
- FROM #{@event_table}
48
- WHERE aggregate_id = '#{@id}'
49
- AND fully_qualified_name IN (#{names})
50
- AND occurred_at < '#{timestampz}') AS subquery
51
- WHERE occurred_at = last
52
- ORDER BY occurred_at
53
- EOSQL
54
-
55
- query = EventStore.db[last_event_before_query]
56
- query.all.map {|e| e[:serialized_event] = EventStore.unescape_bytea(e[:serialized_event]); e}
41
+
42
+ rows = fully_qualified_names.inject([]) { |memo, name|
43
+ memo + events.where(fully_qualified_name: name).where{ occurred_at < timestampz }
44
+ .reverse_order(:occurred_at).limit(1).all
45
+ }.sort_by { |r| r[:occurred_at] }
46
+
47
+ rows.map {|r| r[:serialized_event] = EventStore.unescape_bytea(r[:serialized_event]); r}
57
48
  end
58
49
 
59
50
  def event_stream_between(start_time, end_time, fully_qualified_names = [])
@@ -1,3 +1,3 @@
1
1
  module EventStore
2
- VERSION = '0.6.0'
2
+ VERSION = '0.6.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexia_event_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Saieg, John Colvin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-20 00:00:00.000000000 Z
12
+ date: 2015-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -273,7 +273,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
273
273
  version: '0'
274
274
  requirements: []
275
275
  rubyforge_project:
276
- rubygems_version: 2.4.4
276
+ rubygems_version: 2.4.3
277
277
  signing_key:
278
278
  specification_version: 4
279
279
  summary: Ruby implementation of an EventSource (A+ES) for the Nexia Ecosystem