Module: Axn

Included in:
Async::EnqueueAllOrchestrator
Defined in:
lib/axn/form_object.rb,
lib/axn.rb,
lib/axn/core.rb,
lib/axn/async.rb,
lib/axn/error.rb,
lib/axn/tools.rb,
lib/axn/result.rb,
lib/axn/factory.rb,
lib/axn/testing.rb,
lib/axn/version.rb,
lib/axn/core/flow.rb,
lib/axn/mountable.rb,
lib/axn/core/hooks.rb,
lib/axn/exceptions.rb,
lib/axn/extensions.rb,
lib/axn/strategies.rb,
lib/axn/core/naming.rb,
lib/axn/configurable.rb,
lib/axn/core/context.rb,
lib/axn/core/logging.rb,
lib/axn/core/tagging.rb,
lib/axn/rails/engine.rb,
lib/axn/configuration.rb,
lib/axn/core/contract.rb,
lib/axn/core/executor.rb,
lib/axn/internal/text.rb,
lib/axn/tools/invoker.rb,
lib/axn/async/adapters.rb,
lib/axn/tools/registry.rb,
lib/axn/async/ownership.rb,
lib/axn/core/versioning.rb,
lib/axn/internal/timing.rb,
lib/axn/strategies/form.rb,
lib/axn/core/memoization.rb,
lib/axn/internal/tracing.rb,
lib/axn/core/default_call.rb,
lib/axn/core/use_strategy.rb,
lib/axn/extensions/config.rb,
lib/axn/internal/callable.rb,
lib/axn/internal/coercion.rb,
lib/axn/internal/identity.rb,
lib/axn/internal/registry.rb,
lib/axn/core/flow/fails_on.rb,
lib/axn/core/flow/handlers.rb,
lib/axn/core/flow/messages.rb,
lib/axn/field_declarations.rb,
lib/axn/internal/rendering.rb,
lib/axn/async/batch_enqueue.rb,
lib/axn/async/retry_context.rb,
lib/axn/core/context/facade.rb,
lib/axn/core/flow/callbacks.rb,
lib/axn/core/semantic_hints.rb,
lib/axn/internal/reflection.rb,
lib/axn/tools/adapter_roots.rb,
lib/axn/tools/version_group.rb,
lib/axn/core/ambient_context.rb,
lib/axn/core/field_resolvers.rb,
lib/axn/core/validation/base.rb,
lib/axn/internal/call_logger.rb,
lib/axn/internal/cycle_guard.rb,
lib/axn/internal/memoization.rb,
lib/axn/internal/shape_graph.rb,
lib/axn/mountable/descriptor.rb,
lib/axn/testing/spec_helpers.rb,
lib/axn/core/context/internal.rb,
lib/axn/core/method_shadowing.rb,
lib/axn/core/nesting_tracking.rb,
lib/axn/core/tool_declaration.rb,
lib/axn/internal/field_config.rb,
lib/axn/async/adapters/sidekiq.rb,
lib/axn/core/automatic_logging.rb,
lib/axn/core/schema_reflection.rb,
lib/axn/core/validation/fields.rb,
lib/axn/internal/subfield_tree.rb,
lib/axn/strategies/transaction.rb,
lib/axn/util/execution_context.rb,
lib/axn/async/adapters/disabled.rb,
lib/axn/core/contract/redaction.rb,
lib/axn/core/extension_metadata.rb,
lib/axn/internal/native_methods.rb,
lib/axn/extensions/serialization.rb,
lib/axn/extras/strategies/client.rb,
lib/axn/async/adapters/active_job.rb,
lib/axn/async/exception_reporting.rb,
lib/axn/extras/strategies/vernier.rb,
lib/axn/mountable/helpers/mounter.rb,
lib/axn/async/batch_enqueue/config.rb,
lib/axn/core/field_resolvers/model.rb,
lib/axn/core/flow/handlers/invoker.rb,
lib/axn/core/flow/handlers/matcher.rb,
lib/axn/internal/exception_context.rb,
lib/axn/internal/reflection/schema.rb,
lib/axn/internal/reflection/values.rb,
lib/axn/mountable/inherit_profiles.rb,
lib/axn/core/contract_for_subfields.rb,
lib/axn/core/flow/handlers/registry.rb,
lib/axn/internal/resolved_subfields.rb,
lib/axn/mountable/helpers/validator.rb,
lib/axn/core/field_resolvers/extract.rb,
lib/axn/internal/async_serialization.rb,
lib/axn/async/adapters/sidekiq/worker.rb,
lib/axn/core/context/facade_inspector.rb,
lib/axn/internal/carried_presentation.rb,
lib/axn/internal/current_call_options.rb,
lib/axn/mountable/mounting_strategies.rb,
lib/axn/async/enqueue_all_orchestrator.rb,
lib/axn/rails/generators/axn_generator.rb,
lib/axn/core/contract/shape_declaration.rb,
lib/axn/mountable/helpers/class_builder.rb,
lib/axn/internal/contract_error_handling.rb,
lib/axn/internal/global_id_serialization.rb,
lib/axn/async/adapters/sidekiq/middleware.rb,
lib/axn/internal/exception_classification.rb,
lib/axn/mountable/mounting_strategies/axn.rb,
lib/axn/core/flow/handlers/base_descriptor.rb,
lib/axn/internal/reflection/property_names.rb,
lib/axn/mountable/mounting_strategies/step.rb,
lib/axn/mountable/helpers/namespace_manager.rb,
lib/axn/mountable/mounting_strategies/_base.rb,
lib/axn/async/adapters/sidekiq/death_handler.rb,
lib/axn/async/adapters/sidekiq/retry_helpers.rb,
lib/axn/mountable/mounting_strategies/method.rb,
lib/axn/async/adapters/sidekiq/auto_configure.rb,
lib/axn/core/contract/subfield_contradictions.rb,
lib/axn/core/validation/validators/of_validator.rb,
lib/axn/core/validation/validators/type_validator.rb,
lib/axn/core/flow/handlers/resolvers/base_resolver.rb,
lib/axn/core/validation/validators/model_validator.rb,
lib/axn/core/validation/validators/shape_validator.rb,
lib/axn/core/flow/handlers/resolvers/message_resolver.rb,
lib/axn/core/validation/validators/validate_validator.rb,
lib/axn/core/flow/handlers/resolvers/callback_resolver.rb,
lib/axn/core/flow/handlers/descriptors/message_descriptor.rb,
lib/axn/core/flow/handlers/descriptors/callback_descriptor.rb,
lib/axn/core/validation/validators/non_emptiness_validator.rb

