Exception: Safire::Errors::ConfigurationError
- Defined in:
- lib/safire/errors.rb
Overview
Raised when client configuration is missing or invalid.
Instance Attribute Summary collapse
-
#invalid_attribute ⇒ Symbol?
readonly
Attribute whose value is not acceptable.
-
#invalid_uri_attributes ⇒ Array<Symbol>
readonly
Attributes whose URIs are malformed.
-
#invalid_value ⇒ Object?
readonly
The offending value.
-
#missing_attributes ⇒ Array<Symbol>
readonly
Required attributes that are absent.
-
#non_https_uri_attributes ⇒ Array<Symbol>
readonly
Attributes whose URIs use HTTP on a non-localhost host.
-
#valid_values ⇒ Array?
readonly
Acceptable values for the attribute.
Instance Method Summary collapse
-
#initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) ⇒ ConfigurationError
constructor
A new instance of ConfigurationError.
Constructor Details
#initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) ⇒ ConfigurationError
Returns a new instance of ConfigurationError.
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/safire/errors.rb', line 41 def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end |
Instance Attribute Details
#invalid_attribute ⇒ Symbol? (readonly)
Returns attribute whose value is not acceptable.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/safire/errors.rb', line 37 class ConfigurationError < Error attr_reader :missing_attributes, :invalid_attribute, :invalid_value, :valid_values, :invalid_uri_attributes, :non_https_uri_attributes def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end private def if @missing_attributes.any? "Configuration missing: #{@missing_attributes.join(', ')}" elsif @invalid_attribute "Invalid #{@invalid_attribute}: #{@invalid_value.inspect}; valid: #{@valid_values&.join(', ')}" else end end def parts = [] parts << "Configuration has invalid URIs: #{@invalid_uri_attributes.join(', ')}" if @invalid_uri_attributes.any? if @non_https_uri_attributes.any? parts << "Configuration requires HTTPS for: #{@non_https_uri_attributes.join(', ')} " \ '(SMART App Launch 2.2.0 requires TLS; HTTP is only allowed for localhost)' end parts.any? ? parts.join('. ') : 'Configuration error' end end |
#invalid_uri_attributes ⇒ Array<Symbol> (readonly)
Returns attributes whose URIs are malformed.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/safire/errors.rb', line 37 class ConfigurationError < Error attr_reader :missing_attributes, :invalid_attribute, :invalid_value, :valid_values, :invalid_uri_attributes, :non_https_uri_attributes def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end private def if @missing_attributes.any? "Configuration missing: #{@missing_attributes.join(', ')}" elsif @invalid_attribute "Invalid #{@invalid_attribute}: #{@invalid_value.inspect}; valid: #{@valid_values&.join(', ')}" else end end def parts = [] parts << "Configuration has invalid URIs: #{@invalid_uri_attributes.join(', ')}" if @invalid_uri_attributes.any? if @non_https_uri_attributes.any? parts << "Configuration requires HTTPS for: #{@non_https_uri_attributes.join(', ')} " \ '(SMART App Launch 2.2.0 requires TLS; HTTP is only allowed for localhost)' end parts.any? ? parts.join('. ') : 'Configuration error' end end |
#invalid_value ⇒ Object? (readonly)
Returns the offending value.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/safire/errors.rb', line 37 class ConfigurationError < Error attr_reader :missing_attributes, :invalid_attribute, :invalid_value, :valid_values, :invalid_uri_attributes, :non_https_uri_attributes def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end private def if @missing_attributes.any? "Configuration missing: #{@missing_attributes.join(', ')}" elsif @invalid_attribute "Invalid #{@invalid_attribute}: #{@invalid_value.inspect}; valid: #{@valid_values&.join(', ')}" else end end def parts = [] parts << "Configuration has invalid URIs: #{@invalid_uri_attributes.join(', ')}" if @invalid_uri_attributes.any? if @non_https_uri_attributes.any? parts << "Configuration requires HTTPS for: #{@non_https_uri_attributes.join(', ')} " \ '(SMART App Launch 2.2.0 requires TLS; HTTP is only allowed for localhost)' end parts.any? ? parts.join('. ') : 'Configuration error' end end |
#missing_attributes ⇒ Array<Symbol> (readonly)
Returns required attributes that are absent.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/safire/errors.rb', line 37 class ConfigurationError < Error attr_reader :missing_attributes, :invalid_attribute, :invalid_value, :valid_values, :invalid_uri_attributes, :non_https_uri_attributes def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end private def if @missing_attributes.any? "Configuration missing: #{@missing_attributes.join(', ')}" elsif @invalid_attribute "Invalid #{@invalid_attribute}: #{@invalid_value.inspect}; valid: #{@valid_values&.join(', ')}" else end end def parts = [] parts << "Configuration has invalid URIs: #{@invalid_uri_attributes.join(', ')}" if @invalid_uri_attributes.any? if @non_https_uri_attributes.any? parts << "Configuration requires HTTPS for: #{@non_https_uri_attributes.join(', ')} " \ '(SMART App Launch 2.2.0 requires TLS; HTTP is only allowed for localhost)' end parts.any? ? parts.join('. ') : 'Configuration error' end end |
#non_https_uri_attributes ⇒ Array<Symbol> (readonly)
Returns attributes whose URIs use HTTP on a non-localhost host.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/safire/errors.rb', line 37 class ConfigurationError < Error attr_reader :missing_attributes, :invalid_attribute, :invalid_value, :valid_values, :invalid_uri_attributes, :non_https_uri_attributes def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end private def if @missing_attributes.any? "Configuration missing: #{@missing_attributes.join(', ')}" elsif @invalid_attribute "Invalid #{@invalid_attribute}: #{@invalid_value.inspect}; valid: #{@valid_values&.join(', ')}" else end end def parts = [] parts << "Configuration has invalid URIs: #{@invalid_uri_attributes.join(', ')}" if @invalid_uri_attributes.any? if @non_https_uri_attributes.any? parts << "Configuration requires HTTPS for: #{@non_https_uri_attributes.join(', ')} " \ '(SMART App Launch 2.2.0 requires TLS; HTTP is only allowed for localhost)' end parts.any? ? parts.join('. ') : 'Configuration error' end end |
#valid_values ⇒ Array? (readonly)
Returns acceptable values for the attribute.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/safire/errors.rb', line 37 class ConfigurationError < Error attr_reader :missing_attributes, :invalid_attribute, :invalid_value, :valid_values, :invalid_uri_attributes, :non_https_uri_attributes def initialize(missing_attributes: [], invalid_attribute: nil, invalid_value: nil, valid_values: nil, invalid_uri_attributes: [], non_https_uri_attributes: []) @missing_attributes = Array(missing_attributes) @invalid_attribute = invalid_attribute @invalid_value = invalid_value @valid_values = valid_values @invalid_uri_attributes = Array(invalid_uri_attributes) @non_https_uri_attributes = Array(non_https_uri_attributes) super() end private def if @missing_attributes.any? "Configuration missing: #{@missing_attributes.join(', ')}" elsif @invalid_attribute "Invalid #{@invalid_attribute}: #{@invalid_value.inspect}; valid: #{@valid_values&.join(', ')}" else end end def parts = [] parts << "Configuration has invalid URIs: #{@invalid_uri_attributes.join(', ')}" if @invalid_uri_attributes.any? if @non_https_uri_attributes.any? parts << "Configuration requires HTTPS for: #{@non_https_uri_attributes.join(', ')} " \ '(SMART App Launch 2.2.0 requires TLS; HTTP is only allowed for localhost)' end parts.any? ? parts.join('. ') : 'Configuration error' end end |