aggregate_root 0.4.0 → 0.15.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: e5827865ed26ac8902ec51ad07999dfe644a7e6a
4
- data.tar.gz: 85677640dc2d4062ab2e63e092db7a8afad77c9e
3
+ metadata.gz: febd2065a584498efd38815e15ef932c6e85f5e4
4
+ data.tar.gz: 149285e9f0f3f6c700349d21f3171bc15ae0db58
5
5
  SHA512:
6
- metadata.gz: 1c09676af689188c5a282b6a96197687eb209aeb7fb4120907845a12dea2cdafd5063b6802f77bd0515f41f9012f3a40b891b20d3ec834679ab6f77e4da74684
7
- data.tar.gz: 773e80cd3444a43139efdef6f0fb7df20e1db9d00c17abb19c9255d49396d49e11b51c527be6dc67c9212bcbbbeca6d58848304c5a02a9747658e66278c5f536
6
+ metadata.gz: db3ea233608ec7290a3b3b6c8f84e83f6d7a950bb9b5ba91394e51f2f49a943b551f98bab79d7d958f4873e056104dcc89ff0a13ba2e30c576d07a37b144cbf9
7
+ data.tar.gz: 1fd3f7a28739ea3e0ead978fbab1122660ba3fae8c3a6422c2f7f5a84c917600944f368bb93cd0e9e0aadff775a106e5e574e4981ffa813268a5f5d9c505e6c2
@@ -1,3 +1,5 @@
1
+ Further changes can be tracked at [releases page](https://github.com/RailsEventStore/rails_event_store/releases).
2
+
1
3
  ### 0.4.0 (28.10.2016)
2
4
 
3
5
  * Change: redesign whole gem from scratch making it easier to use
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
- gem 'codeclimate-test-reporter', group: :test, require: nil
3
+
4
+ gem 'ruby_event_store', path: '../ruby_event_store'
data/Makefile CHANGED
@@ -12,6 +12,10 @@ mutate: test ## Run mutation tests
12
12
  @echo "Running mutation tests - only 100% free mutation will be accepted"
13
13
  @bundle exec mutant --include lib --require aggregate_root --use rspec "AggregateRoot*"
14
14
 
15
+ release:
16
+ @rake build
17
+ @rake release:rubygem_push
18
+
15
19
  .PHONY: help
16
20
 
17
21
  help:
data/README.md CHANGED
@@ -1,9 +1,3 @@
1
- [![Build Status](https://travis-ci.org/arkency/aggregate_root.svg?branch=master)](https://travis-ci.org/arkency/aggregate_root)
2
- [![Gem Version](https://badge.fury.io/rb/aggregate_root.svg)](https://badge.fury.io/rb/aggregate_root)
3
- [![Code Climate](https://codeclimate.com/github/arkency/aggregate_root/badges/gpa.svg)](https://codeclimate.com/github/arkency/aggregate_root)
4
- [![Test Coverage](https://codeclimate.com/github/arkency/aggregate_root/badges/coverage.svg)](https://codeclimate.com/github/arkency/aggregate_root/coverage)
5
- [![Join the chat at https://gitter.im/arkency/rails_event_store](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/arkency/rails_event_store?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
6
-
7
1
  # AggregateRoot
8
2
 
9
3
  Event sourced (with Rails Event Store) aggregate root implementation.
@@ -128,25 +122,3 @@ There're already few blog posts about building an event sourced applications wit
128
122
  * [Testing an Event Sourced application](http://blog.arkency.com/2015/07/testing-event-sourced-application/)
129
123
  * [Testing Event Sourced application - the read side](http://blog.arkency.com/2015/09/testing-event-sourced-application-the-read-side/)
130
124
  * [One event to rule them all](http://blog.arkency.com/2016/01/one-event-to-rule-them-all/)
131
-
132
- # Contributing
133
-
134
- Check the contribution guide on [CONTRIBUTING.md](https://github.com/arkency/aggregate_root/blob/master/CONTRIBUTING.md)
135
-
136
- We're aiming for 100% mutation coverage in this project.
137
- Read the reasoning:
138
-
139
- [Why I want to introduce mutation testing to the rails_event_store gem](http://blog.arkency.com/2015/04/why-i-want-to-introduce-mutation-testing-to-the-rails-event-store-gem/)
140
-
141
- [Mutation testing and continuous integration](http://blog.arkency.com/2015/05/mutation-testing-and-continuous-integration/)
142
-
143
- In practice, it means that we run `make mutate` as part of the CI process.
144
- Whenever you fix a bug or add a new feature, we require that the coverage doesn't go down.
145
-
146
- ## About
147
-
148
- <img src="http://arkency.com/images/arkency.png" alt="Arkency" width="20%" align="left" />
149
-
150
- Rails Event Store is funded and maintained by Arkency. Check out our other [open-source projects](https://github.com/arkency).
151
-
152
- You can also [hire us](http://arkency.com) or [read our blog](http://blog.arkency.com).
@@ -24,8 +24,9 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'pry'
25
25
  spec.add_development_dependency 'rspec'
26
26
  spec.add_development_dependency 'rails', '~> 4.2.1'
27
- spec.add_development_dependency 'ruby_event_store', '~> 0.13.0'
28
- spec.add_development_dependency 'mutant-rspec', '~> 0.8'
27
+ spec.add_development_dependency 'ruby_event_store', '= 0.15.0'
28
+ spec.add_development_dependency 'mutant', '0.8.12'
29
+ spec.add_development_dependency 'mutant-rspec', '0.8.11'
29
30
 
30
31
  spec.add_dependency 'activesupport', '>= 3.0'
31
32
  end
@@ -1,8 +1,25 @@
1
1
  module AggregateRoot
2
+ MissingHandler = Class.new(StandardError)
3
+
2
4
  class DefaultApplyStrategy
5
+ def initialize(strict: true)
6
+ @strict = strict
7
+ end
8
+
3
9
  def call(aggregate, event)
4
- event_name_processed = event.class.name.demodulize.underscore
5
- aggregate.method("apply_#{event_name_processed}").call(event)
10
+ name = handler_name(event)
11
+ if aggregate.respond_to?(name, true)
12
+ aggregate.method(name).call(event)
13
+ else
14
+ raise MissingHandler.new("Missing handler method #{name} on aggregate #{aggregate.class}") if strict
15
+ end
16
+ end
17
+
18
+ private
19
+ attr_reader :strict
20
+
21
+ def handler_name(event)
22
+ "apply_#{event.class.name.demodulize.underscore}"
6
23
  end
7
24
  end
8
25
  end
@@ -1,3 +1,3 @@
1
1
  module AggregateRoot
2
- VERSION = '0.4.0'
2
+ VERSION = "0.15.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aggregate_root
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arkency
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-28 00:00:00.000000000 Z
11
+ date: 2017-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,30 +84,44 @@ dependencies:
84
84
  name: ruby_event_store
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.13.0
89
+ version: 0.15.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.13.0
96
+ version: 0.15.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: mutant
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 0.8.12
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.8.12
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: mutant-rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - "~>"
115
+ - - '='
102
116
  - !ruby/object:Gem::Version
103
- version: '0.8'
117
+ version: 0.8.11
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - "~>"
122
+ - - '='
109
123
  - !ruby/object:Gem::Version
110
- version: '0.8'
124
+ version: 0.8.11
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: activesupport
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -129,12 +143,8 @@ executables: []
129
143
  extensions: []
130
144
  extra_rdoc_files: []
131
145
  files:
132
- - ".gitignore"
133
- - ".travis.yml"
134
146
  - CHANGELOG.md
135
- - CONTRIBUTING.md
136
147
  - Gemfile
137
- - LICENSE
138
148
  - Makefile
139
149
  - README.md
140
150
  - Rakefile
@@ -163,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
173
  version: '0'
164
174
  requirements: []
165
175
  rubyforge_project:
166
- rubygems_version: 2.6.7
176
+ rubygems_version: 2.6.11
167
177
  signing_key:
168
178
  specification_version: 4
169
179
  summary: Event sourced (with Rails Event Store) aggregate root implementation
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
@@ -1,13 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.10
4
- - 2.2.5
5
- - 2.3.1
6
- before_install: gem install bundler
7
- gemfile: Gemfile
8
- script: make mutate
9
- env:
10
- - CODECLIMATE_REPO_TOKEN=3af5c60b54fff033bf0dc1af4f26762647bcf3b78268a94d67ea9530b5b52a61
11
- notifications:
12
- slack:
13
- secure: CFijr8ytPJGA5PqjABHTamy1b5YE0IoneBw0TemEFfatN4IYiTxRnItSmZDfVmgQLhK8EH5599j3cCsMPaC11Z10VKTCxZoxiLBJLmeVpAWPqTNL6MnHFSZ3ls/d5LkKCcbWlRKvqZpvtUW+PI7FuEWRT9ok/i1iabR5AwO1vwldKfcKgZII3PErDxIKzfIAQL45hVJsvkoTNPL0aOYnvtE6qBglCxJX6TcwAe7gwo+r6se/X0wI5gLGHz+t9NmH2PjEbG2iJ3YbrwXkAElI8TG3O4D9yUs7OaJ2yYDFs+oxseY4XwvKQtdKeu9QiFfexivLjB8FfUtgTlfmELbQ8bd3wltGxXjOdbGhR1bTHXiMtxwCJ8bB7hiDZFrYkpFn+vjmP/raXoD3o25GfEBE5dFtlm6ad+d+2rGpo9frbD3gQFYtx9LLEac2CkhCMoHAtsT3K6WqZ3VbvfG9K5iIhoGjLd3iWqsjZmFRSTrSdMskTwgochH6rx9UX1/p0MSPZ8gye7nAFMVkCoytogqJT9PAOPR+z7BfZHiD86UL+8LUrr1WneELJJDFgVZXdAV526mw/+6gsnNobj19PW4Ckgsxcz8kTzpepbmsFGGvFy6lIpIHdH8zvbOgIQlfaeLm/XQuvaudaqUtJzrNUskvon6B/f78CHV2zdUZWgCYIO0=
@@ -1,27 +0,0 @@
1
- # Contributing to AggregateRoot
2
-
3
- Any kind of contribution is welcomed. Here is a few guidelines that we need contributors to follow.
4
-
5
- ## Found a bug? Have a question?
6
-
7
- * [Create a new issue](https://github.com/arkency/aggregate_root/issues/new), assuming one does not already exist.
8
- * Clearly describe the issue including steps to reproduce when it is a bug.
9
- * If possible provide a Pull Request with failing test case.
10
-
11
- ## Getting Started
12
-
13
- * Make sure you have a [GitHub account](https://github.com/signup/free).
14
- * [Fork the repository](https://help.github.com/articles/fork-a-repo/) on GitHub.
15
-
16
- ## Making Changes
17
-
18
- * Create a feature branch from where you want to base your work.
19
- * Do your work. Please try to keep your commits small and focused.
20
- * Make sure you have added the necessary tests for your changes.
21
- * Push your changes to a feature branch in your fork of the repository.
22
- * Submit a pull request to the AggregateRoot repository.
23
-
24
- # Additional Resources
25
-
26
- * [General GitHub documentation](http://help.github.com/)
27
- * [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2015 Arkency
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
22
-