Sha256: b02b32e79cf6dfb07919def936450173ad6456eab028a4df1c0b4910f93de687

Contents?: true

Size: 989 Bytes

Versions: 205

Compression:

Stored size: 989 Bytes

Contents

module Generator
  module Files
    module GeneratorCases
      class << self
        def available(track_path)
          cases_filepaths(track_path).map { |filepath| slugify(filepath) }.sort
        end

        def source_filepath(track_path, slug)
          path = meta_generator_path(track_path, slug)
          filename = filename(slug) + '.rb'
          File.join(path, filename)
        end

        private

        def cases_filepaths(track_path)
          generator_glob = File.join(meta_generator_path(track_path, '*'), '*_case.rb')
          Dir.glob(generator_glob, File::FNM_DOTMATCH)
        end

        def slugify(filepath)
          File.basename(filepath, '_case.rb').tr('_', '-')
        end

        def filename(exercise_name_or_slug)
          "#{exercise_name_or_slug.tr('-', '_')}_case"
        end

        def meta_generator_path(track_path, slug)
          File.join(track_path, 'exercises', slug, '.meta', 'generator')
        end
      end
    end
  end
end

Version data entries

205 entries across 205 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.118 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.117 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.116 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.115 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.114 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.113 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.111 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.110 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.109 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.108 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.107 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.106 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.105 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.104 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.103 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.102 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.101 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.100 tracks/ruby/lib/generator/files/generator_cases.rb
trackler-2.2.1.99 tracks/ruby/lib/generator/files/generator_cases.rb