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
|
||||
|
||||
resource :repository do
|
||||
route '/repo/({repository.id}|{repository.slug})',
|
||||
capture: { :"repository.id" => :digit }
|
||||
capture id: :digit, slug: %r{[^/]+%2[fF][^/]+}
|
||||
route '/repo/({repository.id}|{repository.slug})'
|
||||
get :find
|
||||
|
||||
post :enable, '/enable'
|
||||
|
@ -40,17 +40,20 @@ module Travis::API::V3
|
|||
end
|
||||
|
||||
resource :build do
|
||||
capture id: :digit
|
||||
route '/build/{build.id}'
|
||||
get :find
|
||||
end
|
||||
|
||||
resource :user do
|
||||
capture id: :digit
|
||||
route '/user'
|
||||
get :current
|
||||
get :find, '/{user.id}'
|
||||
end
|
||||
|
||||
resource :organization do
|
||||
capture id: :digit
|
||||
route '/org/{organization.id}'
|
||||
get :find
|
||||
end
|
||||
|
|
|
@ -33,8 +33,23 @@ module Travis::API::V3
|
|||
@current_resource = resource_was
|
||||
end
|
||||
|
||||
def route(value, options = {})
|
||||
current_resource.route = Mustermann.new(prefix) + Mustermann.new(value, options)
|
||||
def route(value)
|
||||
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
|
||||
|
||||
def get(*args)
|
||||
|
|
Loading…
Reference in New Issue
Block a user