ruby_dci 0.3.0 → 0.3.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: a61a836ec90dab9c17d7f88cfd866ac24fd7e4ca
4
- data.tar.gz: 892f6b68acb2b87b6ef653c6c19860b3eac95c37
3
+ metadata.gz: 00d17d0700821ae02fcf4bfa8e2fa46bf713d38c
4
+ data.tar.gz: b2931d80ea9c5fd4cf12a328114cd8aafc0f0c2a
5
5
  SHA512:
6
- metadata.gz: 3f81879bf07b9d8d4c335f9e7c53783edaf19d0cc3e1f0b6abf5f26d11edd3f696bfacd017925778f9d7b7fb93abc3258af419e27481f7cb5d0689e8c7430277
7
- data.tar.gz: 888c5768b1f5c9d35454173eb91103ce3ad40914cb39f99e22b4898190e3b084fd033f3703d16b5eb725f39cc79ad03fc9c3be6ae2b40cafb06b663d2b74c89b
6
+ metadata.gz: a04ba34b06eb1b6b375208bd765c7646bffc8e6ca8556dfc632a7d730588164ed1a7473edc1e54ad34aa52eadd6ab712b76f6b430518632fcbe16755cafeb6d5
7
+ data.tar.gz: eb0ffa060140214a3914194f1edb2222b5785505c059c07779bf1b07af8c85b826b31d0391b62611905c44970a10b0b0249fea1e0e89e0601261d30b36ba2b2d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.3.1 (2018-05-25)
2
+
3
+ Features:
4
+
5
+ - Cleaned up gemspec to only include needed files.
6
+ - Applied some more rubocop rules.
7
+
1
8
  ## 0.3.0 (2018-05-24)
2
9
 
3
10
  Features:
@@ -5,12 +12,6 @@ Features:
5
12
  - Renamed `DCI::Configuration` accessors. `event_routes` is now `routes`, `route_methods` is now `router`, `raise_in_event_router` is now `raise_in_router`.
6
13
  - `events` is not an instance variable defined in the context anymore, but has the same access style like the `context` itself. In the role don't push events to `context.events`, but to `context_events`.
7
14
 
8
- Bugfixes:
9
-
10
- - Added specs
11
- - Added `README.md`
12
- - Added `CHANGELOG.md`
13
-
14
15
  ## 0.2.0 (2018-05-19)
15
16
 
16
17
  Features:
data/lib/dci/context.rb CHANGED
@@ -14,10 +14,10 @@ module DCI
14
14
  module InstanceMethods
15
15
 
16
16
  def perform_in_transaction
17
- old_context = context
17
+ old_context = context
18
18
  old_context_events = context_events
19
19
 
20
- self.context = self
20
+ self.context = self
21
21
  self.context_events = []
22
22
 
23
23
  res = nil
@@ -29,7 +29,7 @@ module DCI
29
29
  route_events!(context_events)
30
30
  res
31
31
  ensure
32
- self.context = old_context
32
+ self.context = old_context
33
33
  self.context_events = old_context_events
34
34
  end
35
35
 
@@ -15,9 +15,9 @@ module DCI
15
15
  end
16
16
  end
17
17
 
18
- def dispatch_catching_standard_errors(&block)
18
+ def dispatch_catching_standard_errors
19
19
  begin
20
- block.call
20
+ yield
21
21
  rescue StandardError => exception
22
22
  DCI.configuration.on_exception_in_router.call(exception) rescue nil
23
23
 
data/lib/dci/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module DCI
2
2
 
3
- VERSION = "0.3.0".freeze
3
+ VERSION = "0.3.1".freeze
4
4
 
5
5
  end
data/lib/dci.rb CHANGED
@@ -10,7 +10,7 @@ module DCI
10
10
 
11
11
  class << self
12
12
 
13
- #attr_accessor :configuration
13
+ attr_writer :configuration
14
14
 
15
15
  end
16
16
 
