Class: MetaReports::Table

Inherits:
Object
  • Object
show all
Defined in:
lib/meta_reports/table.rb

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ Table

Returns a new instance of Table.

Yields:

  • (_self)

Yield Parameters:



5
6
7
8
9
# File 'lib/meta_reports/table.rb', line 5

def initialize
  @data = []
  @options = {row_classes: {}}
  yield self if block_given?
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/meta_reports/table.rb', line 11

def method_missing(method, *args, &block)
  method_string = method.to_s
  if method_string =~ /^(.+)=$/
    @options[$1.to_sym] = args.first
  elsif @options[method.to_sym]
    @options[method.to_sym]
  else
    super
  end
end

Instance Method Details

#+(arr) ⇒ Object



46
47
48
# File 'lib/meta_reports/table.rb', line 46

def +(arr)
  @data += arr
end

#<<(val) ⇒ Object

data methods



42
43
44
# File 'lib/meta_reports/table.rb', line 42

def <<(val)
  @data << val
end

#[](key) ⇒ Object

options methods



24
25
26
# File 'lib/meta_reports/table.rb', line 24

def [](key)
  @options[key]
end

#[]=(key, val) ⇒ Object



28
29
30
# File 'lib/meta_reports/table.rb', line 28

def []=(key,val)
  @options[key] = val
end

#data=(value) ⇒ Object



78
79
80
# File 'lib/meta_reports/table.rb', line 78

def data=(value)
  @data = value
end

#firstObject



50
51
52
# File 'lib/meta_reports/table.rb', line 50

def first
  @data.first
end

#lastObject



54
55
56
# File 'lib/meta_reports/table.rb', line 54

def last
  @data.last
end

#lengthObject



58
59
60
# File 'lib/meta_reports/table.rb', line 58

def length
  @data.length
end

#optionsObject



32
33
34
# File 'lib/meta_reports/table.rb', line 32

def options
  @options
end

#popObject



62
63
64
# File 'lib/meta_reports/table.rb', line 62

def pop
  @data.pop
end

#push(val) ⇒ Object



66
67
68
# File 'lib/meta_reports/table.rb', line 66

def push(val)
  @data.push(val)
end

#row_classesObject



36
37
38
# File 'lib/meta_reports/table.rb', line 36

def row_classes
  @options[:row_classes]
end

#shiftObject



70
71
72
# File 'lib/meta_reports/table.rb', line 70

def shift
  @data.shift
end

#to_aObject Also known as: data



74
75
76
# File 'lib/meta_reports/table.rb', line 74

def to_a
  @data
end

#unshift(val) ⇒ Object



82
83
84
# File 'lib/meta_reports/table.rb', line 82

def unshift(val)
  @data.unshift(val)
end