Module: Railsmith

Defined in:
lib/railsmith.rb,
lib/railsmith/hooks.rb,
lib/railsmith/errors.rb,
lib/railsmith/result.rb,
lib/railsmith/context.rb,
lib/railsmith/failure.rb,
lib/railsmith/railtie.rb,
lib/railsmith/version.rb,
lib/railsmith/deep_dup.rb,
lib/railsmith/pipeline.rb,
lib/railsmith/hooks/dsl.rb,
lib/railsmith/arch_report.rb,
lib/railsmith/base_service.rb,
lib/railsmith/hooks/errors.rb,
lib/railsmith/hooks/runner.rb,
lib/railsmith/configuration.rb,
lib/railsmith/domain_context.rb,
lib/railsmith/arch_checks/cli.rb,
lib/railsmith/async_enqueuers.rb,
lib/railsmith/instrumentation.rb,
lib/railsmith/pipeline/errors.rb,
lib/railsmith/pipeline/runner.rb,
lib/railsmith/hooks/hook_chain.rb,
lib/railsmith/hooks/hook_entry.rb,
lib/railsmith/controller_helpers.rb,
lib/railsmith/cross_domain_guard.rb,
lib/railsmith/hooks/hook_registry.rb,
lib/railsmith/arch_checks/violation.rb,
lib/railsmith/async_nested_write_job.rb,
lib/railsmith/base_service/input_dsl.rb,
lib/railsmith/base_service/validation.rb,
lib/railsmith/base_service/bulk_params.rb,
lib/railsmith/base_service/dup_helpers.rb,
lib/railsmith/pipeline/step_definition.rb,
lib/railsmith/base_service/bulk_actions.rb,
lib/railsmith/base_service/crud_actions.rb,
lib/railsmith/base_service/bulk_contract.rb,
lib/railsmith/base_service/eager_loading.rb,
lib/railsmith/base_service/nested_writer.rb,
lib/railsmith/base_service/type_coercion.rb,
lib/railsmith/base_service/bulk_execution.rb,
lib/railsmith/base_service/input_registry.rb,
lib/railsmith/base_service/input_resolver.rb,
lib/railsmith/base_service/association_dsl.rb,
lib/railsmith/base_service/input_definition.rb,
lib/railsmith/base_service/crud_transactions.rb,
lib/railsmith/cross_domain_warning_formatter.rb,
lib/railsmith/base_service/crud_error_mapping.rb,
lib/railsmith/base_service/context_propagation.rb,
lib/railsmith/base_service/crud_record_helpers.rb,
lib/railsmith/base_service/association_registry.rb,
lib/generators/railsmith/domain/domain_generator.rb,
lib/railsmith/base_service/crud_model_resolution.rb,
lib/railsmith/base_service/association_definition.rb,
lib/generators/railsmith/install/install_generator.rb,
lib/generators/railsmith/pipeline/pipeline_generator.rb,
lib/railsmith/arch_checks/direct_model_access_checker.rb,
lib/railsmith/base_service/domain_context_propagation.rb,
lib/railsmith/base_service/nested_writer/nested_write.rb,
lib/generators/railsmith/operation/operation_generator.rb,
lib/railsmith/arch_checks/missing_service_usage_checker.rb,
lib/railsmith/base_service/nested_writer/cascading_destroy.rb,
lib/generators/railsmith/model_service/model_service_generator.rb,
lib/railsmith/base_service/nested_writer/nested_write/write_nested.rb,
lib/railsmith/base_service/nested_writer/nested_write/async_enqueueing.rb,
lib/railsmith/base_service/nested_writer/nested_write/write_nested_item.rb

Overview

Railsmith provides a service-layer toolkit for Rails apps.

Defined Under Namespace

Modules: ArchChecks, AsyncEnqueuers, ControllerHelpers, CrossDomainGuard, CrossDomainWarningFormatter, Errors, Generators, Hooks, Instrumentation Classes: ArchReport, AsyncNestedWriteJob, AsyncNotConfiguredError, BaseService, Configuration, Context, DomainContext, Error, Failure, Pipeline, Railtie, Result

Constant Summary collapse

VERSION =
"1.3.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



35
36
37
# File 'lib/railsmith.rb', line 35

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



39
40
41
# File 'lib/railsmith.rb', line 39

def configure
  yield(configuration)
end

.deep_dup(value) ⇒ Object

Deep-duplicates Hash/Array trees for defensive copies (params/context).



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/railsmith/deep_dup.rb', line 8

def deep_dup(value)
  case value
  when Hash
    value.each_with_object({}) { |(key, item), memo| memo[key] = deep_dup(item) }
  when Array
    value.map { |item| deep_dup(item) }
  else
    value.dup
  end
rescue TypeError
  value
end