@@ -0,0 +1,18 @@
1
+ RSpec.describe DCI::Accessor do
2
+ class DummyObject
3
+
4
+ include DCI::Accessor
5
+
6
+ end
7
+
8
+ subject(:instance) { DummyObject.new }
9
+
10
+ it "adds context accessor" do
11
+ expect(instance).to respond_to(:context)
12
+ end
13
+
14
+ it "reads from context" do
15
+ Thread.current[:context] = "foo"
16
+ expect(instance.context).to eq "foo"
17
+ end
18
+ end
@@ -0,0 +1,25 @@
1
+ RSpec.describe DCI::Configuration do
2
+ subject(:instance) { DCI::Configuration.new }
3
+
4
+ it { is_expected.to have_attr_accessor(:transaction_class) }
5
+ it { is_expected.to have_attr_accessor(:routes) }
6
+ it { is_expected.to have_attr_accessor(:router) }
7
+ it { is_expected.to have_attr_accessor(:on_exception_in_router) }
8
+
9
+ it "sets default transaction_class" do
10
+ expect(instance.transaction_class).to eq DCI::NullTransaction
11
+ end
12
+
13
+ it "sets default event_routes" do
14
+ expect(instance.routes).to be_a Hash
15
+ expect(instance.routes.default).to eq []
16
+ end
17
+
18
+ it "sets default router" do
19
+ expect(instance.router).to be_nil
20
+ end
21
+
22
+ it "sets default on_exception_in_router" do
23
+ expect(instance.on_exception_in_router).to be_a Proc
24
+ end
25
+ end
@@ -0,0 +1,97 @@
1
+ RSpec.describe DCI::Context do
2
+ before do
3
+ Thread.current[:context_events] = nil
4
+ end
5
+
6
+ class DummyContext
7
+
8
+ include DCI::Context
9
+
10
+ def call
11
+ end
12
+
13
+ end
14
+
15
+ describe "included modules" do
16
+ [DCI::Accessor, DCI::Context, DCI::EventRouter].each do |mod|
17
+ it "includes #{ mod }" do
18
+ expect(DummyContext).to include(mod)
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "#call" do
24
+ let(:instance) { DummyContext.allocate }
25
+ let(:arguments) { [1, 2, "foo"] }
26
+ let(:keyword_arguments) { { a: 1, b: "foo" } }
27
+
28
+ before do
29
+ allow(DummyContext).to receive(:new).and_return(instance)
30
+ end
31
+
32
+ it "passes arguments to initializer" do
33
+ DummyContext.call(*arguments)
34
+
35
+ expect(DummyContext).to have_received(:new).with(*arguments)
36
+ end
37
+
38
+ it "passes keyword arguments to initializer" do
39
+ DummyContext.call(**keyword_arguments)
40
+
41
+ expect(DummyContext).to have_received(:new).with(**keyword_arguments)
42
+ end
43
+
44
+ it "calls perform_in_transaction on the instance" do
45
+ allow(instance).to receive(:perform_in_transaction)
46
+
47
+ DummyContext.call
48
+
49
+ expect(instance).to have_received(:perform_in_transaction)
50
+ end
51
+ end
52
+
53
+ describe "#perform_in_transaction" do
54
+ subject(:instance) { DummyContext.new }
55
+ let(:events) { instance_double("events") }
56
+ let(:old_context_events) { instance_double("old_context_events") }
57
+
58
+ it "calls call" do
59
+ allow(instance).to receive(:call)
60
+
61
+ instance.perform_in_transaction
62
+
63
+ expect(instance).to have_received(:call)
64
+ end
65
+
66
+ it "calls context_events= setter" do
67
+ allow(instance).to receive(:context_events).and_return(old_context_events)
68
+ allow(instance).to receive(:context_events=).and_call_original
69
+
70
+ instance.perform_in_transaction
71
+
72
+ expect(instance).to have_received(:context_events=).with([]).ordered
73
+ expect(instance).to have_received(:context_events=).with(old_context_events).ordered
74
+ end
75
+
76
+ it "default events are an empty array" do
77
+ expect(instance.send(:init_context_events)).to eq []
78
+ end
79
+
80
+ it "routes events" do
81
+ allow(instance).to receive(:route_events!)
82
+
83
+ instance.perform_in_transaction
84
+
85
+ expect(instance).to have_received(:route_events!).with([])
86
+ end
87
+
88
+ it "wraps code in transaction" do
89
+ allow(instance).to receive(:call)
90
+ allow(DCI).to receive_message_chain("configuration.transaction_class.transaction").and_yield
91
+
92
+ instance.perform_in_transaction
93
+
94
+ expect(instance).to have_received(:call)
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,117 @@
1
+ RSpec.describe DCI::EventRouter do
2
+ class DummyClassWithRouter
3
+
4
+ include DCI::EventRouter
5
+
6
+ end
7
+
8
+ subject(:instance) { DummyClassWithRouter.new }
9
+
10
+ it "calls route_event! for each event" do
11
+ allow(instance).to receive(:route_event!)
12
+ events = [1, 2]
13
+
14
+ instance.route_events! events
15
+
16
+ expect(instance).to have_received(:route_event!).with(1).ordered
17
+ expect(instance).to have_received(:route_event!).with(2).ordered
18
+ end
19
+
20
+ context "with route method store" do
21
+ module Events
22
+
23
+ DummyEvent = Struct.new(:id)
24
+
25
+ end
26
+
27
+ class Router
28
+
29
+ def after_dummy_event(event)
30
+ end
31
+
32
+ def another_after_dummy_event(event)
33
+ end
34
+
35
+ end
36
+
37
+ let(:router) { Router.new }
38
+ let(:event) { Events::DummyEvent.new(1) }
39
+
40
+ before do
41
+ DCI.configure do |config|
42
+ config.routes = Hash.new([])
43
+ config.routes.store Events::DummyEvent, [:after_dummy_event, :another_after_dummy_event]
44
+
45
+ config.router = router
46
+ end
47
+ end
48
+
49
+ it "routes event" do
50
+ allow(router).to receive(:after_dummy_event)
51
+ allow(router).to receive(:another_after_dummy_event)
52
+
53
+ instance.route_events!([event])
54
+
55
+ expect(router).to have_received(:after_dummy_event).with(event).ordered
56
+ expect(router).to have_received(:another_after_dummy_event).with(event).ordered
57
+ end
58
+
59
+ context "exceptions" do
60
+ before do
61
+ allow(router).to receive(:after_dummy_event).and_raise(StandardError)
62
+ end
63
+
64
+ context "should raise" do
65
+ let(:logger) { instance_double("logger", error: nil) }
66
+
67
+ before do
68
+ DCI.configure do |config|
69
+ config.routes = Hash.new([])
70
+ config.routes.store Events::DummyEvent, [:after_dummy_event, :another_after_dummy_event]
71
+
72
+ config.router = router
73
+ config.raise_in_router = true
74
+ config.on_exception_in_router = -> (ex) do
75
+ logger.error(ex)
76
+ end
77
+ end
78
+ end
79
+
80
+ it "raises exception" do
81
+ expect { instance.route_events!([event]) }.to raise_error(StandardError)
82
+ end
83
+
84
+ it "calls on_exception_in_router callback" do
85
+ allow(DCI.configuration).to receive(:on_exception_in_router)
86
+
87
+ expect { instance.route_events!([event]) }.to raise_error(StandardError)
88
+
89
+ expect(DCI.configuration).to have_received(:on_exception_in_router)
90
+ end
91
+
92
+ it "on_exception_in_router lambda is executed" do
93
+ expect { instance.route_events!([event]) }.to raise_error(StandardError)
94
+
95
+ expect(logger).to have_received(:error).with(StandardError)
96
+ end
97
+ end
98
+
99
+ context "should not raise" do
100
+ before do
101
+ DCI.reset
102
+
103
+ DCI.configure do |config|
104
+ config.routes = Hash.new([])
105
+ config.routes.store Events::DummyEvent, [:after_dummy_event, :another_after_dummy_event]
106
+ config.raise_in_router = false
107
+ config.router = router
108
+ end
109
+ end
110
+
111
+ it "rescues exception" do
112
+ expect { instance.route_events!([event]) }.not_to raise_error
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,13 @@
1
+ RSpec.describe DCI::NullTransaction do
2
+ subject(:described_class) { DCI::NullTransaction }
3
+
4
+ it "executes block in transaction" do
5
+ result = []
6
+
7
+ described_class.transaction do
8
+ result << 1
9
+ end
10
+
11
+ expect(result).to eq [1]
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ RSpec.describe DCI::Role do
2
+ describe "included modules" do
3
+ [DCI::Accessor].each do |mod|
4
+ it "includes #{ mod }" do
5
+ expect(DCI::Role).to include(mod)
6
+ end
7
+ end
8
+ end
9
+ end
data/spec/dci_spec.rb ADDED
@@ -0,0 +1,5 @@
1
+ RSpec.describe DCI do
2
+ it "has a version number" do
3
+ expect(DCI::VERSION).not_to be nil
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ RSpec::Matchers.define :have_attr_accessor do |field|
2
+ match do |object_instance|
3
+ object_instance.respond_to?(field) &&
4
+ object_instance.respond_to?("#{ field }=")
5
+ end
6
+
7
+ failure_message do |object_instance|
8
+ "expected attr_accessor for #{ field } on #{ object_instance }"
9
+ end
10
+
11
+ failure_message_when_negated do |object_instance|
12
+ "expected attr_accessor for #{ field } not to be defined on #{ object_instance }"
13
+ end
14
+
15
+ description do
16
+ "checks to see if there is an attr accessor on the supplied object"
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require "bundler/setup"
2
+ require "dci"
3
+ require "pry"
4
+ require "matchers/should_have_attr_accessor"
5
+ require "coveralls"
6
+ Coveralls.wear!
7
+
8
+ RSpec.configure do |config|
9
+ # Enable flags like --only-failures and --next-failure
10
+ config.example_status_persistence_file_path = ".rspec_status"
11
+
12
+ # Disable RSpec exposing methods globally on `Module` and `main`
13
+ config.disable_monkey_patching!
14
+
15
+ config.expect_with :rspec do |c|
16
+ c.syntax = :expect
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_dci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksandr Lossenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-24 00:00:00.000000000 Z
11
+ date: 2018-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,26 +66,17 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.11.3
69
- description: Provides base modules for DCI contexts, roles and event processing that
70
- should happen outside of the context transaction.
69
+ description: Opinionated DCI implementation for ruby. Provides base modules for DCI
70
+ contexts, roles and event processing that should happen outside of the context transaction.
71
71
  email:
