equal
deleted
inserted
replaced
142 """handle path with the form:: |
142 """handle path with the form:: |
143 |
143 |
144 <etype>[[/<attribute name>]/<attribute value>]* |
144 <etype>[[/<attribute name>]/<attribute value>]* |
145 """ |
145 """ |
146 priority = 2 |
146 priority = 2 |
147 def __init__(self, urlpublisher): |
|
148 super(RestPathEvaluator, self).__init__(urlpublisher) |
|
149 self.etype_map = {} |
|
150 for etype in self.schema.entities(): |
|
151 etype = str(etype) |
|
152 self.etype_map[etype.lower()] = etype |
|
153 |
147 |
154 def evaluate_path(self, req, parts): |
148 def evaluate_path(self, req, parts): |
155 if not (0 < len(parts) < 4): |
149 if not (0 < len(parts) < 4): |
156 raise PathDontMatch() |
150 raise PathDontMatch() |
157 try: |
151 try: |
158 etype = self.etype_map[parts.pop(0).lower()] |
152 etype = self.vreg.case_insensitive_etypes[parts.pop(0).lower()] |
159 except KeyError: |
153 except KeyError: |
160 raise PathDontMatch() |
154 raise PathDontMatch() |
161 cls = self.vreg.etype_class(etype) |
155 cls = self.vreg.etype_class(etype) |
162 if parts: |
156 if parts: |
163 if len(parts) == 2: |
157 if len(parts) == 2: |