API v3: add captures route dsl method
This commit is contained in:
parent
0219308a08
commit
0cdecaade3
|
@ -15,8 +15,8 @@ module Travis::API::V3
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :repository do
|
resource :repository do
|
||||||
route '/repo/({repository.id}|{repository.slug})',
|
capture id: :digit, slug: %r{[^/]+%2[fF][^/]+}
|
||||||
capture: { :"repository.id" => :digit }
|
route '/repo/({repository.id}|{repository.slug})'
|
||||||
get :find
|
get :find
|
||||||
|
|
||||||
post :enable, '/enable'
|
post :enable, '/enable'
|
||||||
|
@ -40,17 +40,20 @@ module Travis::API::V3
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :build do
|
resource :build do
|
||||||
|
capture id: :digit
|
||||||
route '/build/{build.id}'
|
route '/build/{build.id}'
|
||||||
get :find
|
get :find
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :user do
|
resource :user do
|
||||||
|
capture id: :digit
|
||||||
route '/user'
|
route '/user'
|
||||||
get :current
|
get :current
|
||||||
get :find, '/{user.id}'
|
get :find, '/{user.id}'
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :organization do
|
resource :organization do
|
||||||
|
capture id: :digit
|
||||||
route '/org/{organization.id}'
|
route '/org/{organization.id}'
|
||||||
get :find
|
get :find
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,8 +33,23 @@ module Travis::API::V3
|
||||||
@current_resource = resource_was
|
@current_resource = resource_was
|
||||||
end
|
end
|
||||||
|
|
||||||
def route(value, options = {})
|
def route(value)
|
||||||
current_resource.route = Mustermann.new(prefix) + Mustermann.new(value, options)
|
current_resource.route = mustermann(prefix) + mustermann(value)
|
||||||
|
end
|
||||||
|
|
||||||
|
def mustermann(*input)
|
||||||
|
Mustermann.new(*input, **mustermann_options)
|
||||||
|
end
|
||||||
|
|
||||||
|
def mustermann_options
|
||||||
|
@mustermann_options ||= { capture: {} }
|
||||||
|
end
|
||||||
|
|
||||||
|
def capture(mapping)
|
||||||
|
mapping.each_pair do |key, value|
|
||||||
|
key = "#{current_resource.identifier}.#{key}" if current_resource and not key.to_s.include?(?.)
|
||||||
|
mustermann_options[:capture][key.to_sym] = value
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def get(*args)
|
def get(*args)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user