rails_event_store 0.5.0 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc93d3b8eb2fe3d40a0b2918f4a597600c70d53c
4
- data.tar.gz: 4eee36757eaad1a0663e456dca44050c8f16a3b9
3
+ metadata.gz: 7fcb48b25744c5f50cde8d3a00322ab3cd4a86cd
4
+ data.tar.gz: e2604f6b1b50c0634052a641ac96864c87d58637
5
5
  SHA512:
6
- metadata.gz: fc84c07137a6395b0bc3e74ea676d9b35ca19fb9ba452031120bbcf51b2fb417812f02978c7c45fac0e9e65db3f6e024483883ff0f75124c2a83555d0d2baa65
7
- data.tar.gz: 8824836bd934e712b3ba724e1b2235b0c1e93d74d02b1ba409bf687d70603675f1e610763549dca269079a4d5f01731f69b2b48749e44da709fac57fce989d37
6
+ metadata.gz: 88296f59b7700f534ba5d36e48732fd1b6598a047c9f652361e744c8981c3bec0ae22ba35cc8ea5530cebaccacb69ff2145a29c1ace1ea54ec5c033fcc8b07d2
7
+ data.tar.gz: b68122fb0239b1e5a02afdb392810775bd4a3bab9cc005bb8e8e8876c48402c9cbe88514a43c89df6128b8959a4d230296e52d471754f9fc3888c6c82f762aa5
@@ -1,8 +1,11 @@
1
- ### HEAD
1
+ ### 0.6.0 (11.04.2016)
2
+
3
+ * Change: EventRepository moved to separate gem [rails_event_store_active_record](http://github.com/arkency/rails_event_store_active_record)
4
+ * Change: rails_event_store_active_record updated to version 0.5.1 - allows to use custom event class
2
5
 
3
6
  ### 0.5.0 (21.03.2016)
4
7
 
5
- * Align with cnages in `ruby_event_store` 0.5.0:
8
+ * Align with changes in `ruby_event_store` 0.5.0:
6
9
  * Change: Event class refactoring to make default values more explicit
7
10
  * Change: Let event broker to be given as a dependency
8
11
  * Change: No nils, use symbols instead - :any & :none replaced meaningless nil value
data/README.md CHANGED
@@ -6,7 +6,8 @@
6
6
 
7
7
  # EventStore
8
8
 
9
- A Ruby implementation of an EventStore based on Active Record.
9
+ A Ruby implementation of an EventStore.
10
+ Default storage is events repository based on Active Record (provided by separate gem: [rails_event_store_active_record](http://github.com/arkency/rails_event_store_active_record)).
10
11
 
11
12
  ## Installation
12
13
 
@@ -19,7 +20,7 @@ gem 'rails_event_store'
19
20
  * Use provided task to generate a table to store events in you DB.
20
21
 
21
22
  ```ruby
22
- rails generate rails_event_store:migrate
23
+ rails generate rails_event_store_active_record:migration
23
24
  rake db:migrate
24
25
  ```
25
26
 
@@ -1,4 +1,5 @@
1
1
  require 'ruby_event_store'
2
+ require 'rails_event_store_active_record'
2
3
 
3
4
  module RailsEventStore
4
5
  Event = RubyEventStore::Event
@@ -6,12 +7,7 @@ module RailsEventStore
6
7
  EventBroker = RubyEventStore::PubSub::Broker
7
8
  end
8
9
 
9
- require 'rails_event_store/models/event'
10
- require 'rails_event_store/generators/migrate_generator'
11
- require 'rails_event_store/generators/templates/migration_template'
12
10
  require 'rails_event_store/version'
13
- require 'rails_event_store/repositories/event_repository'
14
11
  require 'rails_event_store/event_handlers/slack_event_handler'
15
- require 'rails_event_store/errors'
16
12
  require 'rails_event_store/client'
17
13
  require 'rails_event_store/constants'
@@ -1,7 +1,7 @@
1
1
  module RailsEventStore
2
2
  class Client
3
3
 
4
- def initialize(repository: Repositories::EventRepository.new,
4
+ def initialize(repository: RailsEventStoreActiveRecord::EventRepository.new,
5
5
  event_broker: EventBroker.new,
6
6
  page_size: PAGE_SIZE)
7
7
  @repository = repository
@@ -1,4 +1,4 @@
1
1
  module RailsEventStore
2
- GLOBAL_STREAM = 'all'.freeze
2
+ GLOBAL_STREAM = RubyEventStore::GLOBAL_STREAM
3
3
  PAGE_SIZE = 100.freeze
4
4
  end
@@ -1,3 +1,3 @@
1
1
  module RailsEventStore
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'sqlite3'
28
28
 
29
29
  spec.add_dependency 'ruby_event_store', '~> 0.5.0'
30
+ spec.add_dependency 'rails_event_store_active_record', '~> 0.5.1'
30
31
  spec.add_dependency 'aggregate_root', '~> 0.2.1'
31
32
  spec.add_dependency 'activesupport', '>= 3.0'
32
33
  spec.add_dependency 'activemodel', '>= 3.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_event_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rybex
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-03-21 00:00:00.000000000 Z
12
+ date: 2016-04-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -123,6 +123,20 @@ dependencies:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
125
  version: 0.5.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: rails_event_store_active_record
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 0.5.1
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 0.5.1
126
140
  - !ruby/object:Gem::Dependency
127
141
  name: aggregate_root
128
142
  requirement: !ruby/object:Gem::Requirement
@@ -183,12 +197,7 @@ files:
183
197
  - lib/rails_event_store.rb
184
198
  - lib/rails_event_store/client.rb
185
199
  - lib/rails_event_store/constants.rb
186
- - lib/rails_event_store/errors.rb
187
200
  - lib/rails_event_store/event_handlers/slack_event_handler.rb
188
- - lib/rails_event_store/generators/migrate_generator.rb
189
- - lib/rails_event_store/generators/templates/migration_template.rb
190
- - lib/rails_event_store/models/event.rb
191
- - lib/rails_event_store/repositories/event_repository.rb
192
201
  - lib/rails_event_store/version.rb
193
202
  - rails_event_store.gemspec
194
203
  homepage: https://github.com/arkency/rails_event_store
@@ -1,3 +0,0 @@
1
- module RailsEventStore
2
- EventCannotBeSaved = Class.new(StandardError)
3
- end
@@ -1,18 +0,0 @@
1
- require 'rails/generators'
2
-
3
- module RailsEventStore
4
- class MigrateGenerator < Rails::Generators::Base
5
- source_root File.expand_path(File.join(File.dirname(__FILE__), '../generators/templates'))
6
-
7
- def create_migration
8
- template "migration_template.rb", "db/migrate/#{timestamp}_create_events_table.rb"
9
- end
10
-
11
- private
12
-
13
- def timestamp
14
- Time.now.strftime("%Y%m%d%H%M%S")
15
- end
16
-
17
- end
18
- end
@@ -1,19 +0,0 @@
1
- class CreateEventsTable < ActiveRecord::Migration
2
-
3
- def self.up
4
- create_table(:event_store_events) do |t|
5
- t.string :stream, null: false
6
- t.string :event_type, null: false
7
- t.string :event_id, null: false
8
- t.text :metadata
9
- t.text :data, null: false
10
- t.datetime :created_at, null: false
11
- end
12
- add_index :event_store_events, :stream
13
- add_index :event_store_events, :event_id, unique: true
14
- end
15
-
16
- def self.down
17
- drop_table :event_store_events
18
- end
19
- end
@@ -1,12 +0,0 @@
1
- require 'active_record'
2
-
3
- module RailsEventStore
4
- module Models
5
- class Event < ::ActiveRecord::Base
6
- self.primary_key = :id
7
- self.table_name = 'event_store_events'
8
- serialize :metadata
9
- serialize :data
10
- end
11
- end
12
- end
@@ -1,101 +0,0 @@
1
- module RailsEventStore
2
- module Repositories
3
- class EventRepository
4
-
5
- def initialize
6
- @adapter = ::RailsEventStore::Models::Event
7
- end
8
- attr_reader :adapter
9
-
10
- def create(event, stream_name)
11
- data = event.to_h.merge!(stream: stream_name, event_type: event.class.name)
12
- adapter.create(data)
13
- event
14
- end
15
-
16
- def delete_stream(stream_name)
17
- condition = {stream: stream_name}
18
- adapter.destroy_all condition
19
- nil
20
- end
21
-
22
- def has_event?(event_id)
23
- adapter.exists?(event_id: event_id)
24
- end
25
-
26
- def last_stream_event(stream_name)
27
- build_event_entity(adapter.where(stream: stream_name).last)
28
- end
29
-
30
- def get_all_events
31
- adapter.order('id ASC').order('stream').all.map(&method(:build_event_entity))
32
- end
33
-
34
- def read_events_forward(stream_name, start_event_id, count)
35
- stream = adapter.where(stream: stream_name)
36
- unless start_event_id.equal?(:head)
37
- starting_event = adapter.find_by(event_id: start_event_id)
38
- stream = stream.where('id > ?', starting_event.id)
39
- end
40
-
41
- stream.order('id ASC').limit(count)
42
- .map(&method(:build_event_entity))
43
- end
44
-
45
- def read_events_backward(stream_name, start_event_id, count)
46
- stream = adapter.where(stream: stream_name)
47
- unless start_event_id.equal?(:head)
48
- starting_event = adapter.find_by(event_id: start_event_id)
49
- stream = stream.where('id < ?', starting_event.id)
50
- end
51
-
52
- stream.order('id DESC').limit(count)
53
- .map(&method(:build_event_entity))
54
- end
55
-
56
- def read_stream_events_forward(stream_name)
57
- adapter.where(stream: stream_name).order('id ASC')
58
- .map(&method(:build_event_entity))
59
- end
60
-
61
- def read_stream_events_backward(stream_name)
62
- adapter.where(stream: stream_name).order('id DESC')
63
- .map(&method(:build_event_entity))
64
- end
65
-
66
- def read_all_streams_forward(start_event_id, count)
67
- stream = adapter
68
- unless start_event_id.equal?(:head)
69
- starting_event = adapter.find_by(event_id: start_event_id)
70
- stream = stream.where('id > ?', starting_event.id)
71
- end
72
-
73
- stream.order('id ASC').limit(count)
74
- .map(&method(:build_event_entity))
75
- end
76
-
77
- def read_all_streams_backward(start_event_id, count)
78
- stream = adapter
79
- unless start_event_id.equal?(:head)
80
- starting_event = adapter.find_by(event_id: start_event_id)
81
- stream = stream.where('id < ?', starting_event.id)
82
- end
83
-
84
- stream.order('id DESC').limit(count)
85
- .map(&method(:build_event_entity))
86
- end
87
-
88
- private
89
-
90
- def build_event_entity(record)
91
- return nil unless record
92
- record.event_type.constantize.new(
93
- record.data.merge(
94
- event_id: record.event_id,
95
- metadata: record.metadata
96
- )
97
- )
98
- end
99
- end
100
- end
101
- end