public static MutableString /*!*/ Flush(Deflate /*!*/ self, [DefaultParameterValue(SYNC_FLUSH)] int flush) { if (flush == NO_FLUSH) { return(MutableString.CreateEmpty()); } return(Compress(self, MutableString.FrozenEmpty, flush)); }
public static MutableString Rest(StringScanner /*!*/ self) { int len = self.Length - self.CurrentPosition; if (len <= 0) { return(MutableString.CreateEmpty()); } return(self.ScanString.GetSlice(self.CurrentPosition, len)); }
public static MutableString PublicKey(Certificate /*!*/ self) { if (self.IsEmpty) { // TODO: Raise OpenSSL::X509::CertificateError return(MutableString.CreateEmpty()); } else { return(MutableString.CreateAscii(self._certificate.GetPublicKeyString())); } }
public static MutableString /*!*/ Convert(RubyClass /*!*/ self, [DefaultProtocol, NotNull] MutableString /*!*/ toEncoding, [DefaultProtocol, NotNull] MutableString /*!*/ fromEncoding, [DefaultProtocol] MutableString str) { MutableString[] convertedStrings = Convert(toEncoding, fromEncoding, new MutableString[] { str, null }); MutableString result = MutableString.CreateEmpty(); foreach (MutableString s in convertedStrings) { result.Append(s); } return(result); }
public void Dir1() { RubyClass dir = Context.GetClass(typeof(RubyDir)); Pal1 pal = (Pal1)Context.Platform; var sjis = RubyEncoding.KCodeSJIS.StrictEncoding.GetBytes("ホ"); var toPath = new ConversionStorage <MutableString>(Context); // transcode to UTF8 if no KCODE specified Context.KCode = null; RubyDir.MakeDirectory(toPath, dir, MutableString.CreateBinary(new byte[] { 0xce, 0xa3 }, RubyEncoding.Binary), null); Assert(pal.Entries["Σ"]); pal.Entries.Clear(); // transcode to UTF8 if no KCODE specified Context.KCode = null; RubyDir.MakeDirectory(toPath, dir, MutableString.CreateMutable("ホア", RubyEncoding.KCodeSJIS), null); Assert(pal.Entries["α"]); Assert(FileTest.IsDirectory(toPath, Context.KernelModule, MutableString.CreateMutable("ホア", RubyEncoding.KCodeSJIS))); Assert(FileTest.IsDirectory(toPath, Context.KernelModule, MutableString.CreateMutable("α", RubyEncoding.KCodeUTF8))); pal.Entries.Clear(); // transcode to KCODE if specified Context.KCode = RubyEncoding.KCodeUTF8; RubyDir.MakeDirectory(toPath, dir, MutableString.CreateBinary(new byte[] { 0xce, 0xa3 }, RubyEncoding.KCodeSJIS), null); Assert(pal.Entries["Σ"]); pal.Entries.Clear(); // transcode to KCODE if specified Context.KCode = RubyEncoding.KCodeSJIS; RubyDir.MakeDirectory(toPath, dir, MutableString.CreateBinary(sjis, RubyEncoding.Binary), null); Assert(pal.Entries["ホ"]); pal.Entries.Clear(); // ignore entries whose name cannot be encoded using the current KCODE Context.KCode = RubyEncoding.KCodeSJIS; AssertExceptionThrown <EncoderFallbackException>(() => RubyEncoding.KCodeSJIS.StrictEncoding.GetBytes("Ԋ")); pal.Entries["Ԋ"] = true; pal.Entries["ホ"] = true; var entries = RubyDir.GetEntries(toPath, dir, MutableString.CreateEmpty()); Assert(entries.Count == 3); foreach (MutableString entry in entries) { Assert(entry.Encoding == RubyEncoding.KCodeSJIS); } Assert(((MutableString)entries[0]).Equals(MutableString.CreateAscii("."))); Assert(((MutableString)entries[1]).Equals(MutableString.CreateAscii(".."))); Assert(((MutableString)entries[2]).Equals(MutableString.Create("ホ", RubyEncoding.KCodeSJIS))); }
public GeneratorState() { _seen = new List <long>(); Indent = MutableString.CreateEmpty(); Space = MutableString.CreateEmpty(); SpaceBefore = MutableString.CreateEmpty(); ObjectNl = MutableString.CreateEmpty(); ArrayNl = MutableString.CreateEmpty(); CheckCircular = true; AllowNaN = false; MaxNesting = DEFAULT_MAX_NESTING; }
public static MutableString PostMatch(StringScanner /*!*/ self) { if (self.LastMatch == null) { return(null); } int position = self.FoundPosition + self.LastMatch.Length; int len = self.Length - position; if (len <= 0) { return(MutableString.CreateEmpty()); } return(self.ScanString.GetSlice(position, len)); }
public static MutableString Peek(StringScanner /*!*/ self, int len) { if (len < 0) { throw RubyExceptions.CreateArgumentError("negative string size (or size too big)"); } int maxlen = self.Length - self.CurrentPosition; if (len > maxlen) { len = maxlen; } if (self.CurrentPosition >= self.Length || len == 0) { return(MutableString.CreateEmpty()); } return(self.ScanString.GetSlice(self.CurrentPosition, len)); }
public static MutableString /*!*/ RandomBytes(RubyModule /*!*/ self, [DefaultProtocol] int length) { if (length < 0) { throw RubyExceptions.CreateArgumentError("negative string size"); } if (length == 0) { return(MutableString.CreateEmpty()); } byte[] data = new byte[length]; var generator = new Crypto.RNGCryptoServiceProvider(); generator.GetBytes(data); return(MutableString.CreateBinary(data)); }
public void Dir2() { RubyClass dir = Context.GetClass(typeof(RubyDir)); Pal1 pal = (Pal1)Context.Platform; var sjis = RubyEncoding.KCodeSJIS.StrictEncoding.GetBytes("ホ"); // use the string encoding if given RubyDir.MakeDirectory(dir, MutableString.CreateBinary(sjis, RubyEncoding.KCodeSJIS.RealEncoding), null); Assert(pal.Entries["ホ"]); // IO system returns UTF8 encoded strings: var entries = RubyDir.GetEntries(dir, MutableString.CreateEmpty()); Assert(entries.Count == 3); Assert(((MutableString)entries[0]).Equals(MutableString.CreateAscii("."))); Assert(((MutableString)entries[1]).Equals(MutableString.CreateAscii(".."))); Assert(((MutableString)entries[2]).Equals(MutableString.Create("ホ", RubyEncoding.UTF8))); pal.Entries.Clear(); }
public static MutableString ToString(RubyContext /*!*/ context, Certificate /*!*/ self) { using (IDisposable handle = RubyUtils.InfiniteInspectTracker.TrackObject(self)) { // #<OpenSSL::X509::Certificate subject=, issuer=, serial=0, not_before=nil, not_after=nil> var result = MutableString.CreateEmpty(); result.Append("#<"); result.Append(context.Inspect(context.GetClassOf(self))); if (handle == null) { return(result.Append(":...>")); } bool empty = self.IsEmpty; result.AppendFormat(" subject={0}, issuer={1}, serial={2}, not_before=nil, not_after=nil>", empty ? "" : OpenSSLFormat(self._certificate.Subject), empty ? "" : OpenSSLFormat(self._certificate.Issuer), empty ? 0 : self.SerailNumber ); return(result); } }
internal override MutableString /*!*/ Finish() { return(GetStream().IsInitialized ? Compress(this, null, FINISH) : MutableString.CreateEmpty()); }