Module: Julewire::Core

Defined in:
lib/julewire/core.rb,
lib/julewire/core/cli.rb,
lib/julewire/core/error.rb,
lib/julewire/core/runtime.rb,
lib/julewire/core/testing.rb,
lib/julewire/core/version.rb,
lib/julewire/core/cli/tail.rb,
lib/julewire/core/sentinel.rb,
lib/julewire/core/cli/doctor.rb,
lib/julewire/core/processing.rb,
lib/julewire/core/validation.rb,
lib/julewire/core/diagnostics.rb,
lib/julewire/core/fields/bags.rb,
lib/julewire/core/propagation.rb,
lib/julewire/core/destinations.rb,
lib/julewire/core/cli/transcode.rb,
lib/julewire/core/configuration.rb,
lib/julewire/core/context_store.rb,
lib/julewire/core/fields/lookup.rb,
lib/julewire/core/local_storage.rb,
lib/julewire/core/records/draft.rb,
lib/julewire/core/runtime_state.rb,
lib/julewire/core/testing/chaos.rb,
lib/julewire/core/execution/view.rb,
lib/julewire/core/facade_methods.rb,
lib/julewire/core/records/record.rb,
lib/julewire/core/cli/log_formats.rb,
lib/julewire/core/execution/scope.rb,
lib/julewire/core/fields/internal.rb,
lib/julewire/core/lifecycle_error.rb,
lib/julewire/core/runtime_locator.rb,
lib/julewire/core/cli/line_helpers.rb,
lib/julewire/core/diagnostics/tail.rb,
lib/julewire/core/execution/handle.rb,
lib/julewire/core/fields/field_set.rb,
lib/julewire/core/fields/stack_set.rb,
lib/julewire/core/processing/match.rb,
lib/julewire/core/records/metadata.rb,
lib/julewire/core/records/severity.rb,
lib/julewire/core/runtime_registry.rb,
lib/julewire/core/testing/coverage.rb,
lib/julewire/core/destinations/sink.rb,
lib/julewire/core/execution/lineage.rb,
lib/julewire/core/records/formatter.rb,
lib/julewire/core/records/raw_input.rb,
lib/julewire/core/testing/contracts.rb,
lib/julewire/core/diagnostics/doctor.rb,
lib/julewire/core/diagnostics/health.rb,
lib/julewire/core/execution/boundary.rb,
lib/julewire/core/fields/carry_proxy.rb,
lib/julewire/core/fields/field_stack.rb,
lib/julewire/core/integration/facade.rb,
lib/julewire/core/integration/health.rb,
lib/julewire/core/integration/scoped.rb,
lib/julewire/core/integration/values.rb,
lib/julewire/core/processing/pipeline.rb,
lib/julewire/core/processing/sampling.rb,
lib/julewire/core/propagation/carrier.rb,
lib/julewire/core/records/deconstruct.rb,
lib/julewire/core/scheduling/deadline.rb,
lib/julewire/core/fields/context_proxy.rb,
lib/julewire/core/fields/section_proxy.rb,
lib/julewire/core/fields/static_labels.rb,
lib/julewire/core/fields/summary_proxy.rb,
lib/julewire/core/integration/settings.rb,
lib/julewire/core/testing/test_reports.rb,
lib/julewire/core/destinations/registry.rb,
lib/julewire/core/fields/attribute_keys.rb,
lib/julewire/core/integration/lifecycle.rb,
lib/julewire/core/testing/chaos/catalog.rb,
lib/julewire/core/testing/chaos/emitter.rb,
lib/julewire/core/execution/scope_fields.rb,
lib/julewire/core/integration/fork_hooks.rb,
lib/julewire/core/integration/ivar_state.rb,
lib/julewire/core/testing/contracts/wire.rb,
lib/julewire/core/destinations/collection.rb,
lib/julewire/core/destinations/definition.rb,
lib/julewire/core/destinations/write_step.rb,
lib/julewire/core/execution/summary_state.rb,
lib/julewire/core/fields/attributes_proxy.rb,
lib/julewire/core/records/display_message.rb,
lib/julewire/core/records/lazy_emit_input.rb,
lib/julewire/core/destinations/destination.rb,
lib/julewire/core/execution/scope_identity.rb,
lib/julewire/core/execution/scope_snapshot.rb,
lib/julewire/core/fields/internal/deletion.rb,
lib/julewire/core/integration/configurable.rb,
lib/julewire/core/integration/subscription.rb,
lib/julewire/core/serialization/serializer.rb,
lib/julewire/core/serialization/value_copy.rb,
lib/julewire/core/destinations/chaos_output.rb,
lib/julewire/core/diagnostics/meta_observer.rb,
lib/julewire/core/diagnostics/tail/renderer.rb,
lib/julewire/core/records/console_formatter.rb,
lib/julewire/core/records/public_projection.rb,
lib/julewire/core/serialization/deep_freeze.rb,
lib/julewire/core/testing/chaos/destination.rb,
lib/julewire/core/testing/contracts/runtime.rb,
lib/julewire/core/destinations/tail_sampling.rb,
lib/julewire/core/execution/no_current_error.rb,
lib/julewire/core/processing/level_threshold.rb,
lib/julewire/core/processing/processor_chain.rb,
lib/julewire/core/serialization/json_encoder.rb,
lib/julewire/core/serialization/text_encoder.rb,
lib/julewire/core/testing/chaos/core_runtime.rb,
lib/julewire/core/scheduling/shared_scheduler.rb,
lib/julewire/core/testing/contracts/component.rb,
lib/julewire/core/cli/log_formats/console_text.rb,
lib/julewire/core/diagnostics/failure_snapshot.rb,
lib/julewire/core/diagnostics/internal_records.rb,
lib/julewire/core/execution/measurement_handle.rb,
lib/julewire/core/integration/event_subscriber.rb,
lib/julewire/core/processing/processor_wrapper.rb,
lib/julewire/core/testing/chaos/raising_output.rb,
lib/julewire/core/diagnostics/callback_notifier.rb,
lib/julewire/core/processing/processor_registry.rb,
lib/julewire/core/scheduling/deadline_scheduler.rb,
lib/julewire/core/serialization/exception_shape.rb,
lib/julewire/core/serialization/serializer_pool.rb,
lib/julewire/core/serialization/value_traversal.rb,
lib/julewire/core/testing/contracts/integration.rb,
lib/julewire/core/cli/log_formats/record_decoder.rb,
lib/julewire/core/integration/destination_health.rb,
lib/julewire/core/integration/subscriber_install.rb,
lib/julewire/core/testing/contracts/record_draft.rb,
lib/julewire/core/serialization/backtrace_limiter.rb,
lib/julewire/core/serialization/bounded_transform.rb,
lib/julewire/core/serialization/bounded_traversal.rb,
lib/julewire/core/destinations/synchronized_output.rb,
lib/julewire/core/serialization/deep_compact_empty.rb,
lib/julewire/core/serialization/encoding_sanitizer.rb,
lib/julewire/core/cli/log_formats/core_json_decoder.rb,
lib/julewire/core/cli/log_formats/core_json_encoder.rb,
lib/julewire/core/processing/record_field_transform.rb,
lib/julewire/core/diagnostics/integration_health_store.rb,
lib/julewire/core/testing/contracts/deadline_scheduler.rb,
lib/julewire/core/testing/contracts/integration_fields.rb,
lib/julewire/core/diagnostics/invalid_severity_reporter.rb,
lib/julewire/core/diagnostics/process_integration_health.rb

