Sha256: 11f6b00ee638d2b2a5944c652307104f9fcf9a302b7941bb3e47449fc9235b4e

Contents?: true

Size: 509 Bytes

Versions: 3

Compression:

Stored size: 509 Bytes

Contents

# frozen_string_literal: true

module Wordle
  class List
    def random
      list.sample.downcase.strip
    end

    def by_hash(hash)
      word = list.detect do |word|
        Digest::SHA2.hexdigest(word.downcase.strip)[..5] == hash
      end

      raise Wordle::Error, "Invalid word identifier, are you sure you copied it correctly?" if word.nil?

      word
    end

    def invalid?(word)
      !list.include?(word)
    end

    private

    def list
      @_list ||= Wordle::SOURCE
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
wordle-0.7.0 lib/wordle/list.rb
wordle-0.6.0 lib/wordle/list.rb
wordle-0.5.0 lib/wordle/list.rb