Module: OneLineFromFile

Defined in:
lib/modules/one_line_from_file.rb

Constant Summary collapse

LINES_FILE =
'lines.txt'
USED_LINES_FILE =
'used_lines.txt'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#linesObject (readonly)

store used strategies in a file with (store the md5 sum of the strategies’ text)



7
8
9
# File 'lib/modules/one_line_from_file.rb', line 7

def lines
  @lines
end

Instance Method Details

#add_lines(*new_lines) ⇒ Object



51
52
53
# File 'lib/modules/one_line_from_file.rb', line 51

def add_lines(*new_lines)
  @lines.concat(new_lines)
end

#get_all_linesObject



29
30
31
# File 'lib/modules/one_line_from_file.rb', line 29

def get_all_lines
  @fresh_lines ||= get_lines_from_file
end

#get_lines_from_fileObject



21
22
23
24
25
26
27
# File 'lib/modules/one_line_from_file.rb', line 21

def get_lines_from_file
  begin
    IO::readlines(LINES_FILE).map { |line| line.chomp }
  rescue Errno::ENOENT
    []
  end
end

#get_used_linesObject



41
42
43
# File 'lib/modules/one_line_from_file.rb', line 41

def get_used_lines
  @used_lines ||=  get_used_lines_from_file
end

#get_used_lines_from_fileObject



33
34
35
36
37
38
39
# File 'lib/modules/one_line_from_file.rb', line 33

def get_used_lines_from_file
  begin
    IO::readlines(USED_LINES_FILE).map { |line| line.chomp }
  rescue Errno::ENOENT
    []
  end
end

#initializeObject



12
13
14
15
# File 'lib/modules/one_line_from_file.rb', line 12

def initialize
  @lines = []
  # load_lines
end

#load_linesObject



45
46
47
48
49
# File 'lib/modules/one_line_from_file.rb', line 45

def load_lines
  used = get_used_lines
  unused_lines = get_all_lines.select { |line| !used.include?(line) }
  add_lines(*unused_lines)
end

#load_tweetsObject



17
18
19
# File 'lib/modules/one_line_from_file.rb', line 17

def load_tweets
  load_lines
end

#nextObject



65
66
67
# File 'lib/modules/one_line_from_file.rb', line 65

def next
  @lines.delete_at(pick)
end

#pickObject



55
56
57
# File 'lib/modules/one_line_from_file.rb', line 55

def pick
  rand(lines.length)
end

#store(line) ⇒ Object



59
60
61
62
63
# File 'lib/modules/one_line_from_file.rb', line 59

def store(line)
  open(USED_LINES_FILE, "a") do |file|
    file.write(line + "\n")
  end
end