public IEnumerable <string> GetAllActionMethods() { PopulateLookupTables(_rubyEngine.MethodNames(ControllerClass)); var result = new List <string>(); result.AddRange(AliasedMethods.Map(method => method.Key)); result.AddRange(NonAliasedMethods); return(result); }
private void PopulateLookupTables(IEnumerable <string> methodNames) { var methodAliases = (Hash)_rubyEngine.CallMethod(ControllerClass, "name_selectors"); AliasedMethods = methodAliases.Map(pair => KeyValuePairFor(pair)); NonAliasedMethods = clr3::System.Linq.Enumerable.Where(methodNames, method => AliasedMethods.DoesNotContain( pair => String.Equals(pair.Key, method.Underscore(), StringComparison.OrdinalIgnoreCase) || String.Equals(pair.Key, method.Pascalize(), StringComparison.OrdinalIgnoreCase) ) ); }
private List <string> GetMatchingAliasedMethods(ControllerContext controllerContext, string actionName) { return(new List <string>(AliasedMethods.Where(pair => pair.Value.IsValidForAction(controllerContext, actionName)).Map(pair => pair.Key))); }