Module: Lacerda

Defined in:
lib/lacerda/reporter.rb,
lib/lacerda.rb,
lib/lacerda/tasks.rb,
lib/lacerda/service.rb,
lib/lacerda/version.rb,
lib/lacerda/conversion.rb,
lib/lacerda/service/error.rb,
lib/lacerda/specification.rb,
lib/lacerda/infrastructure.rb,
lib/lacerda/consumed_object.rb,
lib/lacerda/reporters/multi.rb,
lib/lacerda/reporters/rspec.rb,
lib/lacerda/conversion/error.rb,
lib/lacerda/published_object.rb,
lib/lacerda/reporters/stdout.rb,
lib/lacerda/rspec_integration.rb,
lib/lacerda/object_description.rb,
lib/lacerda/compare/json_schema.rb,
lib/lacerda/consume_specification.rb,
lib/lacerda/publish_specification.rb,
lib/lacerda/conversion/data_structure.rb,
lib/lacerda/conversion/apiary_to_json_schema.rb,
lib/lacerda/conversion/data_structure/member.rb,
lib/lacerda/conversion/data_structure/member/type.rb

Overview

Represents a DataStructure AST member and helps transforming it into a json schema.

Defined Under Namespace

Modules: Compare, Conversion, Reporters, RspecIntegration Classes: ConsumeSpecification, ConsumedObject, Infrastructure, ObjectDescription, PublishSpecification, PublishedObject, Reporter, Service, Specification, Tasks

Constant Summary collapse

SCOPE_SEPARATOR =
'::'
VERSION =
'2.1.4'

Class Method Summary collapse

Class Method Details

.deep_copy(object) ⇒ Object

Poor man’s deep copy: json 🆗 🆒



31
32
33
# File 'lib/lacerda.rb', line 31

def self.deep_copy(object)
  JSON.parse({m: object}.to_json)['m']
end

.underscore(string) ⇒ Object

An underscore that doesn’t turn

into /



24
25
26
27
28
# File 'lib/lacerda.rb', line 24

def self.underscore(string)
  string.gsub(/#{SCOPE_SEPARATOR}/, ':')
        .underscore
        .gsub(/:/, SCOPE_SEPARATOR)
end

.validate_reporter(reporter) ⇒ Object



16
17
18
19
20
21
# File 'lib/lacerda.rb', line 16

def self.validate_reporter(reporter)
  return Lacerda::Reporters::MultiReporter.new(reporter) if reporter.is_a?(Array)
  return reporter unless reporter
  return reporter if reporter.class <= Lacerda::Reporter
  raise "reporter must inherit from Lacerda::Reporter, but #{reporter.class.name} doesn't"
end