mime_actor 0.7.1 → 1.0.0

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: '094172ea0e5fcae9e39f4afb809b70a3726685ea811394a9b44b131479054c31'
4
- data.tar.gz: c1e62426da71b3864e14cbbcc5002c6d89e6b63b26c14f22bb0978ce78ce7157
3
+ metadata.gz: fbf21714856f466dcd213606d554c45634a8601d4d83c1157cf48979ab680c3a
4
+ data.tar.gz: 6a3f623b039d7cd3fdc41b7bce4e4f827779aedf9537a87f2cafc6667d985c23
5
5
  SHA512:
6
- metadata.gz: 67e13f2740eba0faba943d6ed74ba57e0b6ce27e8359fde9258ad94ba270613a871b39b628fe8ea3975f36695003272387f0243f3027242ab8b9f608bdd7005d
7
- data.tar.gz: c14df5ab058a41f6e2f259bfb7b5ee8471d17bd88e130abc9763622eb79bcc2e326172962edaee74a29efb8920bb1d076c509df0753bc2b823eb6c3aff2bdded
6
+ metadata.gz: 9250e3561b80891aabeae7808abd60370be195d7d3139520f83b5346208be3e420841caed5002e073ab9417d3c7f815205f4f086d2c575bbf876070b4f82fb4a
7
+ data.tar.gz: a93d0cb88e4fab401fd5dd6e02674f5ef834c19c9755577c8410073ed4ce30c364f0368eeda3fdb7960d4f81810297977cb89c512cb86418e95a05a9452918a7
data/README.md CHANGED
@@ -221,8 +221,8 @@ Bug reports and pull requests are welcome on GitHub at [https://github.com/ryanc
221
221
 
222
222
  [rubygems_badge]: https://img.shields.io/gem/v/mime_actor.svg
223
223
  [rubygems]: https://rubygems.org/gems/mime_actor
224
- [ci_badge]: https://github.com/ryancyq/mime_actor/actions/workflows/build.yml/badge.svg
225
- [ci_workflows]: https://github.com/ryancyq/mime_actor/actions/workflows/build.yml
224
+ [ci_badge]: https://github.com/ryancyq/mime_actor/actions/workflows/ci.yml/badge.svg
225
+ [ci_workflows]: https://github.com/ryancyq/mime_actor/actions/workflows/ci.yml
226
226
  [coverage_badge]: https://codecov.io/gh/ryancyq/mime_actor/graph/badge.svg?token=4C091RHXC3
227
227
  [coverage]: https://codecov.io/gh/ryancyq/mime_actor
228
228
  [maintainability_badge]: https://api.codeclimate.com/v1/badges/06689606dc3f3945dc1b/maintainability
@@ -68,7 +68,7 @@ module MimeActor
68
68
  end
69
69
 
70
70
  collector.public_send(format) do
71
- fill_run_sheet(action, format) { cue_actor(callable, action, format, action:, format:) }
71
+ fill_run_sheet(action, format) { cue_actor(callable, action, format, action: action, format: format) }
72
72
  end
73
73
  end
74
74
  end
@@ -5,9 +5,9 @@
5
5
  require "mime_actor/validator"
6
6
 
7
7
  require "active_support/callbacks"
8
- require "active_support/code_generator"
9
8
  require "active_support/concern"
10
9
  require "active_support/core_ext/module/attr_internal"
10
+ require "active_support/version"
11
11
 
12
12
  module MimeActor
13
13
  # # MimeActor Callbacks
@@ -32,10 +32,13 @@ module MimeActor
32
32
  include ActiveSupport::Callbacks
33
33
  include MimeActor::Validator
34
34
 
35
+ LIFECYCLES = %i[before after around].freeze
36
+
35
37
  included do
36
38
  attr_internal_reader :act_action, :act_format
37
39
  define_callbacks :act, skip_after_callbacks_if_terminated: true
38
- generate_act_callback_methods
40
+
41
+ ActiveSupport.version >= "7.2" ? generate_act_callback_methods : eval_act_callback_methods
39
42
  end
40
43
 
41
44
  module ClassMethods
@@ -43,8 +46,13 @@ module MimeActor
43
46
  attr_reader :actions, :formats
44
47
 
45
48
  def initialize(actions, formats)
46
- @actions = actions&.then { |a| Array(a).to_set(&:to_sym) }
47
- @formats = formats&.then { |f| Array(f).to_set(&:to_sym) }
49
+ if RUBY_VERSION < "2.6"
50
+ @actions = actions ? Array(actions).to_set(&:to_sym) : nil
51
+ @formats = formats ? Array(formats).to_set(&:to_sym) : nil
52
+ else
53
+ @actions = actions&.then { |a| Array(a).to_set(&:to_sym) }
54
+ @formats = formats&.then { |f| Array(f).to_set(&:to_sym) }
55
+ end
48
56
  end
49
57
 
50
58
  def match?(controller)
@@ -76,10 +84,28 @@ module MimeActor
76
84
  validate!(:format_or_formats, format) unless format.nil?
77
85
  end
78
86
 
87
+ def eval_act_callback_methods
88
+ singleton_class.module_eval(<<-RUBY, __FILE__, __LINE__ + 1)
89
+ # def append_act_before(*callbacks, action: nil, format: nil, &block)
90
+ # validate_callback_options!(action, format)
91
+ # configure_callbacks(callbacks, action, format, block) do |callback, options|
92
+ # set_callback(:act, :before, callback, options.merge!(prepend: false))
93
+ # end
94
+ # end
95
+ #
96
+ # alias_method :act_before, :append_act_before
97
+ #
98
+ #{LIFECYCLES.map { |kind| act_callback_kind_template(kind, append: true) }.join(";")}
99
+ #{LIFECYCLES.map { |kind| act_callback_kind_template(kind, append: false) }.join(";")}
100
+ #{LIFECYCLES.map { |kind| "alias_method :act_#{kind}, :append_act_#{kind}" }.join(";")}
101
+ RUBY
102
+ end
103
+
79
104
  def generate_act_callback_methods
105
+ require "active_support/code_generator"
80
106
  ActiveSupport::CodeGenerator.batch(singleton_class, __FILE__, __LINE__) do |owner|
81
- %i[before after around].each do |kind|
82
- owner.define_cached_method(:"append_act_#{kind}", namespace: :mime_callbacks) do |batch|
107
+ LIFECYCLES.each do |kind|
108
+ owner.define_cached_method(:"append_act_#{kind}", as: :"act_#{kind}", namespace: :mime_callbacks) do |batch|
83
109
  batch << act_callback_kind_template(kind, append: true)
84
110
  end
85
111
  owner.define_cached_method(:"prepend_act_#{kind}", namespace: :mime_callbacks) do |batch|
@@ -87,12 +113,6 @@ module MimeActor
87
113
  end
88
114
  end
89
115
  end
90
- # as: check against the defined method in owner, code only generated after #batch block is yielded
91
- ActiveSupport::CodeGenerator.batch(singleton_class, __FILE__, __LINE__) do |owner|
92
- %i[before after around].each do |kind|
93
- owner.define_cached_method(:"act_#{kind}", as: :"append_act_#{kind}", namespace: :mime_callbacks)
94
- end
95
- end
96
116
  end
97
117
 
98
118
  def act_callback_kind_template(kind, append:)
@@ -26,7 +26,9 @@ module MimeActor
26
26
  private
27
27
 
28
28
  def validate!
29
- raise ArgumentError, "invalid method name: #{method_name.inspect}" unless method_name in String | Symbol
29
+ return if method_name.is_a?(String) || method_name.is_a?(Symbol)
30
+
31
+ raise ArgumentError, "invalid method name: #{method_name.inspect}"
30
32
  end
31
33
  end
32
34
 
@@ -47,7 +49,7 @@ module MimeActor
47
49
  private
48
50
 
49
51
  def validate!
50
- raise ArgumentError, "invalid block: #{block.inspect}" unless block in Proc
52
+ raise ArgumentError, "invalid block: #{block.inspect}" unless block.is_a?(Proc)
51
53
  end
52
54
  end
53
55
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # required by active_support/tagged_logging
6
6
  require "active_support/version"
7
- require "active_support/isolated_execution_state" if ActiveSupport::VERSION::MAJOR >= 7
7
+ require "active_support/isolated_execution_state" if ActiveSupport.version >= "7.0"
8
8
 
9
9
  require "active_support/concern"
10
10
  require "active_support/configurable"
@@ -22,7 +22,7 @@ module MimeActor
22
22
 
23
23
  included do
24
24
  default_logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new($stdout))
