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_unused_lines ⇒ Object
- #get_used_lines ⇒ Object
- #get_used_lines_from_file ⇒ Object
- #load_lines ⇒ Object
- #load_tweets ⇒ Object
- #next ⇒ Object
- #pick ⇒ Object
- #reset ⇒ Object
- #setup_for_module ⇒ 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
52 53 54 |
# File 'lib/modules/one_line_from_file.rb', line 52 def add_lines(*new_lines) @lines.concat(new_lines) end |
#get_all_lines ⇒ Object
28 29 30 |
# File 'lib/modules/one_line_from_file.rb', line 28 def get_all_lines @fresh_lines ||= get_lines_from_file end |
#get_lines_from_file ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/modules/one_line_from_file.rb', line 20 def get_lines_from_file begin IO::readlines(LINES_FILE).map { |line| line.chomp } rescue Errno::ENOENT [] end end |
#get_unused_lines ⇒ Object
44 45 46 |
# File 'lib/modules/one_line_from_file.rb', line 44 def get_unused_lines get_all_lines.reject { |line| get_used_lines.include?(line) } end |
#get_used_lines ⇒ Object
40 41 42 |
# File 'lib/modules/one_line_from_file.rb', line 40 def get_used_lines @used_lines ||= get_used_lines_from_file end |
#get_used_lines_from_file ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/modules/one_line_from_file.rb', line 32 def get_used_lines_from_file begin IO::readlines(USED_LINES_FILE).map { |line| line.chomp } rescue Errno::ENOENT [] end end |
#load_lines ⇒ Object
48 49 50 |
# File 'lib/modules/one_line_from_file.rb', line 48 def load_lines add_lines(*get_unused_lines) end |
#load_tweets ⇒ Object
16 17 18 |
# File 'lib/modules/one_line_from_file.rb', line 16 def load_tweets load_lines end |
#next ⇒ Object
66 67 68 |
# File 'lib/modules/one_line_from_file.rb', line 66 def next @lines.delete_at(pick) end |
#pick ⇒ Object
56 57 58 |
# File 'lib/modules/one_line_from_file.rb', line 56 def pick rand(lines.length) end |
#reset ⇒ Object
70 71 72 73 74 |
# File 'lib/modules/one_line_from_file.rb', line 70 def reset File.delete(USED_LINES_FILE) rescue nil @used_lines = nil load_lines end |
#setup_for_module ⇒ Object
12 13 14 |
# File 'lib/modules/one_line_from_file.rb', line 12 def setup_for_module @lines = [] end |
#store(line) ⇒ Object
60 61 62 63 64 |
# File 'lib/modules/one_line_from_file.rb', line 60 def store(line) open(USED_LINES_FILE, "a") do |file| file.write(line + "\n") end end |