class Condition::Reader::ConvertSheet
Public Class Methods
new(redis)
click to toggle source
# File lib/condition/reader/convert_sheet.rb, line 8 def initialize(redis) @redis = redis @reader = Condition::Reader::RooReader.new end
Public Instance Methods
convert(path, sheet_index, name)
click to toggle source
# File lib/condition/reader/convert_sheet.rb, line 13 def convert(path, sheet_index, name) @redis.set(name, JSON.generate(@reader.read_sheet(path, sheet_index))) end
convert_dir(path, with_dir_name: true, file_name: nil)
click to toggle source
# File lib/condition/reader/convert_sheet.rb, line 29 def convert_dir(path, with_dir_name: true, file_name: nil) basename = File.basename(path) Dir::entries(path).each do |f| next if "." == f || ".." == f || /^\.~lock\.[^.]+\.ods.$/ =~ f if !file_name.nil? next if f != file_name end prefix = with_dir_name ? basename : nil convert_file("#{path}/#{f}", prefix: prefix) end end
convert_file(path, prefix: nil)
click to toggle source
# File lib/condition/reader/convert_sheet.rb, line 17 def convert_file(path, prefix: nil) name = File.basename(path, ".*") ss = Roo::Spreadsheet.open(path) ss.sheets.each do |it| ss.default_sheet = it blocks = @reader.read(ss) key = "#{name}_#{it}" key = "#{prefix}_#{key}" if !prefix.nil? @redis.set(key, JSON.generate(blocks)) end end