25
- if ActiveSupport::VERSION::MAJOR >= 7
25
+ if ActiveSupport.version >= "7.0"
26
26
  config_accessor :logger, default: default_logger
27
27
  else
28
28
  config_accessor :logger do
@@ -33,12 +33,12 @@ module MimeActor
33
33
 
34
34
  private
35
35
 
36
- def fill_run_sheet(*scenes, &)
36
+ def fill_run_sheet(*scenes, &block)
37
37
  return yield unless logger.respond_to?(:tagged)
38
38
 
39
39
  scenes.unshift "MimeActor" unless logger.formatter.current_tags.include?("MimeActor")
40
40
 
41
- logger.tagged(*scenes, &)
41
+ logger.tagged(*scenes, &block)
42
42
  end
43
43
  end
44
44
  end
@@ -5,7 +5,7 @@
5
5
  module MimeActor
6
6
  class Railtie < Rails::Railtie
7
7
  initializer "mime_actor.deprecator", before: :load_environment_config do |app|
8
- app.deprecators[:mime_actor] = MimeActor.deprecator if Rails::VERSION::MAJOR >= 7
8
+ app.deprecators[:mime_actor] = MimeActor.deprecator if ActiveSupport.version >= "7.1"
9
9
  end
10
10
  end
11
11
  end
