Module: Snapi

Defined in:
lib/snapi.rb,
lib/snapi/errors.rb,
lib/snapi/version.rb,
lib/snapi/argument.rb,
lib/snapi/function.rb,
lib/snapi/validator.rb,
lib/snapi/capability.rb,
lib/snapi/sinatra_extension.rb,
lib/snapi/sinatra_extension_helper.rb

Defined Under Namespace

Modules: Capability, SinatraExtension, SinatraExtensionHelper, Validator Classes: Argument, Function, JsonValidator

Constant Summary collapse

InvalidArgumentAttributeError =

_ _ _

|  ___| ___ \ ___ \  _  | ___ \___  / |
| |__ | |_/ / |_/ / | | | |_/ /  / /| |
|  __||    /|    /| | | |    /  / / | |
| |___| |\ \| |\ \\ \_/ / |\ \./ /__|_|
\____/\_| \_\_| \_|\___/\_| \_\_____(_)
Class.new(StandardError)
InvalidBooleanError =
Class.new(StandardError)
InvalidCapabilityError =
Class.new(StandardError)
InvalidDescriptionError =
Class.new(StandardError)
InvalidFormatError =
Class.new(StandardError)
InvalidFunctionCallError =
Class.new(StandardError)
InvalidFunctionNameError =
Class.new(StandardError)
InvalidReturnTypeError =
Class.new(StandardError)
InvalidStringError =
Class.new(StandardError)
InvalidTypeError =
Class.new(StandardError)
InvalidValuesError =
Class.new(StandardError)
LibraryClassMissingFunctionError =
Class.new(StandardError)
MissingValuesError =
Class.new(StandardError)
PendingBranchError =

TODO remove

Class.new(StandardError)
VERSION =
"0.0.8"
@@capabilities =
{}

Class Method Summary collapse

Class Method Details

.[](key) ⇒ Object



18
19
20
# File 'lib/snapi.rb', line 18

def self.[](key)
  @@capabilities[key]
end

.capabilitiesObject



14
15
16
# File 'lib/snapi.rb', line 14

def self.capabilities
  @@capabilities
end

.capability_hashObject



30
31
32
33
34
# File 'lib/snapi.rb', line 30

def self.capability_hash
  valid_capabilities.each_with_object({}) do |cap,coll|
    coll[cap] = Snapi[cap].to_hash
  end
end

.has_capability?(capability) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/snapi.rb', line 36

def self.has_capability?(capability)
  valid_capabilities.include?(capability)
end

.register_capability(klass) ⇒ Object



22
23
24
# File 'lib/snapi.rb', line 22

def self.register_capability(klass)
  @@capabilities[klass.namespace] = klass
end

.supports?(capability, function, params) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
47
# File 'lib/snapi.rb', line 40

def self.supports?(capability,function,params)
  if Snapi.has_capability?(capability) &&
     Snapi[capability].valid_function_call?(function, params)
    true
  else
    false
  end
end

.valid_capabilitiesObject



26
27
28
# File 'lib/snapi.rb', line 26

def self.valid_capabilities
  @@capabilities.keys
end