class Eman::Recommender

Attributes

generator[R]

Public Class Methods

new(generator) click to toggle source
# File lib/eman/recommender.rb, line 6
def initialize(generator)
  @generator = generator
end

Public Instance Methods

inputs() click to toggle source
# File lib/eman/recommender.rb, line 10
def inputs
  @inputs ||= @generator.inputs
end
recommend_name() click to toggle source
# File lib/eman/recommender.rb, line 22
def recommend_name
  fetch_similar_words
  assemble_words
end
type() click to toggle source
# File lib/eman/recommender.rb, line 14
def type
  @type ||= @generator.type
end
words_hash() click to toggle source
# File lib/eman/recommender.rb, line 18
def words_hash
  @words_hash ||= Hash[ inputs.collect { |x| [x, []] } ]
end

Private Instance Methods

assemble_words() click to toggle source
# File lib/eman/recommender.rb, line 37
def assemble_words
  recommended_name = []

  if words_hash.values.flatten.length != inputs.length

    words_hash.each do |key, val|
      recommended_name << val.sample
    end

    if recommended_name.any?
      recommended = Eman::Generator.new(type)
      recommended.resource = recommended_name.join(' ')

      recommended
    end

  end
end
fetch_similar_words() click to toggle source
# File lib/eman/recommender.rb, line 29
def fetch_similar_words
  inputs.each do |i|
    synonyms = Dictionary.find_similar(i)

    synonyms.each { |s| words_hash[i] << s } if synonyms.any?
  end
end