Class: KvgCharacterRecognition::JSONDatastore
- Inherits:
-
Object
- Object
- KvgCharacterRecognition::JSONDatastore
- Defined in:
- lib/kvg_character_recognition/datastore.rb
Instance Method Summary collapse
- #characters_in_range(point_range, stroke_range) ⇒ Object
- #dump(filename) ⇒ Object
-
#initialize(filename = 'characters.json') ⇒ JSONDatastore
constructor
A new instance of JSONDatastore.
- #load_file(filename) ⇒ Object
- #persist! ⇒ Object
- #store(character) ⇒ Object
Constructor Details
#initialize(filename = 'characters.json') ⇒ JSONDatastore
Returns a new instance of JSONDatastore.
3 4 5 6 |
# File 'lib/kvg_character_recognition/datastore.rb', line 3 def initialize filename = 'characters.json' @data = load_file(filename) @filename = filename end |
Instance Method Details
#characters_in_range(point_range, stroke_range) ⇒ Object
17 18 19 |
# File 'lib/kvg_character_recognition/datastore.rb', line 17 def characters_in_range point_range, stroke_range @data.select { |character| point_range === character[:number_of_points] && stroke_range === character[:number_of_strokes] } end |
#dump(filename) ⇒ Object
29 30 31 |
# File 'lib/kvg_character_recognition/datastore.rb', line 29 def dump filename File.write(filename, @data.to_json) end |
#load_file(filename) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/kvg_character_recognition/datastore.rb', line 8 def load_file filename begin JSON.parse(File.read(filename, encoding: 'utf-8'), symbolize_names: true) rescue puts "WARNING: Can't load file, returning empty character collection." [] end end |
#persist! ⇒ Object
25 26 27 |
# File 'lib/kvg_character_recognition/datastore.rb', line 25 def persist! dump @filename end |
#store(character) ⇒ Object
21 22 23 |
# File 'lib/kvg_character_recognition/datastore.rb', line 21 def store character @data.push character end |