Skip to content

Releases: kesac/Syllabore

v2.3.3

07 Jun 02:20
Compare
Choose a tag to compare

Changes

  • Generator classes that simulate randomness now implement IRandomizable
  • The instance of System.Random within generator classes is now accessible through the Random property
    • This affects NameGenerator, SyllableGenerator, SyllableSet, and TransformerSet
  • In addition, a new fluent-style method has been added to each generator class to set the Random instance during configuration
  • These changes addresses proposal #14 which asks for control over random seeds

See the new wiki page here for code examples on controlling random seeds.

v2.3.2

06 Dec 06:56
3a9aa27
Compare
Choose a tag to compare

Changes

  • API documentation now ships with the nuget package: they should appear as tool tips in your favourite IDE when you hover over a class name or method
  • API documentation now covers all classes and methods
  • More unit tests and improved test organization (thanks @monerofglory)
  • The example project and the unit test project have moved to .NET 8 (LTS)
    • Note: You do need to use to .NET 8 to use the class library. The library itself targets .NET Standard 2.0 which remains compatible with anything from .NET Framework 4.6.2 through to .NET 8

v2.3.1

11 Oct 04:31
Compare
Choose a tag to compare

Changes

  • NameFormatter now implements IGenerator<string> instead of IGenerator. This is important so formatters can be used when chaining generators together via Archigen

v2.3

10 Oct 00:10
Compare
Choose a tag to compare

Changes

  • Simplified DefaultSyllableGenerator used in vanilla NameGenerators
  • Added way to control the final consonant of a name
  • Simplified way for controlling sequence probabilities

Example

var syllables = new SyllableGenerator();
syllables.WithLeadingConsonants("bdlmprst");
syllables.WithVowels("aeio");
syllables.WithFinalConsonants("dlmnrstx"); // These consonants only appear at the end of a name
syllables.WithProbability(x => x
    .OfLeadingConsonants(0.95, 0.25) // The second value is the probability of a sequence
    .OfFinalConsonants(0.50, 0.25));

v2.2.1

05 May 03:20
Compare
Choose a tag to compare

Changes

  • Class SyllableProvider deprecated in favor for SyllableGenerator
  • Class SyllableProviderProbability removed. New class GeneratorProbability replaces it.
  • NameGenerator.UsingProbability() can be used to modify syllable probabilities
  • SyllableGenerator.WithProbability() can be used to modify syllable probabilities
  • New Of() methods added to class GeneratorProbability to control probabilities
  • Transformations are now defined by calling method UsingTransform(INameTransformer) or UsingTransform(double, INameTransformer)
  • NameGenerator.UsingTransformer() is now deprecated in favor of NameGenerator.UsingTransform()
  • Class NameGenerator now has a new (string, string) constructor for simple customization of vowels and consonants
  • Method NameGenerator.UsingProvider(ISyllableGenerator) is now deprecated in favor of .UsingSyllables(ISyllableGenerator)
  • Added method DoNotAllow() to class NameGenerator to simplify name filtering

Changes to Wiki

  • Every single page in the wiki was updated for this version

v2.0.2

02 Apr 02:51
Compare
Choose a tag to compare
  • Improvements to SyllableSet
    • Added method for specifying starter, middle, or ending syllables
    • Specifying syllables or a SyllableProvider can be done in any order
  • Deprecated DefaultNameTransformer
  • Minor update to generators and transformers
    -The check against transform probability has been moved directly in to NameTransformer. It was in NameGenerator originally.

v2.0.1

18 Nov 05:18
Compare
Choose a tag to compare

v2.0.1 Changelog

Provider Changes

  • Grapheme positioning and clustering probabilities are now set by calling WithProbability() on a SyllableProvider
var g = new NameGenerator()
            .UsingProvider(x => x
                .WithVowels("ae")
                .WithLeadingConsonants("str")
                .WithTrailingConsonants("mnl")
                .WithProbability(x => x
                    .LeadingConsonantExists(1.0)
                    .TrailingConsonantExists(0.20)));
  • Weights can now be assigned directly to consonants and vowels to influence their frequency of use
var g = new NameGenerator()
    .UsingProvider(x => x
        .WithVowels("a").Weight(5) // This vowel will now occur 2.5 times more often than other vowels
        .WithVowels("ei").Weight(2)
        .WithConsonants("trs"));

Mutator (Transformer) Changes

  • Name mutators have been reimplemented and are now called name Transformers. Similarly, Mutations are now Transforms and MutationSteps are TransformSteps.
  • Transformation frequency is now set by calling Select() and Chance() directly on a Transformer
  • Weights can now be assigned to transforms to influence their frequency
var g = new NameGenerator()
        .UsingProvider(x => x
            .WithVowels("ae")
            .WithLeadingConsonants("str"))
        .UsingTransformer(x => x
            .Select(1).Chance(0.5)
            .WithTransform(x => x.AppendSyllable("gard")).Weight(2)
            .WithTransform(x => x.AppendSyllable("dar")))
        .UsingSyllableCount(3);
  • Additionally, all Transforms are now serializable unless using ExecuteUnserializableAction()

Validator (Filter) Changes

  • Name validators are now name Filters
  • DoNotAllow(), DoNotAllowEnding(), DoNotAlllowBeginning() methods have been added to filters as an alternative to providing regular expressions
var g = new NameGenerator()
            .UsingFilter(x => x
                .DoNotAllowEnding("j","p","q","w")             // Invalidate these awkward endings
                .DoNotAllowPattern(@"(\w)\1\1")                // Invalidate any sequence of 3 or more identical letters
                .DoNotAllowPattern(@"([^aeiouAEIOU])\1\1\1")); // Invalidate any sequence of 4 or more consonants

Serialization Changes

  • ConfigurationFile has been replaced with class NameGeneratorSerializer

Minor changes

  • NameGenerator LimitSyllableCount() is now UsingSyllableCount()
  • Added SyllableSet as first alternative to SyllableProvider
  • Syllabore now uses Archigen

v2.0-alpha5

30 Oct 22:40
Compare
Choose a tag to compare
v2.0-alpha5 Pre-release
Pre-release
Bump to version 2.0-alpha5

v2.0-alpha4

28 Oct 03:17
Compare
Choose a tag to compare
v2.0-alpha4 Pre-release
Pre-release
Increment version to v2.0.0.0-alpha4

v2.0-alpha3

26 Oct 03:58
Compare
Choose a tag to compare
v2.0-alpha3 Pre-release
Pre-release
Increment version to 2.0.0.0-alpha3