Class: Sparkplug::Handlers::CsvData

Inherits:
AbstractData show all
Defined in:
lib/sparkplug/handlers/csv_data.rb

Overview

Reads sparkline data from CSV files. Only the first line of numbers are read. Requests for “/sparks/stats.csv” will pass a data_path of “stats.csv”

Instance Attribute Summary collapse

Attributes inherited from AbstractData

#data_path

Instance Method Summary collapse

Methods inherited from AbstractData

#already_cached?, #set

Constructor Details

#initialize(directory) ⇒ CsvData

Returns a new instance of CsvData.



7
8
9
# File 'lib/sparkplug/handlers/csv_data.rb', line 7

def initialize(directory)
  @directory = directory
end

Instance Attribute Details

#directoryObject

Returns the value of attribute directory.



5
6
7
# File 'lib/sparkplug/handlers/csv_data.rb', line 5

def directory
  @directory
end

Instance Method Details

#data_path=(s) ⇒ Object



11
12
13
# File 'lib/sparkplug/handlers/csv_data.rb', line 11

def data_path=(s)
  @data_path = s ? File.join(@directory, s) : nil
end

#exists?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/sparkplug/handlers/csv_data.rb', line 15

def exists?
  File.exist?(@data_path)
end

#fetch {|array_of_nums| ... } ⇒ Object

Yields:

  • (array_of_nums)


23
24
25
26
27
# File 'lib/sparkplug/handlers/csv_data.rb', line 23

def fetch
  array_of_nums = IO.read(@data_path).split("\n").first.split(",")
  array_of_nums.map! { |n| n.to_i }
  yield array_of_nums
end

#updated_atObject



19
20
21
# File 'lib/sparkplug/handlers/csv_data.rb', line 19

def updated_at
  File.mtime(@data_path)
end