ruby_dci 0.3.0 → 0.3.1

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: 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