Module: ApiRegulator

Defined in:
lib/api-regulator.rb,
lib/api_regulator/api.rb,
lib/api_regulator/dsl.rb,
lib/api_regulator/param.rb,
lib/api_regulator/formats.rb,
lib/api_regulator/version.rb,
lib/api_regulator/webhook.rb,
lib/api_regulator/security.rb,
lib/api_regulator/validator.rb,
lib/api_regulator/configuration.rb,
lib/api_regulator/shared_schema.rb,
lib/api_regulator/controller_mixin.rb,
lib/api_regulator/validation_error.rb,
lib/api_regulator/open_api_generator.rb

Defined Under Namespace

Modules: AttributeDefinitionMixin, ControllerMixin, DSL, Formats Classes: Api, Configuration, Error, InvalidParams, OpenApiGenerator, Param, SharedSchema, UnexpectedParams, ValidationError, Validator, Webhook

Constant Summary collapse

VERSION =
"0.1.28"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



24
25
26
# File 'lib/api-regulator.rb', line 24

def configuration
  @configuration
end

.securityObject

Returns the value of attribute security.



3
4
5
# File 'lib/api_regulator/security.rb', line 3

def security
  @security
end

.shared_schema_registryObject

Returns the value of attribute shared_schema_registry.



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

def shared_schema_registry
  @shared_schema_registry
end

Class Method Details

.api_definitionsObject



114
115
116
# File 'lib/api_regulator/api.rb', line 114

def api_definitions
  @api_definitions ||= []
end

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

Yields:



26
27
28
29
# File 'lib/api-regulator.rb', line 26

def configure
  self.configuration ||= Configuration.new
  yield(configuration)
end

.prepare_validatorsObject



31
32
33
34
35
# File 'lib/api-regulator.rb', line 31

def prepare_validators
  Rails.application.eager_load! # Ensure all controllers and API definitions are loaded

  ApiRegulator::Validator.build_all(ApiRegulator.api_definitions)
end

.register_shared_schema(name, description, &block) ⇒ Object



55
56
57
# File 'lib/api_regulator/shared_schema.rb', line 55

def register_shared_schema(name, description, &block)
  shared_schema_registry[name] = [description, block]
end

.reset_api_definitionsObject



122
123
124
# File 'lib/api_regulator/api.rb', line 122

def reset_api_definitions
  set_api_definitions([])
end

.reset_webhook_definitionsObject



54
55
56
# File 'lib/api_regulator/webhook.rb', line 54

def reset_webhook_definitions
  @webhook_definitions = []
end

.security_schemesObject



5
6
7
# File 'lib/api_regulator/security.rb', line 5

def security_schemes
  @security_schemes ||= {}
end

.security_schemes=(scheme) ⇒ Object



9
10
11
# File 'lib/api_regulator/security.rb', line 9

def security_schemes=(scheme)
  @security_schemes = scheme
end

.set_api_definitions(defs) ⇒ Object



118
119
120
# File 'lib/api_regulator/api.rb', line 118

def set_api_definitions(defs)
  @api_definitions = defs
end

.shared_schema(name) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/api_regulator/shared_schema.rb', line 45

def shared_schema(name)
  if shared_schema_registry[name]
    description, block = shared_schema_registry.delete(name)

    @shared_schemas[name] = SharedSchema.new(name, description, &block)
  end

  @shared_schemas[name]
end

.shared_schemasObject



37
38
39
40
41
42
43
# File 'lib/api_regulator/shared_schema.rb', line 37

def shared_schemas
  shared_schema_registry.each do |name, (description, block)|
    @shared_schemas[name] = SharedSchema.new(name, description, &block)
  end

  @shared_schemas
end

.webhook_definitionsObject



50
51
52
# File 'lib/api_regulator/webhook.rb', line 50

def webhook_definitions
  @webhook_definitions ||= []
end