layers store backend data now
[augment.git] / lib / layer.rb
blob1eaa1da8eae3097d4ef1a6738fdb1b825e7fa51d
1 require 'json'
3 class Layer
4   def initialize(range, color, message, backend)
5     range = (range.split('...').first.to_i ... range.split('...').last.to_i) if range.is_a? String
6     @attrs = { 'range' => range, 'color' => color, 'message' => message,
7       'backend' => backend.to_s.downcase.gsub(/backend/, '')}
8   end
10   def self.read(original_file)
11     JSON.parse(File.read(Augment.augment_path(original_file))).map{ |l| Layer.new(l['range'], l['color'], l['message'], l['backend']) }.sort_by{ |l| l['range'].begin }.reverse
12   end
14   def self.line_to_char_range(file, line)
15     file = File.read(file).split("\n")
16     start = file[0 ... line - 1].join("\n").size + 2
17     (start ... start + file[line - 1].size)
18   end
20   def to_json
21     @attrs.to_json
22   end
24   def [](attr)
25     @attrs[attr]
26   end
27 end