rails_event_store 0.5.0 → 0.6.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: 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