@@ -76,12 +76,12 @@ module MimeActor
76
76
  return if visited.include?(error)
77
77
 
78
78
  visited << error
79
- rescuer = find_rescuer(error, format:, action:)
79
+ rescuer = find_rescuer(error, format: format, action: action)
80
80
  if (dispatch = MimeActor::Dispatcher.build(rescuer, error, format, action))
81
81
  dispatch.call(self)
82
82
  error
83
83
  elsif error&.cause
84
- rescue_actor(error.cause, format:, action:, visited:)
84
+ rescue_actor(error.cause, format: format, action: action, visited: visited)
85
85
  end
86
86
  end
87
87
 
@@ -5,9 +5,9 @@
5
5
  require "mime_actor/errors"
6
6
  require "mime_actor/validator"
7
7
 
8
- require "active_support/code_generator"
9
8
  require "active_support/concern"
10
9
  require "active_support/core_ext/module/attribute_accessors"
10
+ require "active_support/version"
11
11
 
12
12
  module MimeActor
13
13
  # # MimeActor Scene
@@ -100,7 +100,7 @@ module MimeActor
100
100
  end
101
101
  end
102
102
 
103
- generate_action_methods(actions)
103
+ ActiveSupport.version >= "7.2" ? generate_action_methods(actions) : eval_action_methods(actions)
104
104
  end
105
105
 
106
106
  private
@@ -109,7 +109,26 @@ module MimeActor
109
109
  @generated_action_methods ||= Module.new.tap { |mod| prepend mod }
110
110
  end
111
111
 
112
+ def eval_action_methods(actions)
113
+ generated_action_methods.module_eval(<<-RUBY, __FILE__, __LINE__ + 1)
114
+ # def index
115
+ # if respond_to?(:start_scene)
116
+ # start_scene do
117
+ # raise MimeActor::ActionNotImplemented, :index unless defined?(super)
118
+ # super
119
+ # end
120
+ # else
121
+ # raise MimeActor::ActionNotImplemented}, :index unless defined?(super)
122
+ # super
123
+ # end
124
+ # end
125
+ #
126
+ #{actions.each.map { |action| action_method_template(action) }.join(";")}
127
+ RUBY
128
+ end
129
+
112
130
  def generate_action_methods(actions)
131
+ require "active_support/code_generator"
113
132
  ActiveSupport::CodeGenerator.batch(generated_action_methods, __FILE__, __LINE__) do |owner|
114
133
  actions.each do |action|
115
134
  owner.define_cached_method(action, namespace: :mime_scene) do |batch|
@@ -40,7 +40,7 @@ module MimeActor
40
40
 
41
41
  self.class.validate!(:format, format)
42
42
 
43
- run_act_callbacks(action:, format:) do
43
+ run_act_callbacks(action: action, format: format) do
44
44
  result = dispatcher.call(self)
45
45
  block_given? ? yield(result) : result