Overview

NOTE: we don't require "active_support/core_ext/object/json" here, but a Rails app loads it globally — which adds a generic Object#as_json (to_hash.as_json when the value has a to_hash, an instance-variable dump otherwise). To avoid that bypassing a value object's declared to_h shape, serialize_value prefers to_h whenever the only as_json in reach is that generic one (see projection_for), so a plain object with a meaningful to_h serializes via to_h in Rails and non-Rails alike. A value with none of the three declares no shape at all, so reject_opaque rejects it there just as it rejects the object address it renders as outside Rails.

Defined Under Namespace

Modules: Async, Configurable, Core, Error, Extensions, Extras, FieldDeclarations, Internal, Mountable, RailsIntegration, Testing, Tools, Util, Validation, Validators Classes: Configuration, ContractViolation, DuplicateStrategyError, Factory, Failure, FormObject, InboundValidationError, OutboundValidationError, RailsConfiguration, ReraiseFailed, Result, Strategies, StrategyNotFound, UnsupportedArgument, ValidationError

Constant Summary collapse

VERSION =
"0.1.0-alpha.5"

Class Method Summary collapse

Class Method Details

.configObject



397
# File 'lib/axn/configuration.rb', line 397

def config = @config ||= Configuration.new

.configure {|config| ... } ⇒ Object

Yields:



399
400
401
# File 'lib/axn/configuration.rb', line 399

def configure
  yield(config) if block_given?
end

.included(base) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/axn.rb', line 58

def self.included(base)
  # Re-including Axn (e.g. `include Axn` in a subclass of an existing Axn) would re-run
  # setup and reset the inheritance-aware class_attributes that hold field configs,
  # silently wiping the parent's expects/exposes. Inheritance already carries everything
  # down, so treat a redundant inclusion as a no-op.
  return if base < Core

  base.class_eval do
    include Core

    # --- Extensions ---
    include Mountable
    include Async

    # Allow additional automatic includes to be configured
    Array(Axn.config.additional_includes).each { |mod| include mod }
  end

  Axn::Tools::Registry.register_class(base)
end