72
72
  - aleksandr@byteflip.de
73
73
  executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
- - ".gitignore"
78
- - ".rspec"
79
- - ".rubocop.yml"
80
- - ".travis.yml"
81
77
  - CHANGELOG.md
82
- - Gemfile
83
- - Gemfile.lock
84
- - LICENSE.txt
85
78
  - README.md
86
79
  - Rakefile
87
- - bin/console
88
- - bin/setup
89
80
  - lib/dci.rb
90
81
  - lib/dci/accessor.rb
91
82
  - lib/dci/configuration.rb
@@ -94,7 +85,15 @@ files:
94
85
  - lib/dci/null_transaction.rb
95
86
  - lib/dci/role.rb
96
87
  - lib/dci/version.rb
97
- - ruby_dci.gemspec
88
+ - spec/dci/accessor_spec.rb
89
+ - spec/dci/configuration_spec.rb
90
+ - spec/dci/context_spec.rb
91
+ - spec/dci/event_router_spec.rb
92
+ - spec/dci/null_transaction_spec.rb
93
+ - spec/dci/role_spec.rb
94
+ - spec/dci_spec.rb
95
+ - spec/matchers/should_have_attr_accessor.rb
96
+ - spec/spec_helper.rb
98
97
  homepage: https://github.com/egze/ruby_dci