Defined Under Namespace

Modules: Destinations, Diagnostics, Execution, FacadeMethods, Fields, Integration, LocalStorage, Processing, Propagation, Records, RuntimeLocator, RuntimeRegistry, Scheduling, Serialization, Testing, Validation Classes: CLI, Configuration, ContextStore, Error, LifecycleError, Runtime, RuntimeState, Sentinel

Constant Summary collapse

DEFAULT_MAX_RECORD_BYTES =
1_048_576
MAX_BACKTRACE_LINES =
20
NORMALIZATION_MAX_DEPTH =
128
CIRCULAR_REFERENCE =
"[Circular]"
UNSET =
sentinel(:unset)
VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.deep_compact_empty(value) ⇒ Object



36
37
38
# File 'lib/julewire/core.rb', line 36

def deep_compact_empty(value)
  Serialization::DeepCompactEmpty.call(value)
end

.emit_input(input, fields) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/julewire/core.rb', line 40

def emit_input(input, fields)
  return fields if input.equal?(UNSET)
  return input if fields.empty?
  return input.merge(fields) if input.is_a?(Hash)

  { message: input.to_s }.merge(fields)
end

.normalize_name(value, name: :name) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/julewire/core.rb', line 21

def normalize_name(value, name: :name)
  case value
  when String
    raise ArgumentError, "#{name} must not be empty" if value.empty?

    value.to_sym
  when Symbol
    raise ArgumentError, "#{name} must not be empty" if value.name.empty?

    value
  else
    raise ArgumentError, "#{name} must be a String or Symbol"
  end
end

.sentinel(name) ⇒ Object



19
# File 'lib/julewire/core.rb', line 19

def sentinel(name) = Sentinel.new(name)