Feature: Model output All models can be output in text form via `#to_s`. For models that represent parts of the file structure, this text usually is a path. For models that represent parts of a feature file, this text usually is Gherkin. In any case, the output is in a format that can be used to create the same kind of model. Due to the nested nature of model relationships, the default output of `#inspect` can get...lengthy. For this reason, all models override `#inspect` to make it provide a minimal but useful amount of information on the model object. Switching between the minimal and the verbose (i.e. default Ruby behavior) version is controlled by a flag. See the model output documentation for specific models for details. Scenario: Stringify a model Given the models provided by CukeModeler Then all of them can be output as text appropriate to the model type """ model = .new model.to_s """ Scenario: Inspect a model Note: The base model class, `CukeModeler::Model` lacks any "meaningful attributes" Given the models provided by CukeModeler Then all of them can provide a custom inspection output """ model = .new model.inspect """ And the inspection values are of the form: """ #: : > """ But the base model class inspection value is of the form: """ #:> """ Scenario: Controlling inspection output Note: Non-verbose inspection is the default behavior for models Given the models provided by CukeModeler When using non-verbose inspection """ model = .new model.inspect(verbose: false) """ Then the custom model inspection is used When using verbose inspection """ model = .new model.inspect(verbose: true) """ Then the default Ruby inspection is used