module Trollme::Topic

Attributes

topic[R]
yaml[R]

Private Class Methods

defaults(topic) click to toggle source
# File lib/trollme/topic.rb, line 16
def defaults(topic)
  @yaml = YAML.load_file(topics_path)
  @topic = downcase_topic(topic)
end
downcase_topic(topic) click to toggle source
# File lib/trollme/topic.rb, line 21
def downcase_topic(topic)
  topic.downcase if topic
end
picture_from_topic(topic) click to toggle source
# File lib/trollme/topic.rb, line 37
def picture_from_topic(topic)
  yaml[topic].sample
end
random_topic() click to toggle source
# File lib/trollme/topic.rb, line 33
def random_topic
  picture_from_topic(yaml.keys.sample)
end
topic_is_in_list_and_present(topic) click to toggle source
# File lib/trollme/topic.rb, line 29
def topic_is_in_list_and_present(topic)
  topic && yaml.key?(topic)
end
topics_path() click to toggle source
# File lib/trollme/topic.rb, line 25
def topics_path
  File.expand_path(File.join(__dir__, '..', 'external', 'topics.yml'))
end

Public Instance Methods

call(topic) click to toggle source
# File lib/trollme/topic.rb, line 7
def call(topic)
  defaults(topic)
  return random_topic unless topic_is_in_list_and_present(topic)
  picture_from_topic(topic)
end