Module: HaveAPI

Defined in:
lib/haveapi.rb,
lib/haveapi/api.rb,
lib/haveapi/hooks.rb,
lib/haveapi/route.rb,
lib/haveapi/action.rb,
lib/haveapi/common.rb,
lib/haveapi/params.rb,
lib/haveapi/server.rb,
lib/haveapi/context.rb,
lib/haveapi/example.rb,
lib/haveapi/version.rb,
lib/haveapi/metadata.rb,
lib/haveapi/resource.rb,
lib/haveapi/spec/helpers.rb,
lib/haveapi/authorization.rb,
lib/haveapi/model_adapter.rb,
lib/haveapi/actions/default.rb,
lib/haveapi/extensions/base.rb,
lib/haveapi/output_formatter.rb,
lib/haveapi/authentication/base.rb

Defined Under Namespace

Modules: Actions, ApiBuilder, Authentication, Extensions, Hookable, Hooks, ModelAdapters, OutputFormatters, Parameters, SpecMethods Classes: Action, Authorization, Common, Context, Example, Metadata, ModelAdapter, OutputFormatter, Params, Resource, Route, Server, ValidationError

Constant Summary collapse

VERSION =
'0.3.1'

Class Method Summary collapse

Class Method Details

.default_authenticateObject



63
64
65
# File 'lib/haveapi/api.rb', line 63

def self.default_authenticate
  @default_auth
end

.filter_resources(module_name) ⇒ Object

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



23
24
25
26
27
28
29
30
31
# File 'lib/haveapi/api.rb', line 23

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) ⇒ Object

Return list of resources for version v.



34
35
36
37
38
# File 'lib/haveapi/api.rb', line 34

def self.get_version_resources(module_name, v)
  filter_resources(module_name) do |r|
    r.version.is_a?(Array) ? r.version.include?(v) : (r.version == v || r.version == :all)
  end
end

.get_versions(module_name) ⇒ Object

Return a list of all API versions.



41
42
43
44
45
46
47
48
49
# File 'lib/haveapi/api.rb', line 41

def self.get_versions(module_name)
  ret = []

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

  ret
end

.module_nameObject



55
56
57
# File 'lib/haveapi/api.rb', line 55

def self.module_name
  @module_name
end

.resources(module_name) ⇒ Object

Return a list of all resources or yield them if block is given.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/haveapi/api.rb', line 3

def self.resources(module_name) # yields: resource
  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

.set_default_authenticate(chain) ⇒ Object



59
60
61
# File 'lib/haveapi/api.rb', line 59

def self.set_default_authenticate(chain)
  @default_auth = chain
end

.set_module_name(name) ⇒ Object



51
52
53
# File 'lib/haveapi/api.rb', line 51

def self.set_module_name(name)
  @module_name = name
end