Sha256: 76894c6d3389b83ef9992d0f286dba3352aa430e9dda20a1d6c9d666730b643b

Contents?: true

Size: 892 Bytes

Versions: 2

Compression:

Stored size: 892 Bytes

Contents

require 'raingrams/ngram'

require 'set'

module Raingrams
  class NgramSet < Set

    def select(&block)
      selected_ngrams = self.class.new

      each do |ngram|
        selected_ngrams << ngram if block.call(ngram)
      end

      return selected_ngrams
    end

    def prefixed_by(prefix)
      select { |ngram| ngram.prefixed_by?(prefix) }
    end

    def postfixed_by(postfix)
      select { |ngram| ngram.postfixed_by?(postfix) }
    end

    def starts_with(gram)
      select { |ngram| ngram.starts_with?(gram) }
    end

    def ends_with(gram)
      select { |ngram| ngram.ends_with?(gram) }
    end

    def including(gram)
      select { |ngram| ngram.include?(gram) }
    end

    def including_any(*grams)
      select { |ngram| ngram.includes_any?(*grams) }
    end

    def including_all(*grams)
      select { |ngram| ngram.includes_all?(*grams) }
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
raingrams-0.1.1 lib/raingrams/ngram_set.rb
raingrams-0.1.2 lib/raingrams/ngram_set.rb