46
46
  end
@@ -48,7 +48,7 @@ module MimeActor
48
48
  logger.error { "actor error, cause: #{e.inspect}" } unless raise_on_actor_error
49
49
  raise e if raise_on_actor_error
50
50
  rescue StandardError => e
51
- rescued = rescue_actor(e, action:, format:)
51
+ rescued = rescue_actor(e, action: action, format: format)
52
52
  rescued || raise
53
53
  end
54
54
  end
@@ -12,9 +12,9 @@ module MimeActor
12
12
  end
13
13
 
14
14
  module VERSION
15
- MAJOR = 0
16
- MINOR = 7
17
- BUILD = 1
15
+ MAJOR = 1
16
+ MINOR = 0
17
+ BUILD = 0
18
18
  PRE = nil
19
19
 
20
20
  STRING = [MAJOR, MINOR, BUILD, PRE].compact.join(".")
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mime_actor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Chang
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-31 00:00:00.000000000 Z
11
+ date: 2024-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '7.0'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '7.0'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '7.0'
33
+ version: '6.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '7.0'
40
+ version: '6.1'
41
41
  description: ''
42
42
  email:
43
43
  - ryancyq@gmail.com
@@ -45,7 +45,6 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - CHANGELOG.md
49
48
  - COMPARE.md
50
49
  - LICENSE
51
50
  - README.md
@@ -78,16 +77,16 @@ require_paths:
78
77
  - lib
79
78
  required_ruby_version: !ruby/object:Gem::Requirement
80
79
  requirements:
81
- - - "~>"
80
+ - - ">="
82
81
  - !ruby/object:Gem::Version
83
- version: '3.1'
82
+ version: '2.5'
84
83
  required_rubygems_version: !ruby/object:Gem::Requirement
85
84
  requirements:
86
85
  - - ">="
87
86
  - !ruby/object:Gem::Version
88
87
  version: '0'
89
88
  requirements: []
90
- rubygems_version: 3.5.9
89
+ rubygems_version: 3.5.16
91
90
  signing_key:
92
91
  specification_version: 4
93
92
  summary: Action processing with Callback + Rescue handlers for different MIME types
