Skip to content

Commit

Permalink
changed to be more DRY
Browse files Browse the repository at this point in the history
  • Loading branch information
Yeeland Chen authored and Yeeland Chen committed Jun 20, 2011
1 parent 3acef5e commit 9c6f331
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions pyramid_routehelper/__init__.py
Expand Up @@ -229,28 +229,27 @@ def swap(dct, newdct):
new_path = path + '/new'
member_path = path + '/:id'

added_route_names = []
added_route_names = {}

def add_route_if_new(self, route_name, path, **kwargs):
if route_name not in added_route_names:
self.add_route(route_name, path, **kwargs)
added_route_names[route_name] = path

def add_route_and_view(self, action, route_name, path, request_method='any'):
if request_method != 'any':
request_method = request_method.upper()
else:
request_method = None

if route_name not in added_route_names: # Check if the route name has been added already
self.add_route(route_name, path, **kwargs)
added_route_names.append(route_name)

add_route_if_new(self, route_name, path, **kwargs)
self.add_view(view=handler, attr=action, route_name=route_name, request_method=request_method, **action_kwargs.get(action, {}).get('default', {}))

for format_kwargs in action_kwargs.get(action, {}).get('formatted', []):
format = format_kwargs.pop('format')
formatted_route_name = "%s_formatted_%s" % (format, route_name)

if formatted_route_name not in added_route_names: # Check if the route name has been added already
added_route_names.append(formatted_route_name)
self.add_route(formatted_route_name, "%s.%s" % (path, format), **kwargs)

add_route_if_new(self, formatted_route_name, "%s.%s" % (path, format), **kwargs)
self.add_view(view=handler, attr=format_kwargs.pop('attr'), request_method=request_method,
route_name = "%s_formatted_%s" % (format, route_name), **format_kwargs)

Expand Down

0 comments on commit 9c6f331

Please sign in to comment.