Class: RubyReactor::Dsl::StepConfig
- Inherits:
-
Object
- Object
- RubyReactor::Dsl::StepConfig
- Defined in:
- lib/ruby_reactor/dsl/step_builder.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#args_validator ⇒ Object
readonly
Returns the value of attribute args_validator.
-
#arguments ⇒ Object
readonly
Returns the value of attribute arguments.
-
#async_dispatch ⇒ Object
readonly
Returns the value of attribute async_dispatch.
-
#compensate_block ⇒ Object
readonly
Returns the value of attribute compensate_block.
-
#conditions ⇒ Object
readonly
Returns the value of attribute conditions.
-
#dependencies ⇒ Object
readonly
Returns the value of attribute dependencies.
-
#guards ⇒ Object
readonly
Returns the value of attribute guards.
-
#impl ⇒ Object
readonly
Returns the value of attribute impl.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#output_validator ⇒ Object
readonly
Returns the value of attribute output_validator.
-
#retry_config ⇒ Object
readonly
Returns the value of attribute retry_config.
-
#run_block ⇒ Object
readonly
Returns the value of attribute run_block.
-
#undo_block ⇒ Object
readonly
Returns the value of attribute undo_block.
Instance Method Summary collapse
-
#async_dispatch? ⇒ Boolean
True for
async_step/async_reactor— the step's work leaves this process instead of running inline. - #has_impl? ⇒ Boolean
- #has_run_block? ⇒ Boolean
-
#initialize(config) ⇒ StepConfig
constructor
A new instance of StepConfig.
- #interrupt? ⇒ Boolean
- #retryable? ⇒ Boolean
- #should_run?(context) ⇒ Boolean
Constructor Details
#initialize(config) ⇒ StepConfig
Returns a new instance of StepConfig.
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 141 def initialize(config) @async_dispatch = config[:async_dispatch] @name = config[:name] @impl = config[:impl] @arguments = config[:arguments] || {} @run_block = config[:run_block] @compensate_block = config[:compensate_block] @undo_block = config[:undo_block] @conditions = config[:conditions] || [] @guards = config[:guards] || [] @dependencies = config[:dependencies] || [] @args_validator = config[:args_validator] @output_validator = config[:output_validator] @retry_config = { max_attempts: 1 }.merge(config[:retry_config] || {}) end |
Instance Attribute Details
#args_validator ⇒ Object (readonly)
Returns the value of attribute args_validator.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def args_validator @args_validator end |
#arguments ⇒ Object (readonly)
Returns the value of attribute arguments.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def arguments @arguments end |
#async_dispatch ⇒ Object (readonly)
Returns the value of attribute async_dispatch.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def async_dispatch @async_dispatch end |
#compensate_block ⇒ Object (readonly)
Returns the value of attribute compensate_block.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def compensate_block @compensate_block end |
#conditions ⇒ Object (readonly)
Returns the value of attribute conditions.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def conditions @conditions end |
#dependencies ⇒ Object (readonly)
Returns the value of attribute dependencies.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def dependencies @dependencies end |
#guards ⇒ Object (readonly)
Returns the value of attribute guards.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def guards @guards end |
#impl ⇒ Object (readonly)
Returns the value of attribute impl.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def impl @impl end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def name @name end |
#output_validator ⇒ Object (readonly)
Returns the value of attribute output_validator.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def output_validator @output_validator end |
#retry_config ⇒ Object (readonly)
Returns the value of attribute retry_config.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def retry_config @retry_config end |
#run_block ⇒ Object (readonly)
Returns the value of attribute run_block.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def run_block @run_block end |
#undo_block ⇒ Object (readonly)
Returns the value of attribute undo_block.
138 139 140 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 138 def undo_block @undo_block end |
Instance Method Details
#async_dispatch? ⇒ Boolean
True for async_step / async_reactor — the step's work leaves this
process instead of running inline. RSpec::TestSubject's async: false
clears the marker to run the whole reactor in one process.
160 161 162 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 160 def async_dispatch? !@async_dispatch.nil? end |
#has_impl? ⇒ Boolean
164 165 166 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 164 def has_impl? !@impl.nil? end |
#has_run_block? ⇒ Boolean
168 169 170 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 168 def has_run_block? !@run_block.nil? end |
#interrupt? ⇒ Boolean
181 182 183 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 181 def interrupt? false end |
#retryable? ⇒ Boolean
172 173 174 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 172 def retryable? (retry_config[:max_attempts] || 0) > 1 end |
#should_run?(context) ⇒ Boolean
176 177 178 179 |
# File 'lib/ruby_reactor/dsl/step_builder.rb', line 176 def should_run?(context) @conditions.all? { |condition| condition.call(context) } && @guards.all? { |guard| guard.call(context) } end |