ThrowIfClosed() 개인적인 메소드

private ThrowIfClosed ( ) : void
리턴 void
예제 #1
0
        public static MutableString /*!*/ Read(RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            if (self._pos + 1 > self._rawEntries.Length)
            {
                return(null);
            }

            MutableString ret;

            if (self._pos == -2)
            {
                ret = MutableString.Create(".");
            }
            else if (self._pos == -1)
            {
                ret = MutableString.Create("..");
            }
            else
            {
                ret = MutableString.Create(Path.GetFileName(self._rawEntries[self._pos]));
            }
            self._pos++;
            return(ret);
        }
예제 #2
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
        public static MutableString Read(RubyContext /*!*/ context, RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            if (self._pos + 1 > self._rawEntries.Length)
            {
                return(null);
            }

            MutableString ret;

            if (self._pos == -2)
            {
                ret = context.EncodePath(".");
            }
            else if (self._pos == -1)
            {
                ret = context.EncodePath("..");
            }
            else
            {
                ret = context.EncodePath(context.Platform.GetFileName(self._rawEntries[self._pos]));
            }
            self._pos++;
            return(ret);
        }
예제 #3
0
        public static RubyDir /*!*/ Each(BlockParam block, RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            RubyDir.ForEach(block, self, self._dirName);
            return(self);
        }
예제 #4
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
        public static RubyDir /*!*/ Rewind(RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            self._pos = -2;
            return(self);
        }
예제 #5
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
        public static int SetPosition(RubyDir /*!*/ self, int pos)
        {
            self.ThrowIfClosed();

            self._pos = pos - 2;
            return(pos);
        }
예제 #6
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
        public static MutableString GetPath(RubyContext /*!*/ context, RubyDir /*!*/ self)
        {
            if (context.RubyOptions.Compatibility < RubyCompatibility.Ruby19)
            {
                self.ThrowIfClosed();
            }
            else if (self.Closed)
            {
                return(null);
            }

            return(self._dirName.Clone());
        }
예제 #7
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
        public static RubyDir /*!*/ Seek(RubyDir /*!*/ self, int pos)
        {
            self.ThrowIfClosed();

            if (pos < 0)
            {
                self._pos = -2;
            }
            else if (pos > self._rawEntries.Length + 2)
            {
                self._pos = self._rawEntries.Length;
            }
            else
            {
                self._pos = pos - 2;
            }
            return(self);
        }
예제 #8
0
파일: Dir.cs 프로젝트: atczyc/ironruby
        public static int GetCurrentPosition(RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            return self._pos + 2;
        }
예제 #9
0
파일: Dir.cs 프로젝트: atczyc/ironruby
        public static MutableString GetPath(RubyContext/*!*/ context, RubyDir/*!*/ self) {
            if (context.RubyOptions.Compatibility == RubyCompatibility.Ruby18) {
                self.ThrowIfClosed();
            } else if (self.Closed) {
                return null;
            }

            return self._dirName.Clone();
        }
예제 #10
0
파일: Dir.cs 프로젝트: atczyc/ironruby
 public static void Close(RubyDir/*!*/ self) {
     self.ThrowIfClosed();
     self.Close();
 }
예제 #11
0
파일: Dir.cs 프로젝트: jxnmaomao/ironruby
        public static MutableString/*!*/ GetPath(RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            return self._dirName;
        }
예제 #12
0
파일: Dir.cs 프로젝트: jxnmaomao/ironruby
        public static RubyDir/*!*/ Each(BlockParam block, RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            RubyDir.ForEach(block, self, self._dirName);
            return self;
        }
예제 #13
0
파일: Dir.cs 프로젝트: jxnmaomao/ironruby
        public static MutableString/*!*/ Read(RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            if (self._pos + 1 > self._rawEntries.Length) {
                return null;
            }

            MutableString ret;
            if (self._pos == -2) {
                ret = MutableString.CreateAscii(".");
            } else if (self._pos == -1) {
                ret = MutableString.CreateAscii("..");
            } else {
                ret = MutableString.Create(Path.GetFileName(self._rawEntries[self._pos]), RubyEncoding.Path);
            }
            self._pos++;
            return ret;
        }
예제 #14
0
파일: Dir.cs 프로젝트: atczyc/ironruby
        public static RubyDir/*!*/ Rewind(RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            self._pos = -2;
            return self;
        }
예제 #15
0
파일: Dir.cs 프로젝트: atczyc/ironruby
        public static int SetPosition(RubyDir/*!*/ self, int pos) {
            self.ThrowIfClosed();

            self._pos = pos - 2;
            return pos;
        }
예제 #16
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
 public static void Close(RubyDir /*!*/ self)
 {
     self.ThrowIfClosed();
     self.Close();
 }
예제 #17
0
        public static void Close(RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            self._closed = true;
        }
예제 #18
0
        public static MutableString /*!*/ GetPath(RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            return(self._dirName);
        }
예제 #19
0
파일: Dir.cs 프로젝트: atczyc/ironruby
        public static MutableString Read(RubyContext/*!*/ context, RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            if (self._pos + 1 > self._rawEntries.Length) {
                return null;
            }

            MutableString ret;
            if (self._pos == -2) {
                ret = context.EncodePath(".");
            } else if (self._pos == -1) {
                ret = context.EncodePath("..");
            } else {
                ret = context.EncodePath(context.Platform.GetFileName(self._rawEntries[self._pos]));
            }
            self._pos++;
            return ret;
        }
예제 #20
0
파일: Dir.cs 프로젝트: ltwlf/IronSP
        public static int GetCurrentPosition(RubyDir /*!*/ self)
        {
            self.ThrowIfClosed();

            return(self._pos + 2);
        }
예제 #21
0
파일: Dir.cs 프로젝트: atczyc/ironruby
        public static RubyDir/*!*/ Seek(RubyDir/*!*/ self, int pos) {
            self.ThrowIfClosed();

            if (pos < 0) {
                self._pos = -2;
            } else if (pos > self._rawEntries.Length + 2) {
                self._pos = self._rawEntries.Length;
            } else {
                self._pos = pos - 2;
            }
            return self;
        }
예제 #22
0
파일: Dir.cs 프로젝트: jxnmaomao/ironruby
        public static void Close(RubyDir/*!*/ self) {
            self.ThrowIfClosed();

            self._closed = true;
        }