Module: SpecForge

Defined in:
lib/spec_forge.rb,
lib/spec_forge/cli.rb,
lib/spec_forge/http.rb,
lib/spec_forge/step.rb,
lib/spec_forge/type.rb,
lib/spec_forge/error.rb,
lib/spec_forge/forge.rb,
lib/spec_forge/loader.rb,
lib/spec_forge/cli/new.rb,
lib/spec_forge/cli/run.rb,
lib/spec_forge/factory.rb,
lib/spec_forge/version.rb,
lib/spec_forge/cli/docs.rb,
lib/spec_forge/cli/init.rb,
lib/spec_forge/matchers.rb,
lib/spec_forge/attribute.rb,
lib/spec_forge/blueprint.rb,
lib/spec_forge/cli/serve.rb,
lib/spec_forge/http/verb.rb,
lib/spec_forge/step/call.rb,
lib/spec_forge/normalizer.rb,
lib/spec_forge/cli/actions.rb,
lib/spec_forge/cli/command.rb,
lib/spec_forge/forge/hooks.rb,
lib/spec_forge/forge/timer.rb,
lib/spec_forge/http/client.rb,
lib/spec_forge/step/expect.rb,
lib/spec_forge/step/source.rb,
lib/spec_forge/forge/action.rb,
lib/spec_forge/forge/runner.rb,
lib/spec_forge/http/backend.rb,
lib/spec_forge/http/request.rb,
lib/spec_forge/configuration.rb,
lib/spec_forge/documentation.rb,
lib/spec_forge/forge/context.rb,
lib/spec_forge/forge/display.rb,
lib/spec_forge/loader/filter.rb,
lib/spec_forge/attribute/faker.rb,
lib/spec_forge/attribute/regex.rb,
lib/spec_forge/forge/callbacks.rb,
lib/spec_forge/forge/variables.rb,
lib/spec_forge/attribute/factory.rb,
lib/spec_forge/attribute/literal.rb,
lib/spec_forge/attribute/matcher.rb,
lib/spec_forge/cli/docs/generate.rb,
lib/spec_forge/attribute/generate.rb,
lib/spec_forge/attribute/template.rb,
lib/spec_forge/attribute/variable.rb,
lib/spec_forge/forge/actions/call.rb,
lib/spec_forge/normalizer/default.rb,
lib/spec_forge/attribute/chainable.rb,
lib/spec_forge/attribute/transform.rb,
lib/spec_forge/forge/actions/debug.rb,
lib/spec_forge/forge/actions/store.rb,
lib/spec_forge/attribute/resolvable.rb,
lib/spec_forge/forge/actions/expect.rb,
lib/spec_forge/normalizer/structure.rb,
lib/spec_forge/attribute/environment.rb,
lib/spec_forge/documentation/builder.rb,
lib/spec_forge/documentation/openapi.rb,
lib/spec_forge/forge/actions/request.rb,
lib/spec_forge/forge/runner/array_io.rb,
lib/spec_forge/forge/runner/reporter.rb,
lib/spec_forge/loader/step_processor.rb,
lib/spec_forge/normalizer/validators.rb,
lib/spec_forge/documentation/document.rb,
lib/spec_forge/attribute/parameterized.rb,
lib/spec_forge/documentation/generator.rb,
lib/spec_forge/normalizer/transformers.rb,
lib/spec_forge/attribute/resolvable_hash.rb,
lib/spec_forge/attribute/resolvable_array.rb,
lib/spec_forge/documentation/openapi/v3_0.rb,
lib/spec_forge/attribute/resolvable_struct.rb,
lib/spec_forge/documentation/builder/cache.rb,
lib/spec_forge/forge/runner/header_validator.rb,
lib/spec_forge/forge/runner/schema_validator.rb,
lib/spec_forge/documentation/builder/compiler.rb,
lib/spec_forge/documentation/openapi/v3_0/tag.rb,
lib/spec_forge/forge/runner/content_validator.rb,
lib/spec_forge/documentation/builder/extractor.rb,
lib/spec_forge/documentation/document/response.rb,
lib/spec_forge/documentation/document/operation.rb,
lib/spec_forge/documentation/document/parameter.rb,
lib/spec_forge/documentation/openapi/v3_0/schema.rb,
lib/spec_forge/documentation/openapi/v3_0/example.rb,
lib/spec_forge/documentation/document/request_body.rb,
lib/spec_forge/documentation/openapi/v3_0/response.rb,
lib/spec_forge/documentation/document/response_body.rb,
lib/spec_forge/documentation/openapi/v3_0/operation.rb,
lib/spec_forge/documentation/openapi/v3_0/media_type.rb,
lib/spec_forge/documentation/openapi/v3_0/error_formatter.rb

Overview

loader.eager_load(force: true)

Defined Under Namespace

Modules: Documentation, HTTP, Type Classes: Attribute, Blueprint, CLI, Configuration, Error, Factory, Forge, Loader, Matchers, Normalizer, Step

Constant Summary collapse

VERSION =

Current version of SpecForge

"1.0.0"

Class Method Summary collapse

Class Method Details

.backtrace_cleanerActiveSupport::BacktraceCleaner

Returns a backtrace cleaner configured for SpecForge

Creates and configures an ActiveSupport::BacktraceCleaner to improve error messages by removing unnecessary lines and root paths.

Returns:

  • (ActiveSupport::BacktraceCleaner)

    The configured backtrace cleaner



126
127
128
129
130
131
132
133
134
135
# File 'lib/spec_forge.rb', line 126

def backtrace_cleaner
  @backtrace_cleaner ||= begin
    root = "#{SpecForge.root}/"

    cleaner = ActiveSupport::BacktraceCleaner.new
    cleaner.add_filter { |line| line.delete_prefix(root) }
    cleaner.add_silencer { |line| /rubygems|backtrace_cleaner/.match?(line) }
    cleaner
  end
end

.blueprints_pathPathname

Returns SpecForge's blueprints directory

Returns:

  • (Pathname)

    The spec_forge blueprints directory path



83
84
85
# File 'lib/spec_forge.rb', line 83

def blueprints_path
  @blueprints_path ||= forge_path.join("blueprints")
end

.configurationConfiguration

Returns SpecForge's configuration

Returns:



101
102
103
# File 'lib/spec_forge.rb', line 101

def configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ Configuration

Yields SpecForge's configuration to a block for modification

Yields:

  • (config)

    Block that receives the configuration object

Yield Parameters:

Returns:



113
114
115
116
# File 'lib/spec_forge.rb', line 113

def configure(&block)
  block&.call(configuration)
  configuration
end

.forge_pathPathname

Returns SpecForge's working directory

Returns:

  • (Pathname)

    The spec_forge directory path



74
75
76
# File 'lib/spec_forge.rb', line 74

def forge_path
  @forge_path ||= root.join("spec_forge")
end

.openapi_pathPathname

Returns SpecForge's openapi directory

Returns:

  • (Pathname)

    The spec_forge openapi directory path



92
93
94
# File 'lib/spec_forge.rb', line 92

def openapi_path
  @openapi_path ||= forge_path.join("openapi")
end

.rootPathname

Returns the directory root for the working directory

Returns:

  • (Pathname)

    The root directory path



65
66
67
# File 'lib/spec_forge.rb', line 65

def root
  @root ||= Pathname.pwd
end