Module: Kazoo::App::ClassMethods

Defined in:
lib/kazoo/app.rb

Instance Method Summary collapse

Instance Method Details

#krouterObject



10
11
12
# File 'lib/kazoo/app.rb', line 10

def krouter
  @_krouter ||= Kazoo::Router::App.new
end

#path(name, path = nil, opts = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/kazoo/app.rb', line 30

def path(name, path = nil, opts = {})
  opts = path_options.merge(opts)
  
  path_prefix = opts.delete(:path_prefix)
  name_prefix = opts.delete(:name_prefix)
  
  name = "#{name_prefix}_#{name}" if name_prefix
  
  if path
    raise ArgumentError, "Path must be a string" unless path.is_a?(String)
    path = File.join(path_prefix, path) if path_prefix
    route = Kazoo::Router::Route.new(path, opts.merge(:app_mode => true))
    krouter.add_route(route, name.to_sym)
    path
  else
    raise ArgumentError, "#The route `{name}` does not exist" unless krouter.named_routes[name]
    krouter.named_routes[name].to_s
  end
end

#path_optionsObject



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

def path_options
  @_route_options || {}
end

#path_options=(val) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/kazoo/app.rb', line 14

def path_options=(val)
  if val.is_a?(Hash)
    @_route_options = val
  else
    raise ArgumentError, "route_options must be a hash"
  end
end

#set_paths(opts) ⇒ Object



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

def set_paths(opts)
  opts.each { |k,v| path(k,v) }
end