bool IsResource(Expression expression)
        {
            MethodCall methodCall = expression as MethodCall;

            if (methodCall != null)
            {
                string memberName = RubyControlFieldExpression.GetMemberName(methodCall);
                return(memberName.StartsWith("resources.", StringComparison.InvariantCultureIgnoreCase));
            }
            return(false);
        }
        static RubyControlFieldExpression Create(string[] memberNames)
        {
            string memberName = String.Empty;

            if (memberNames.Length > 1)
            {
                memberName = memberNames[memberNames.Length - 1];
            }
            string fullMemberName = RubyControlFieldExpression.GetMemberName(memberNames);

            return(new RubyControlFieldExpression(memberName, GetVariableNameFromSelfReference(fullMemberName), String.Empty, fullMemberName));
        }
        void ThrowCouldNotFindTypeException(Expression expression)
        {
            string     typeName   = String.Empty;
            MethodCall methodCall = expression as MethodCall;

            if (methodCall != null)
            {
                typeName = RubyControlFieldExpression.GetMemberName(methodCall);
            }
            string message = String.Format(StringParser.Parse("${res:ICSharpCode.PythonBinding.UnknownTypeName}"), typeName);

            throw new RubyComponentWalkerException(message);
        }