Class: Rack::Sparklines::Handlers::CsvData

Inherits:
AbstractData show all
Defined in:
lib/rack-sparklines/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.



9
10
11
# File 'lib/rack-sparklines/handlers/csv_data.rb', line 9

def initialize(directory)
  @directory = directory
end

Instance Attribute Details

#directoryObject

Returns the value of attribute directory.



7
8
9
# File 'lib/rack-sparklines/handlers/csv_data.rb', line 7

def directory
  @directory
end

Instance Method Details

#data_path=(s) ⇒ Object



13
14
15
# File 'lib/rack-sparklines/handlers/csv_data.rb', line 13

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

#exists?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/rack-sparklines/handlers/csv_data.rb', line 17

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

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

Yields:

  • (array_of_nums)


25
26
27
28
29
# File 'lib/rack-sparklines/handlers/csv_data.rb', line 25

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



21
22
23
# File 'lib/rack-sparklines/handlers/csv_data.rb', line 21

def updated_at
  File.mtime(@data_path)
end