module HaveAPI

Constants

PROTOCOL_VERSION
VERSION

Public Class Methods

default_authenticate() click to toggle source
# File lib/haveapi/api.rb, line 81
def self.default_authenticate
  @default_auth || []
end
default_authenticate=(chain) click to toggle source
# File lib/haveapi/api.rb, line 77
def self.default_authenticate=(chain)
  @default_auth = chain
end
filter_resources(module_name) { |r| ... } click to toggle source

Iterate through all resources and return those for which yielded block returned true.

# File lib/haveapi/api.rb, line 24
def self.filter_resources(module_name)
  ret = []

  resources(module_name) do |r|
    ret << r if yield(r)
  end

  ret
end
get_version_resources(module_name, v) click to toggle source

Return list of resources for version v.

# File lib/haveapi/api.rb, line 35
def self.get_version_resources(module_name, v)
  filter_resources(module_name) do |r|
    r_v = r.version || implicit_version

    if r_v.is_a?(Array)
      r_v.include?(v)

    else
      r_v == v || r_v == :all
    end
  end
end
implicit_version() click to toggle source
# File lib/haveapi/api.rb, line 73
def self.implicit_version
  @implicit_version
end
implicit_version=(v) click to toggle source
# File lib/haveapi/api.rb, line 69
def self.implicit_version=(v)
  @implicit_version = v
end
module_name() click to toggle source
# File lib/haveapi/api.rb, line 65
def self.module_name
  @module_name
end
module_name=(name) click to toggle source
# File lib/haveapi/api.rb, line 61
def self.module_name=(name)
  @module_name = name
end
resources(module_name) { |obj| ... } click to toggle source

Return a list of all resources or yield them if block is given. @yieldparam [Resource] resource

# File lib/haveapi/api.rb, line 4
def self.resources(module_name)
  ret = []

  module_name.constants.select do |c|
    obj = module_name.const_get(c)

    if obj.obj_type == :resource
      if block_given?
        yield obj
      else
        ret << obj
      end
    end
  end

  ret
end
versions(module_name) click to toggle source

Return a list of all API versions.

# File lib/haveapi/api.rb, line 49
def self.versions(module_name)
  ret = []

  resources(module_name) do |r|
    ret << r.version unless ret.include?(r.version)
  end

  ret.compact!
  ret << implicit_version if ret.empty? && implicit_version
  ret
end