Class: Interpol::Configuration
- Inherits:
-
Object
- Object
- Interpol::Configuration
- Defined in:
- lib/interpol/configuration.rb
Overview
Public: Defines interpol configuration.
Instance Attribute Summary collapse
-
#documentation_title ⇒ Object
Returns the value of attribute documentation_title.
-
#endpoint_definition_files ⇒ Object
Returns the value of attribute endpoint_definition_files.
-
#endpoints ⇒ Object
Returns the value of attribute endpoints.
-
#validation_mode ⇒ Object
Returns the value of attribute validation_mode.
Class Method Summary collapse
Instance Method Summary collapse
- #api_version(version = nil, &block) ⇒ Object
- #api_version_for(rack_env, endpoint = nil) ⇒ Object
- #customized_duplicate(&block) ⇒ Object
-
#initialize {|_self| ... } ⇒ Configuration
constructor
A new instance of Configuration.
- #on_unavailable_request_version(&block) ⇒ Object
- #request_version_unavailable(execution_context, *args) ⇒ Object
- #validate?(*args) ⇒ Boolean
- #validate_if(&block) ⇒ Object
Constructor Details
#initialize {|_self| ... } ⇒ Configuration
Returns a new instance of Configuration.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/interpol/configuration.rb', line 31 def initialize api_version do raise ConfigurationError, "api_version has not been configured" end validate_if do |env, status, headers, body| headers['Content-Type'].to_s.include?('json') && (200..299).cover?(status) && status != 204 # No Content end on_unavailable_request_version do |requested, available| = "The requested API version is invalid. " + "Requested: #{requested}. " + "Available: #{available}" halt 406, JSON.dump(error: ) end self.endpoint_definition_files = [] self.documentation_title = "API Documentation Provided by Interpol" yield self if block_given? end |
Instance Attribute Details
#documentation_title ⇒ Object
Returns the value of attribute documentation_title.
29 30 31 |
# File 'lib/interpol/configuration.rb', line 29 def documentation_title @documentation_title end |
#endpoint_definition_files ⇒ Object
Returns the value of attribute endpoint_definition_files.
28 29 30 |
# File 'lib/interpol/configuration.rb', line 28 def endpoint_definition_files @endpoint_definition_files end |
#endpoints ⇒ Object
Returns the value of attribute endpoints.
28 29 30 |
# File 'lib/interpol/configuration.rb', line 28 def endpoints @endpoints end |
#validation_mode ⇒ Object
Returns the value of attribute validation_mode.
29 30 31 |
# File 'lib/interpol/configuration.rb', line 29 def validation_mode @validation_mode end |
Class Method Details
.default ⇒ Object
93 94 95 |
# File 'lib/interpol/configuration.rb', line 93 def self.default @default ||= Configuration.new end |
Instance Method Details
#api_version(version = nil, &block) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/interpol/configuration.rb', line 64 def api_version(version=nil, &block) if [version, block].compact.size.even? raise ConfigurationError.new("api_version requires a static version " + "or a dynamic block, but not both") end @api_version_block = block || lambda { |*a| version } end |
#api_version_for(rack_env, endpoint = nil) ⇒ Object
73 74 75 |
# File 'lib/interpol/configuration.rb', line 73 def api_version_for(rack_env, endpoint=nil) @api_version_block.call(rack_env, endpoint).to_s end |
#customized_duplicate(&block) ⇒ Object
97 98 99 100 |
# File 'lib/interpol/configuration.rb', line 97 def customized_duplicate(&block) block ||= lambda { |c| } dup.tap(&block) end |
#on_unavailable_request_version(&block) ⇒ Object
85 86 87 |
# File 'lib/interpol/configuration.rb', line 85 def on_unavailable_request_version(&block) @unavailable_request_version_block = block end |
#request_version_unavailable(execution_context, *args) ⇒ Object
89 90 91 |
# File 'lib/interpol/configuration.rb', line 89 def request_version_unavailable(execution_context, *args) execution_context.instance_exec(*args, &@unavailable_request_version_block) end |
#validate?(*args) ⇒ Boolean
81 82 83 |
# File 'lib/interpol/configuration.rb', line 81 def validate?(*args) @validate_if_block.call(*args) end |
#validate_if(&block) ⇒ Object
77 78 79 |
# File 'lib/interpol/configuration.rb', line 77 def validate_if(&block) @validate_if_block = block end |