Class: PDD::Source
- Inherits:
-
Object
- Object
- PDD::Source
- Defined in:
- lib/pdd/source.rb
Overview
Source.
Instance Method Summary collapse
-
#initialize(file, path) ⇒ Source
constructor
Ctor.
-
#puzzles ⇒ Object
Fetch all puzzles.
Constructor Details
#initialize(file, path) ⇒ Source
Ctor.
file-
Absolute file name with source code
path-
Path to show (without full file name)
34 35 36 37 |
# File 'lib/pdd/source.rb', line 34 def initialize(file, path) @file = file @path = path end |
Instance Method Details
#puzzles ⇒ Object
Fetch all puzzles.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/pdd/source.rb', line 40 def puzzles PDD.log.info "Reading #{@path}..." puzzles = [] lines = File.readlines(@file, encoding: 'UTF-8') lines.each_with_index do |line, idx| begin check_rules(line) ["\x40todo", 'TODO:?'].each do |pfx| %r{(.*(?:^|\s))#{pfx}\s+#([\w\-\.:/]+)\s+(.+)}.match(line) do |m| puzzles << puzzle(lines.drop(idx + 1), m, idx) end end rescue Error, ArgumentError => ex raise Error, "puzzle at line ##{idx + 1}; #{ex.message}" end end puzzles end |