activeinteractor 0.1.6 → 0.1.7

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
  SHA256:
3
- metadata.gz: eb4ea1ab1b182695f3eb1123b9a2d24dc417a7b9c677cd4cfcd09e5c382c2353
4
- data.tar.gz: 7cccf0b3d2d91598546c9683a10f7610b3c01941ea4c4aa9a6fe283dec673203
3
+ metadata.gz: 62ffd94a00a7a624dc305a07dfb9347ac55d9b863b6a6acaf87d74a653bea21f
4
+ data.tar.gz: bf704329e8360caaa6c750fb65722e8bf3cd53c0c633d7d1ed96f1b68fd4af0b
5
5
  SHA512:
6
- metadata.gz: 10f396ce895b5217010e39cd45354dba784b7216fd20aba7bb80acac9293e22711dfada8c6a573dbb8676ca961146b18bf1c215c73efdd3c351abc749c44b39a
7
- data.tar.gz: fa3b9aa5f0d3b1629300003711264fd2fd61368268e579d57087592c87ed024eb46396fc316f2e5e1edf3e4043abb1c51a84334f0c645c450c80f9fda057be92
6
+ metadata.gz: 22600e40ed597c10695c5bc1859f7338495c25b2204d9d58f959be3c74cb1e943f98776e0669dfc12e784eaf16babab7fc0531a98e15fbf2e6a0bbd42710d693
7
+ data.tar.gz: f61f0ad8378ac49577e19c745566a202e5723cd107f7e867d0ed34249926c6827e258f81e42a7c617546e3e53448f106aba3a3754b1171fbb2d5c2f303217119
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning].
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [v0.1.7] - 2019-09-10
11
+
12
+ ### Fixed
13
+
14
+ - [#61] Ensure `Organizer` accurately reports context success
15
+
10
16
  ## [v0.1.6] - 2019-07-24
11
17
 
12
18
  ### Changed
@@ -68,7 +74,8 @@ and this project adheres to [Semantic Versioning].
68
74
 
69
75
  <!-- versions -->
70
76
 
71
- [Unreleased]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.6..HEAD
77
+ [Unreleased]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.7..HEAD
78
+ [v0.1.7]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.6...v0.1.7
72
79
  [v0.1.6]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.5...v0.1.6
73
80
  [v0.1.5]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.4...v0.1.5
74
81
  [v0.1.4]: https://github.com/aaronmallen/activeinteractor/compare/v0.1.3...v0.1.4
@@ -91,3 +98,4 @@ and this project adheres to [Semantic Versioning].
91
98
  [#45]: https://github.com/aaronmallen/activeinteractor/pull/45
92
99
  [#48]: https://github.com/aaronmallen/activeinteractor/pull/48
93
100
  [#51]: https://github.com/aaronmallen/activeinteractor/pull/51
101
+ [#61]: https://github.com/aaronmallen/activeinteractor/pull/61
data/README.md CHANGED
@@ -33,11 +33,14 @@ gem install activeinteractor
33
33
  If you're working with a rails project you will also want to run:
34
34
 
35
35
  ```bash
36
- rails generate active_interactor:install
36
+ rails generate active_interactor:install [directory]
37
37
  ```
38
38
 
39
+ The `directory` option allows you to customize what directory interactors
40
+ will live in within your application (defaults to 'interactors').
41
+
39
42
  This will create an initializer and a new class called `ApplicationInteractor`
40
- at `app/interactors/application_interactor.rb`
43
+ at `app/<interactor directory>/application_interactor.rb`
41
44
 
42
45
  you can then automatically generate interactors and interactor organizers with:
43
46
 
@@ -63,8 +63,9 @@ module ActiveInteractor
63
63
 
64
64
  def execute_context!
65
65
  perform!
66
- finalize_context!
67
66
  context
67
+ ensure
68
+ finalize_context!
68
69
  end
69
70
 
70
71
  def fail_on_invalid_context!(validation_context = nil)
@@ -88,6 +89,7 @@ module ActiveInteractor
88
89
 
89
90
  def rollback_context_and_raise!(exception)
90
91
  context.rollback!
92
+ context.send(:mark_failed!)
91
93
  raise exception
92
94
  end
93
95
 
@@ -3,5 +3,5 @@
3
3
  module ActiveInteractor
4
4
  # The ActiveInteractor gem version
5
5
  # @return [String] the gem version
6
- VERSION = '0.1.6'
6
+ VERSION = '0.1.7'
7
7
  end
@@ -5,23 +5,26 @@ require_relative '../active_interactor'
5
5
  module ActiveInteractor
6
6
  module Generators
7
7
  class InstallGenerator < Base
8
+ desc 'Install ActiveInteractor'
9
+ argument :directory, type: :string, default: 'interactors', banner: 'directory'
10
+
8
11
  def create_initializer
9
- template 'initializer.rb', Rails.root.join('config', 'initializers', 'active_interactor.rb')
12
+ template 'initializer.erb', Rails.root.join('config', 'initializers', 'active_interactor.rb')
10
13
  end
11
14
 
12
15
  def create_application_interactor
13
- template 'application_interactor.erb', Rails.root.join('app', app_dir_name, 'application_interactor.rb')
16
+ template 'application_interactor.erb', Rails.root.join('app', directory, 'application_interactor.rb')
14
17
  end
15
18
 
16
19
  def create_interactor_concerns
17
- create_file Rails.root.join('app', app_dir_name, 'concerns', '.keep')
20
+ create_file Rails.root.join('app', directory, 'concerns', '.keep')
18
21
  end
19
22
 
20
23
  def autoload_interactors
21
24
  application do
22
25
  <<~CONFIG
23
26
  # autoload interactors
24
- config.autoload_paths += %w[app/#{app_dir_name}]
27
+ config.autoload_paths += %w[app/#{directory}]
25
28
 
26
29
  CONFIG
27
30
  end
@@ -7,9 +7,9 @@ ActiveInteractor.configure do |config|
7
7
  config.logger = Rails.logger
8
8
 
9
9
  # Set the default directory for interactors
10
- # NOTE: if this is changed after `active_interactor:install`
11
- # is generated you will need to update
12
- # config/application.rb autoload paths with the
13
- # new directory name.
10
+ <%- if directory != 'interactors' -%>
11
+ config.dir_name = '<%= directory %>'
12
+ <%- else -%>
14
13
  # config.dir_name = 'interactors'
14
+ <%- end -%>
15
15
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activeinteractor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Allen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-24 00:00:00.000000000 Z
11
+ date: 2019-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -221,7 +221,6 @@ files:
221
221
  - lib/active_interactor/configuration.rb
222
222
  - lib/active_interactor/context.rb
223
223
  - lib/active_interactor/context/attributes.rb
224
- - lib/active_interactor/context/errors.rb
225
224
  - lib/active_interactor/error.rb
226
225
  - lib/active_interactor/interactor.rb
227
226
  - lib/active_interactor/interactor/callbacks.rb
@@ -237,7 +236,7 @@ files:
237
236
  - lib/rails/generators/interactor/rspec_generator.rb
238
237
  - lib/rails/generators/interactor/test_unit_generator.rb
239
238
  - lib/rails/generators/templates/application_interactor.erb
240
- - lib/rails/generators/templates/initializer.rb
239
+ - lib/rails/generators/templates/initializer.erb
241
240
  - lib/rails/generators/templates/interactor.erb
242
241
  - lib/rails/generators/templates/organizer.erb
243
242
  - lib/rails/generators/templates/rspec.erb
@@ -247,10 +246,10 @@ licenses:
247
246
  - MIT
248
247
  metadata:
249
248
  bug_tracker_uri: https://github.com/aaronmallen/activeinteractor/issues
250
- changelog_uri: https://github.com/aaronmallen/activeinteractor/blob/v0.1.6/CHANGELOG.md
251
- documentation_uri: https://www.rubydoc.info/gems/activeinteractor/0.1.6
249
+ changelog_uri: https://github.com/aaronmallen/activeinteractor/blob/v0.1.7/CHANGELOG.md
250
+ documentation_uri: https://www.rubydoc.info/gems/activeinteractor/0.1.7
252
251
  hompage_uri: https://github.com/aaronmallen/activeinteractor
253
- source_code_uri: https://github.com/aaronmallen/activeinteractor/tree/v0.1.6
252
+ source_code_uri: https://github.com/aaronmallen/activeinteractor/tree/v0.1.7
254
253
  wiki_uri: https://github.com/aaronmallen/activeinteractor/wiki
255
254
  post_install_message:
256
255
  rdoc_options: []
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveInteractor
4
- module Context
5
- # Raised when an interactor context fails
6
- #
7
- # @deprecated Use {#ActiveInteractor::Error::ContextFailure} instead
8
- #
9
- # @author Aaron Allen <hello@aaronmallen.me>
10
- # @since 0.0.1
11
- # @version 0.2
12
- #
13
- # @!attribute [r] context
14
- # @return [Base] an instance of {Base}
15
- class Failure < StandardError
16
- attr_reader :context
17
-
18
- # A new instance of {Failure}
19
- # @param context [ActiveInteractor::Context::Base] an
20
- # instance of {ActiveInteractor::Context::Base}
21
- # @return [Failure] a new instance of {Failure}
22
- def initialize(context = nil)
23
- @context = context
24
- super
25
- end
26
- end
27
- end
28
- end