Sha256: 8a3ec253927824bfb45173261daf0d63c70bb6561440f3103c21dab54f379eb2

Contents?: true

Size: 778 Bytes

Versions: 78

Compression:

Stored size: 778 Bytes

Contents

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Generators.Exercises;

namespace Generators.Data
{
    public class ExerciseCollection : IEnumerable<Exercise>
    {
        private readonly IEnumerable<Exercise> generators = GetDefinedGenerators();

        public IEnumerator<Exercise> GetEnumerator() => generators.GetEnumerator();

        IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();

        private static IEnumerable<Exercise> GetDefinedGenerators() =>
            from type in Assembly.GetEntryAssembly().GetTypes()
            where typeof(Exercise).IsAssignableFrom(type) && !type.GetTypeInfo().IsAbstract
            select (Exercise)Activator.CreateInstance(type);
    }
}

Version data entries

78 entries across 78 versions & 1 rubygems

Version Path
trackler-2.1.0.48 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.47 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.46 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.45 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.44 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.43 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.42 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.41 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.40 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.39 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.38 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.37 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.36 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.34 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.33 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.32 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.31 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.30 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.29 tracks/csharp/generators/Data/ExerciseCollection.cs
trackler-2.1.0.28 tracks/csharp/generators/Data/ExerciseCollection.cs