99
98
  licenses:
100
99
  - MIT
@@ -107,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
106
  requirements:
108
107
  - - ">="
109
108
  - !ruby/object:Gem::Version
110
- version: '0'
109
+ version: 2.0.0
111
110
  required_rubygems_version: !ruby/object:Gem::Requirement
112
111
  requirements:
113
112
  - - ">="
@@ -119,4 +118,13 @@ rubygems_version: 2.6.13
119
118
  signing_key:
120
119
  specification_version: 4
121
120
  summary: Opinionated DCI implementation for ruby.
122
- test_files: []
121
+ test_files:
122
+ - spec/spec_helper.rb
123
+ - spec/dci_spec.rb
124
+ - spec/dci/accessor_spec.rb
125
+ - spec/dci/configuration_spec.rb
126
+ - spec/dci/context_spec.rb
127
+ - spec/dci/event_router_spec.rb
128
+ - spec/dci/null_transaction_spec.rb
129
+ - spec/dci/role_spec.rb
130
+ - spec/matchers/should_have_attr_accessor.rb
data/.gitignore DELETED
@@ -1,13 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
- .DS_Store
10
- *.gem
11
-
12
- # rspec failure tracking
13
- .rspec_status
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,460 +0,0 @@
1
- require: rubocop-rspec
2
-
3
- Rails:
4
- Enabled: true
5
-
6
- AllCops:
7
- Include:
8
- - Guardfile
9
- - config.ru
10
- - Rakefile
11
- - "**/*.rake"
12
- - Capfile
13
- Exclude:
14
- - node_modules/**/*
15
- - bin/**/*
16
- - db/**/*
17
- - script/**/*
18
- - tmp/**/*
19
- - vendor/**/*
20
- - gems/**/*
21
-
22
- TargetRubyVersion: 2.5
23
-
24
- DefaultFormatter: simple
25
-
26
- DisabledByDefault: true
27
-
28
- Layout/BlockAlignment:
29
- Enabled: true
30
-
31
- Lint/DeprecatedClassMethods:
32
- Enabled: true
33
-
34
- Layout/DefEndAlignment:
35
- Enabled: true
36
-
37
- Lint/DuplicateMethods:
38
- Enabled: true
39
-
40
- Lint/DuplicateCaseCondition:
41
- Enabled: true
42
-
43
- Lint/EmptyEnsure:
44
- Enabled: true
45
-
46
- Lint/EmptyExpression:
47
- Enabled: true
48
-
49
- Lint/EmptyWhen:
50
- Enabled: true
51
-
52
- Layout/EndAlignment:
53
- Enabled: true
54
-
55
- Lint/ImplicitStringConcatenation:
56
- Enabled: true
57
-
58
- Lint/IneffectiveAccessModifier:
59
- Enabled: true
60
-
61
- Lint/NonLocalExitFromIterator:
62
- Enabled: true
63
-
64
- Lint/ShadowingOuterLocalVariable:
65
- Enabled: true
66
-
67
- Lint/StringConversionInInterpolation:
68
- Enabled: true
69
-
70
- Lint/UnreachableCode:
71
- Enabled: true
72
-
73
- Lint/UnusedBlockArgument:
74
- Enabled: true
75
-
76
- Lint/UnusedMethodArgument:
77
- Enabled: true
78
-
79
- Lint/UselessAccessModifier:
80
- Enabled: true
81
-
82
- Performance/CompareWithBlock:
83
- Enabled: true
84
-
85
- Performance/RangeInclude:
86
- Enabled: true
87
-
88
- Performance/StartWith:
89
- Enabled: true
90
-
91
- Performance/RedundantMatch:
92
- Enabled: true
93
-
94
- Performance/TimesMap:
95
- Enabled: true
96
-
97
- RSpec/DescribeMethod:
98
- Enabled: true
99
-
100
- RSpec/ExpectActual:
101
- Enabled: true
102
-
103
- RSpec/HookArgument:
104
- Enabled: true
105
-
106
- RSpec/ImplicitExpect:
107
- Enabled: true
108
-
109
- RSpec/RepeatedDescription:
110
- Enabled: true
111
-
112
- RSpec/RepeatedExample:
113
- Enabled: true
114
-
115
- Layout/AlignArray:
116
- Enabled: true
117
-
118
- Style/SymbolArray:
119
- Enabled: true
120
- EnforcedStyle: brackets
121
-
122
- Style/WordArray:
123
- Enabled: true
124
- EnforcedStyle: brackets
125
-
126
- Layout/AlignHash:
127
- EnforcedHashRocketStyle: key
128
- EnforcedColonStyle: key
129
- Enabled: true
130
-
131
- Layout/AlignParameters:
132
- EnforcedStyle: with_first_parameter
133
- Enabled: true
134
-
135
- Style/AndOr:
136
- EnforcedStyle: conditionals
137
- Enabled: true
138
-
139
- Style/AsciiComments:
140
- Enabled: true
141
-
142
- Style/Attr:
143
- Enabled: true
144
-
145
- Style/BlockDelimiters:
146
- Enabled: true
147
-
148
- Style/CaseEquality:
149
- Enabled: true
150
-
151
- Layout/CaseIndentation:
152
- Enabled: true
153
-
154
- Style/ClassAndModuleChildren:
155
- Enabled: true
156
- AutoCorrect: true
157
-
158
- Style/ClassCheck:
159
- Enabled: true
160
-
161
- Layout/ClosingParenthesisIndentation:
162
- Enabled: true
163
-
164
- Style/ColonMethodCall:
165
- Enabled: true
166
-
167
- Layout/CommentIndentation:
168
- Enabled: true
169
-
170
- Style/ConditionalAssignment:
171
- Enabled: true
172
-
173
- Style/DefWithParentheses:
174
- Enabled: true
175
-
176
- Layout/DotPosition:
177
- EnforcedStyle: trailing
178
- Enabled: true
179
-
180
- Style/EachWithObject:
181
- Enabled: true
182
-
183
- Layout/ElseAlignment:
184
- Enabled: true
185
-
186
- Layout/EmptyLineBetweenDefs:
187
- Enabled: true
188
-
189
- Layout/EmptyLines:
190
- Enabled: true
191
-
192
- Layout/EmptyLinesAroundMethodBody:
193
- Enabled: true
194
-
195
- Layout/EmptyLinesAroundModuleBody:
196
- Enabled: true
197
-
198
- Layout/ExtraSpacing:
199
- Enabled: true
200
-
201
- Style/EmptyElse:
202
- Enabled: true
203
-
204
- Layout/EmptyLinesAroundBlockBody:
205
- Enabled: true
206
-
207
- Style/EvenOdd:
208
- Enabled: true
209
-
210
- Naming/FileName:
211
- Enabled: true
212
- Exclude:
213
- - Gemfile
214
-
215
- Layout/FirstParameterIndentation:
216
- Enabled: true
217
-
218
- Style/For:
219
- Enabled: true
220
-
221
- Style/HashSyntax:
222
- EnforcedStyle: ruby19_no_mixed_keys
223
- Enabled: true
224
-
225
- Style/IdenticalConditionalBranches:
226
- Enabled: true
227
-
228
- Style/IfInsideElse:
229
- Enabled: true
230
-
231
- Layout/IndentArray:
232
- Enabled: true
233
-
234
- Layout/IndentAssignment:
235
- Enabled: true
236
-
237
- Layout/IndentationConsistency:
238
- Enabled: true
239
-
240
- Layout/IndentationWidth:
241
- Enabled: true
242
-
243
- Style/MethodCallWithoutArgsParentheses:
244
- Enabled: true
245
-
246
- Style/MethodDefParentheses:
247
- Enabled: true
248
- EnforcedStyle: require_parentheses
249
-
250
- Naming/MethodName:
251
- Enabled: true
252
-
253
- Layout/MultilineBlockLayout:
254
- Enabled: true
255
-
256
- Layout/MultilineMethodCallBraceLayout:
257
- EnforcedStyle: symmetrical
258
- Enabled: true
259
-
260
- Layout/MultilineMethodCallIndentation:
261
- Enabled: true
262
-
263
- Layout/MultilineOperationIndentation:
264
- Enabled: true
265
-
266
- Style/MultilineTernaryOperator:
267
- Enabled: true
268
-
269
- Style/MutableConstant:
270
- Enabled: true
271
-
272
- Style/NegatedWhile:
273
- Enabled: true
274
-
275
- Style/NestedParenthesizedCalls:
276
- Enabled: true
277
-
278
- Style/NestedTernaryOperator:
279
- Enabled: true
280
-
281
- Style/NumericLiteralPrefix:
282
- Enabled: true
283
-
284
- Style/ParenthesesAroundCondition:
285
- Enabled: true
286
-
287
- Style/RedundantReturn:
288
- Enabled: true
289
-
290
- Style/RedundantSelf:
291
- Enabled: true
292
-
293
- Layout/RescueEnsureAlignment:
294
- Enabled: true
295
-
296
- Style/SafeNavigation:
297
- Enabled: true
298
-
299
- Style/SelfAssignment:
300
- Enabled: true
301
-
302
- Style/SignalException:
303
- Enabled: true
304
-
305
- Layout/SpaceAfterComma:
306
- Enabled: true
307
-
308
- Layout/SpaceAfterColon:
309
- Enabled: true
310
-
311
- Layout/SpaceAfterMethodName:
312
- Enabled: true
313
-
314
- Layout/SpaceAroundEqualsInParameterDefault:
315
- Enabled: true
316
-
317
- Layout/SpaceAroundKeyword:
318
- Enabled: true
319
-
320
- Layout/SpaceAroundOperators:
321
- Enabled: true
322
-
323
- Layout/SpaceBeforeBlockBraces:
324
- Enabled: true
325
-
326
- Layout/SpaceAroundBlockParameters:
327
- Enabled: true
328
-
329
- Layout/SpaceBeforeComma:
330
- Enabled: true
331
-
332
- Layout/SpaceBeforeComment:
333
- Enabled: true
334
-
335
- Layout/SpaceBeforeFirstArg:
336
- Enabled: true
337
-
338
- Layout/SpaceInsideBlockBraces:
339
- Enabled: true
340
-
341
- Layout/SpaceInsideReferenceBrackets:
342
- EnforcedStyle: no_space
343
- Enabled: true
344
-
345
- Layout/SpaceInsideHashLiteralBraces:
346
- EnforcedStyle: space
347
- Enabled: true
348
-
349
- Layout/SpaceInsideParens:
350
- Enabled: true
351
-
352
- Layout/SpaceInsideStringInterpolation:
353
- EnforcedStyle: space
354
- Enabled: true
355
-
356
- Style/StringLiterals:
357
- EnforcedStyle: double_quotes
358
- Enabled: true
359
-
360
- Style/SymbolLiteral:
361
- Enabled: true
362
-
363
- Layout/Tab:
364
- Enabled: true
365
-
366
- Layout/TrailingBlankLines:
367
- Enabled: true
368
-
369
- Style/TrailingCommaInArguments:
370
- Enabled: true
371
-
372
- Style/TrailingCommaInHashLiteral:
373
- Enabled: true
374
-
375
- Style/TrailingCommaInArrayLiteral:
376
- Enabled: true
377
-
378
- Layout/TrailingWhitespace:
379
- Enabled: true
380
-
381
- Naming/VariableName:
382
- Enabled: true
383
-
384
- Style/WhileUntilDo:
385
- Enabled: true
386
-
387
- Style/ClassMethods:
388
- Enabled: true
389
-
390
- Lint/UselessAssignment:
391
- Enabled: true
392
-
393
- Lint/Void:
394
- Enabled: true
395
-
396
- Rails/Date:
397
- EnforcedStyle: flexible
398
- Enabled: true
399
-
400
- Rails/DynamicFindBy:
401
- Enabled: true
402
-
403
- Rails/TimeZone:
404
- Enabled: true
405
-
406
- RSpec/AnyInstance:
407
- Enabled: true
408
-
409
- RSpec/MessageSpies:
410
- Enabled: true
411
-
412
- RSpec/NamedSubject:
413
- Enabled: true
414
-
415
- RSpec/ScatteredSetup:
416
- Enabled: true
417
-
418
- RSpec/VerifiedDoubles:
419
- Enabled: true
420
-
421
- Style/GuardClause:
422
- Enabled: true
423
-
424
- Layout/SpaceInLambdaLiteral:
425
- EnforcedStyle: require_space
426
- Enabled: true
427
-
428
- Layout/EmptyLinesAroundAccessModifier:
429
- Enabled: true
430
-
431
- Style/Lambda:
432
- EnforcedStyle: literal
433
-
434
- Style/BracesAroundHashParameters:
435
- EnforcedStyle: context_dependent
436
- Enabled: true
437
-
438
- Layout/EmptyLinesAroundClassBody:
439
- EnforcedStyle: empty_lines_except_namespace
440
- Enabled: true
441
-
442
- Layout/EmptyLinesAroundModuleBody:
443
- EnforcedStyle: empty_lines_except_namespace
444
- Enabled: true
445
-
446
- Layout/EmptyLinesAroundExceptionHandlingKeywords:
447
- Enabled: true
448
-
449
- Layout/SpaceInsideArrayLiteralBrackets:
450
- EnforcedStyle: no_space
451
-
452
- Style/StabbyLambdaParentheses:
453
- Enabled: true
454
-
455
- Layout/AccessModifierIndentation:
456
- Enabled: true
457
-
458
- Layout/IndentHash:
459
- EnforcedStyle: consistent
460
- Enabled: true
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.0
5
- before_install:
6
- - gem update --system
7
- - gem install bundler -v 1.16.1
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) { |repo_name| "https://github.com/#{ repo_name }" }
4
-
5
- gem "coveralls", require: false
6
-
7
- # Specify your gem's dependencies in ruby_dci.gemspec
8
- gemspec
data/Gemfile.lock DELETED
@@ -1,59 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- ruby_dci (0.3.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- coderay (1.1.2)
10
- coveralls (0.8.21)
11
- json (>= 1.8, < 3)
12
- simplecov (~> 0.14.1)
13
- term-ansicolor (~> 1.3)
14
- thor (~> 0.19.4)
15
- tins (~> 1.6)
16
- diff-lcs (1.3)
17
- docile (1.1.5)
18
- json (2.1.0)
19
- method_source (0.9.0)
20
- pry (0.11.3)
21
- coderay (~> 1.1.0)
22
- method_source (~> 0.9.0)
23
- rake (10.5.0)
24
- rspec (3.7.0)
25
- rspec-core (~> 3.7.0)
26
- rspec-expectations (~> 3.7.0)
27
- rspec-mocks (~> 3.7.0)
28
- rspec-core (3.7.1)
29
- rspec-support (~> 3.7.0)
30
- rspec-expectations (3.7.0)
31
- diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.7.0)
33
- rspec-mocks (3.7.0)
34
- diff-lcs (>= 1.2.0, < 2.0)
35
- rspec-support (~> 3.7.0)
36
- rspec-support (3.7.1)
37
- simplecov (0.14.1)
38
- docile (~> 1.1.0)
39
- json (>= 1.8, < 3)
40
- simplecov-html (~> 0.10.0)
41
- simplecov-html (0.10.2)
42
- term-ansicolor (1.6.0)
43
- tins (~> 1.0)
44
- thor (0.19.4)
45
- tins (1.16.3)
46
-
47
- PLATFORMS
48
- ruby
49
-
50
- DEPENDENCIES
51
- bundler (~> 1.16)
52
- coveralls
53
- pry (~> 0.11.3)
54
- rake (~> 10.0)
55
- rspec (~> 3.0)
56
- ruby_dci!
57
-
58
- BUNDLED WITH
59
- 1.16.1
data/LICENSE.txt DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2018 Aleksandr Lossenko
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
13
- all 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
21
- THE SOFTWARE.
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "dci"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
data/ruby_dci.gemspec DELETED
@@ -1,26 +0,0 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "dci/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "ruby_dci"
7
- spec.version = ::DCI::VERSION
8
- spec.authors = ["Aleksandr Lossenko"]
9
- spec.email = ["aleksandr@byteflip.de"]
10
-
11
- spec.summary = %q{Opinionated DCI implementation for ruby.}
12
- spec.description = %q{Provides base modules for DCI contexts, roles and event processing that should happen outside of the context transaction.}
13
- spec.homepage = "https://github.com/egze/ruby_dci"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
- f.match(%r{^(test|spec|features)/})
18
- end
19
-
20
- spec.require_paths = ["lib"]
21
-
22
- spec.add_development_dependency "bundler", "~> 1.16"
23
- spec.add_development_dependency "rake", "~> 10.0"
24
- spec.add_development_dependency "rspec", "~> 3.0"
25
- spec.add_development_dependency "pry", "~> 0.11.3"
26
- end