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
-
#lines ⇒ Object
readonly
store used strategies in a file with (store the md5 sum of the strategies’ text).
Instance Method Summary collapse
- #add_lines(*new_lines) ⇒ Object
- #get_all_lines ⇒ Object
- #get_lines_from_file ⇒ Object
- #get_used_lines ⇒ Object
- #get_used_lines_from_file ⇒ Object
- #initialize ⇒ Object
- #load_lines ⇒ Object
- #load_tweets ⇒ Object
- #next ⇒ Object
- #pick ⇒ Object
- #store(line) ⇒ Object
Instance Attribute Details
#lines ⇒ Object (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_lines ⇒ Object
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_file ⇒ Object
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_lines ⇒ Object
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_file ⇒ Object
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 |
#initialize ⇒ Object
12 13 14 15 |
# File 'lib/modules/one_line_from_file.rb', line 12 def initialize @lines = [] # load_lines end |
#load_lines ⇒ Object
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_tweets ⇒ Object
17 18 19 |
# File 'lib/modules/one_line_from_file.rb', line 17 def load_tweets load_lines end |
#next ⇒ Object
65 66 67 |
# File 'lib/modules/one_line_from_file.rb', line 65 def next @lines.delete_at(pick) end |
#pick ⇒ Object
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 |