Module: LeanCloud::Helper::ClassMethods

Defined in:
lib/lean_cloud/helper.rb

Constant Summary collapse

DEFAULT_ACTIONS =
{
  :search =>  {via: :get,    root: true                 },
  :show   =>  {via: :get,    root: true,  on: :member   },
  :create =>  {via: :post,   root: true                 },
  :update =>  {via: :put,    root: true,  on: :member   },
  :destroy=>  {via: :delete, root: true,  on: :member   }
}

Instance Method Summary collapse

Instance Method Details

#add_route(name, options = {}, match = nil, &block) ⇒ Object



30
31
32
33
34
35
# File 'lib/lean_cloud/helper.rb', line 30

def add_route(name, options={},match=nil, &block)
  options[:namespace] ||= namespace
  route = Route.new(name, options, match, &block)
  define_singleton_method(name) {|*args, &block| dispatch(route, *args, &block) }
  routes << route
end

#match(name, options = {}, &block) ⇒ Object



25
26
27
28
# File 'lib/lean_cloud/helper.rb', line 25

def match(name, options={}, &block)
  raise "`as' can't be nil!" if !options[:as]
  add_route(options.delete(:as), options, name, &block)
end

#only(*args) ⇒ Object



15
16
17
18
19
# File 'lib/lean_cloud/helper.rb', line 15

def only(*args)
  args.each do |action|
    add_route(action, DEFAULT_ACTIONS[action].dup)
  end
end

#route(name, options = {}, &block) ⇒ Object



21
22
23
# File 'lib/lean_cloud/helper.rb', line 21

def route(name, options={}, &block)
  add_route(name, options, &block)
end