Ejemplo n.º 1
0
        public void Can_Parse_Module_Reference()
        {
            // Arrange
            var referencer = new RequireReference();

            // Act
            var references = referencer.Parse(@"
            var mod = require('module1.js');

            ");
            // Assert
            references.Count().ShouldBe(1);
            references.First().Name.ShouldBe("module1.js");
            references.First().Type.ShouldBe(Reference.TypeEnum.Module);
        }
Ejemplo n.º 2
0
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            EditorGUI.BeginProperty(position, label, property);
            {
                RequireReference getRequireReference = attribute as RequireReference;

                //test property:
                System.Object getObject;
                if (property.propertyType == SerializedPropertyType.ObjectReference)
                {
                    getObject = property.objectReferenceValue;
                }
                else if (property.propertyType == SerializedPropertyType.ExposedReference)
                {
                    getObject = property.exposedReferenceValue;
                }
                else
                {
                    var sb = new System.Text.StringBuilder();
                    {
                        sb.AppendFormat(
                            " ([{0}] is not compatible with {1} type fields)",
                            typeof(RequireReference),
                            property.propertyType
                            );
                    }
                    label.text += sb.ToString();
                    getObject   = null;
                }

                bool isOfRequiredType = false;
                if ((getRequireReference.requiredType != null) && (getObject != null))
                {
                    if (getObject is GameObject)
                    {
                        isOfRequiredType = ((GameObject)getObject).GetComponent(getRequireReference.requiredType) != null;
                    }
                    else if (getObject is Component)
                    {
                        var component = (Component)getObject;
                        if (component != null)
                        {
                            isOfRequiredType = component.GetComponent(getRequireReference.requiredType) != null;
                        }
                    }
                }

                //draw red error overlay:
                if ((getObject == null) || (isOfRequiredType == false))
                {
                    //draw animated rect:
                    Color color = Color.red;
                    color.a = 0.75f + Mathf.Sin((float)((EditorApplication.timeSinceStartup * 10d) % float.MaxValue)) * 0.25f;
                    EditorGUI.DrawRect(position, color);
                }

                //draw PropertyField:
                EditorGUI.PropertyField(position, property, label);
            }
            EditorGUI.EndProperty();
        }
Ejemplo n.º 3
0
        public void Can_Parse_Multiple_CoffeeScript_Module_References_With_Mixed_Styles()
        {
            // Arrange
            var referencer = new RequireReference();

            // Act
            var references = referencer.Parse(@"
            mod1 = require('mod1.coffee')
            mod4 = require 'mod4.coffee'

            ");
            // Assert
            references.Count().ShouldBe(2);
            references.First().Name.ShouldBe("mod1.coffee");
            references.First().Type.ShouldBe(Reference.TypeEnum.Module);
            references.Last().Name.ShouldBe("mod4.coffee");
            references.Last().Type.ShouldBe(Reference.TypeEnum.Module);
        }
Ejemplo n.º 4
0
        public void Should_Parse_Object_Initialize_Reference_Coffee_Script()
        {
            // Arrange
            var referencer = new RequireReference();

            // Act
            var references = referencer.Parse(@"
            someObject =
            mod1: require('module1.js')
            ");
            // Assert
            references.Count().ShouldBe(1);
            references.First().Name.ShouldBe("module1.js");
            references.First().Type.ShouldBe(Reference.TypeEnum.Module);
        }
Ejemplo n.º 5
0
        public void Should_Not_Parse_Object_Initialize_Comment_Reference()
        {
            // Arrange
            var referencer = new RequireReference();

            // Act
            var references = referencer.Parse(@"
            var someObject = {
            mod1: require('module1.js')
            //mod2: require('module2.js')
            };
            ");
            // Assert
            references.Count().ShouldBe(1);
            references.First().Name.ShouldBe("module1.js");
            references.First().Type.ShouldBe(Reference.TypeEnum.Module);
        }
Ejemplo n.º 6
0
        public void Should_Not_Parse_Commented_With_Space_Reference()
        {
            // Arrange
            var referencer = new RequireReference();

            // Act
            var references = referencer.Parse(@"
            var mod1 = require('module1.js');
              //var mod2 = require('module2.js');

            ");
            // Assert
            references.Count().ShouldBe(1);
            references.First().Name.ShouldBe("module1.js");
            references.First().Type.ShouldBe(Reference.TypeEnum.Module);
        }
Ejemplo n.º 7
0
        public void Should_Find_CoffeeScript_Module_Without_Parentheses()
        {
            // Arrange
            var referencer = new RequireReference();

            // Act
            var references = referencer.Parse("mod4 = require 'mod4.coffee'\r\n\r\nt = 4").ToList();

            // Assert
            references.Count().ShouldBe(1);
            references.First().Name.ShouldBe("mod4.coffee");
            references.First().Type.ShouldBe(Reference.TypeEnum.Module);
        }