data/CHANGELOG.md DELETED
@@ -1,197 +0,0 @@
1
- # Changelog
2
-
3
- ## [Unreleased](https://github.com/ryancyq/mime_actor/tree/HEAD)
4
-
5
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.7.0...HEAD)
6
-
7
- **Implemented enhancements:**
8
-
9
- - use tagged logging [\#64](https://github.com/ryancyq/mime_actor/issues/64)
10
-
11
- **Merged pull requests:**
12
-
13
- - feat: tagged logging [\#66](https://github.com/ryancyq/mime_actor/pull/66) ([ryancyq](https://github.com/ryancyq))
14
- - refactor: code generator with heredoc [\#65](https://github.com/ryancyq/mime_actor/pull/65) ([ryancyq](https://github.com/ryancyq))
15
-
16
- ## [v0.7.0](https://github.com/ryancyq/mime_actor/tree/v0.7.0) (2024-07-30)
17
-
18
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.6.4...v0.7.0)
19
-
20
- **Merged pull requests:**
21
-
22
- - fix: callback chain sequence respect definition ordering [\#63](https://github.com/ryancyq/mime_actor/pull/63) ([ryancyq](https://github.com/ryancyq))
23
- - refactor: callback generator [\#62](https://github.com/ryancyq/mime_actor/pull/62) ([ryancyq](https://github.com/ryancyq))
24
- - feat: \#act\_on\_action to replace \#respond\_act\_to [\#61](https://github.com/ryancyq/mime_actor/pull/61) ([ryancyq](https://github.com/ryancyq))
25
- - fix: action/format validation [\#60](https://github.com/ryancyq/mime_actor/pull/60) ([ryancyq](https://github.com/ryancyq))
26
-
27
- ## [v0.6.4](https://github.com/ryancyq/mime_actor/tree/v0.6.4) (2024-07-26)
28
-
29
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.6.3...v0.6.4)
30
-
31
- **Implemented enhancements:**
32
-
33
- - Use actor name generator [\#5](https://github.com/ryancyq/mime_actor/issues/5)
34
-
35
- **Merged pull requests:**
36
-
37
- - feat: actor delegator [\#57](https://github.com/ryancyq/mime_actor/pull/57) ([ryancyq](https://github.com/ryancyq))
38
- - lib: add railtie for deprecation config [\#56](https://github.com/ryancyq/mime_actor/pull/56) ([ryancyq](https://github.com/ryancyq))
39
- - lib: extract deprecation into separate file [\#55](https://github.com/ryancyq/mime_actor/pull/55) ([ryancyq](https://github.com/ryancyq))
40
- - refactor: rename with validator into callable validator [\#54](https://github.com/ryancyq/mime_actor/pull/54) ([ryancyq](https://github.com/ryancyq))
41
- - chore\(deps-dev\): bump rubocop from 1.64.1 to 1.65.0 [\#35](https://github.com/ryancyq/mime_actor/pull/35) ([dependabot[bot]](https://github.com/apps/dependabot))
42
-
43
- ## [v0.6.3](https://github.com/ryancyq/mime_actor/tree/v0.6.3) (2024-07-25)
44
-
45
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.6.2...v0.6.3)
46
-
47
- **Merged pull requests:**
48
-
49
- - fix: validate format arg for \#cue\_actor [\#53](https://github.com/ryancyq/mime_actor/pull/53) ([ryancyq](https://github.com/ryancyq))
50
- - fix: use controller\#action\_name [\#52](https://github.com/ryancyq/mime_actor/pull/52) ([ryancyq](https://github.com/ryancyq))
51
- - feat: rescue act callbacks [\#51](https://github.com/ryancyq/mime_actor/pull/51) ([ryancyq](https://github.com/ryancyq))
52
- - lib: allow actor of any visibility to be called [\#50](https://github.com/ryancyq/mime_actor/pull/50) ([ryancyq](https://github.com/ryancyq))
53
- - feat: run act callbacks during `start_scene` [\#49](https://github.com/ryancyq/mime_actor/pull/49) ([ryancyq](https://github.com/ryancyq))
54
- - spec: add act callbacks test sequence [\#48](https://github.com/ryancyq/mime_actor/pull/48) ([ryancyq](https://github.com/ryancyq))
55
- - fix: support collection argument for action/format filters in act\_callacbks configuration [\#47](https://github.com/ryancyq/mime_actor/pull/47) ([ryancyq](https://github.com/ryancyq))
56
- - refactor: move action collection vs single action rule into a composed rule in validator [\#46](https://github.com/ryancyq/mime_actor/pull/46) ([ryancyq](https://github.com/ryancyq))
57
- - refactor: dispatcher callable API [\#45](https://github.com/ryancyq/mime_actor/pull/45) ([ryancyq](https://github.com/ryancyq))
58
- - Revert "Revert "feat: act callbacks"" [\#44](https://github.com/ryancyq/mime_actor/pull/44) ([ryancyq](https://github.com/ryancyq))
59
- - doc: example controller spec [\#31](https://github.com/ryancyq/mime_actor/pull/31) ([ryancyq](https://github.com/ryancyq))
60
-
61
- ## [v0.6.2](https://github.com/ryancyq/mime_actor/tree/v0.6.2) (2024-07-21)
62
-
63
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.6.1...v0.6.2)
64
-
65
- **Implemented enhancements:**
66
-
67
- - feat: act callbacks [\#32](https://github.com/ryancyq/mime_actor/issues/32)
68
-
69
- **Merged pull requests:**
70
-
71
- - Revert "feat: act callbacks" [\#43](https://github.com/ryancyq/mime_actor/pull/43) ([ryancyq](https://github.com/ryancyq))
72
- - feat: act callbacks [\#42](https://github.com/ryancyq/mime_actor/pull/42) ([ryancyq](https://github.com/ryancyq))
73
- - chore: deprecate methods before removal [\#41](https://github.com/ryancyq/mime_actor/pull/41) ([ryancyq](https://github.com/ryancyq))
74
- - lib: instance method rescue\_actor to public [\#40](https://github.com/ryancyq/mime_actor/pull/40) ([ryancyq](https://github.com/ryancyq))
75
- - refactor: replace dispatch\_act rescue with dispatch\_actor rescue [\#39](https://github.com/ryancyq/mime_actor/pull/39) ([ryancyq](https://github.com/ryancyq))
76
- - refactor: dispatcher call [\#38](https://github.com/ryancyq/mime_actor/pull/38) ([ryancyq](https://github.com/ryancyq))
77
- - lib: add gem deprecation message [\#37](https://github.com/ryancyq/mime_actor/pull/37) ([ryancyq](https://github.com/ryancyq))
78
- - lib: keep version as string [\#36](https://github.com/ryancyq/mime_actor/pull/36) ([ryancyq](https://github.com/ryancyq))
79
- - fix: use `module_eval` inside module [\#34](https://github.com/ryancyq/mime_actor/pull/34) ([ryancyq](https://github.com/ryancyq))
80
- - fix: use `#dispatch_act` [\#33](https://github.com/ryancyq/mime_actor/pull/33) ([ryancyq](https://github.com/ryancyq))
81
-
82
- ## [v0.6.1](https://github.com/ryancyq/mime_actor/tree/v0.6.1) (2024-07-03)
83
-
84
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.6.0...v0.6.1)
85
-
86
- **Implemented enhancements:**
87
-
88
- - allow block via scene composition [\#2](https://github.com/ryancyq/mime_actor/issues/2)
89
- - feat: actor responder [\#28](https://github.com/ryancyq/mime_actor/pull/28) ([ryancyq](https://github.com/ryancyq))
90
- - fix: error message should use `#inspect` for param [\#27](https://github.com/ryancyq/mime_actor/pull/27) ([ryancyq](https://github.com/ryancyq))
91
- - fix: rubocop access modifier [\#26](https://github.com/ryancyq/mime_actor/pull/26) ([ryancyq](https://github.com/ryancyq))
92
- - refactor: rescue validation + dispatch [\#25](https://github.com/ryancyq/mime_actor/pull/25) ([ryancyq](https://github.com/ryancyq))
93
- - fix: switch back to ClassMethods [\#24](https://github.com/ryancyq/mime_actor/pull/24) ([ryancyq](https://github.com/ryancyq))
94
- - fix: require active support `nil` class extension [\#23](https://github.com/ryancyq/mime_actor/pull/23) ([ryancyq](https://github.com/ryancyq))
95
- - fix: ensure validation message use \#inspect [\#22](https://github.com/ryancyq/mime_actor/pull/22) ([ryancyq](https://github.com/ryancyq))
96
- - refactor: act\_on\_format with respond\_act\_to [\#21](https://github.com/ryancyq/mime_actor/pull/21) ([ryancyq](https://github.com/ryancyq))
97
-
98
- **Merged pull requests:**
99
-
100
- - fix: ensure `actor` passed to `#cue_actor` is executed within the instance [\#30](https://github.com/ryancyq/mime_actor/pull/30) ([ryancyq](https://github.com/ryancyq))
101
- - fix: update type check logic to raise `TypeError` instead [\#29](https://github.com/ryancyq/mime_actor/pull/29) ([ryancyq](https://github.com/ryancyq))
102
-
103
- ## [v0.6.0](https://github.com/ryancyq/mime_actor/tree/v0.6.0) (2024-07-01)
104
-
105
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.5.4...v0.6.0)
106
-
107
- **Implemented enhancements:**
108
-
109
- - fix: refactor rescue validations [\#20](https://github.com/ryancyq/mime_actor/pull/20) ([ryancyq](https://github.com/ryancyq))
110
- - fix: switch over to active support class methods [\#19](https://github.com/ryancyq/mime_actor/pull/19) ([ryancyq](https://github.com/ryancyq))
111
- - fix: use `#rescue_act_from` [\#17](https://github.com/ryancyq/mime_actor/pull/17) ([ryancyq](https://github.com/ryancyq))
112
- - fix: promote `#act_on_format` to the public API [\#16](https://github.com/ryancyq/mime_actor/pull/16) ([ryancyq](https://github.com/ryancyq))
113
-
114
- **Merged pull requests:**
115
-
116
- - refactor: top level comments [\#18](https://github.com/ryancyq/mime_actor/pull/18) ([ryancyq](https://github.com/ryancyq))
117
-
118
- ## [v0.5.4](https://github.com/ryancyq/mime_actor/tree/v0.5.4) (2024-06-29)
119
-
120
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.5.3...v0.5.4)
121
-
122
- **Implemented enhancements:**
123
-
124
- - fix: alias compose\_scene to act\_on\_format [\#15](https://github.com/ryancyq/mime_actor/pull/15) ([ryancyq](https://github.com/ryancyq))
125
-
126
- ## [v0.5.3](https://github.com/ryancyq/mime_actor/tree/v0.5.3) (2024-06-29)
127
-
128
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.5.2...v0.5.3)
129
-
130
- ## [v0.5.2](https://github.com/ryancyq/mime_actor/tree/v0.5.2) (2024-06-29)
131
-
132
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.5.1...v0.5.2)
133
-
134
- **Implemented enhancements:**
135
-
136
- - fix: ensure block is passed when calling dispatch\_cue [\#13](https://github.com/ryancyq/mime_actor/pull/13) ([ryancyq](https://github.com/ryancyq))
137
-
138
- **Closed issues:**
139
-
140
- - document API [\#4](https://github.com/ryancyq/mime_actor/issues/4)
141
-
142
- **Merged pull requests:**
143
-
144
- - doc: update class/methods with rdoc compatible comments [\#14](https://github.com/ryancyq/mime_actor/pull/14) ([ryancyq](https://github.com/ryancyq))
145
- - chore\(deps-dev\): bump simplecov from 0.21.2 to 0.22.0 [\#12](https://github.com/ryancyq/mime_actor/pull/12) ([dependabot[bot]](https://github.com/apps/dependabot))
146
-
147
- ## [v0.5.1](https://github.com/ryancyq/mime_actor/tree/v0.5.1) (2024-06-28)
148
-
149
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.4.0...v0.5.1)
150
-
151
- **Implemented enhancements:**
152
-
153
- - fix: refine logging message to be clearer in context [\#10](https://github.com/ryancyq/mime_actor/pull/10) ([ryancyq](https://github.com/ryancyq))
154
- - spec: add tests for different type of error class [\#9](https://github.com/ryancyq/mime_actor/pull/9) ([ryancyq](https://github.com/ryancyq))
155
- - spec: add tests to logging module [\#7](https://github.com/ryancyq/mime_actor/pull/7) ([ryancyq](https://github.com/ryancyq))
156
- - spec: improve coverage [\#6](https://github.com/ryancyq/mime_actor/pull/6) ([ryancyq](https://github.com/ryancyq))
157
-
158
- **Merged pull requests:**
159
-
160
- - spec: add action controller specific test [\#11](https://github.com/ryancyq/mime_actor/pull/11) ([ryancyq](https://github.com/ryancyq))
161
- - spec: add tests around rescue handler invocation context [\#8](https://github.com/ryancyq/mime_actor/pull/8) ([ryancyq](https://github.com/ryancyq))
162
-
163
- ## [v0.4.0](https://github.com/ryancyq/mime_actor/tree/v0.4.0) (2024-06-27)
164
-
165
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.3.3...v0.4.0)
166
-
167
- **Implemented enhancements:**
168
-
169
- - handle Mime::ALL priority [\#3](https://github.com/ryancyq/mime_actor/issues/3)
170
-
171
- ## [v0.3.3](https://github.com/ryancyq/mime_actor/tree/v0.3.3) (2024-06-24)
172
-
173
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.3.2...v0.3.3)
174
-
175
- ## [v0.3.2](https://github.com/ryancyq/mime_actor/tree/v0.3.2) (2024-06-24)
176
-
177
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.3.1...v0.3.2)
178
-
179
- ## [v0.3.1](https://github.com/ryancyq/mime_actor/tree/v0.3.1) (2024-06-23)
180
-
181
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.3.0...v0.3.1)
182
-
183
- ## [v0.3.0](https://github.com/ryancyq/mime_actor/tree/v0.3.0) (2024-06-23)
184
-
185
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.2.1...v0.3.0)
186
-
187
- ## [v0.2.1](https://github.com/ryancyq/mime_actor/tree/v0.2.1) (2024-06-23)
188
-
189
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.2.0...v0.2.1)
190
-
191
- ## [v0.2.0](https://github.com/ryancyq/mime_actor/tree/v0.2.0) (2024-06-23)
192
-
193
- [Full Changelog](https://github.com/ryancyq/mime_actor/compare/v0.1.0...v0.2.0)
194
-
195
-
196
-
197
- \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*