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:



3
4
5
6
7
# File 'lib/meta_reports/table.rb', line 3

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



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

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



44
45
46
# File 'lib/meta_reports/table.rb', line 44

def +(arr)
  @data += arr
end

#<<(val) ⇒ Object

data methods



40
41
42
# File 'lib/meta_reports/table.rb', line 40

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

#[](key) ⇒ Object

options methods



22
23
24
# File 'lib/meta_reports/table.rb', line 22

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

#[]=(key, val) ⇒ Object



26
27
28
# File 'lib/meta_reports/table.rb', line 26

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

#data=(value) ⇒ Object



76
77
78
# File 'lib/meta_reports/table.rb', line 76

def data=(value)
  @data = value
end

#firstObject



48
49
50
# File 'lib/meta_reports/table.rb', line 48

def first
  @data.first
end

#lastObject



52
53
54
# File 'lib/meta_reports/table.rb', line 52

def last
  @data.last
end

#lengthObject



56
57
58
# File 'lib/meta_reports/table.rb', line 56

def length
  @data.length
end

#optionsObject



30
31
32
# File 'lib/meta_reports/table.rb', line 30

def options
  @options
end

#popObject



60
61
62
# File 'lib/meta_reports/table.rb', line 60

def pop
  @data.pop
end

#push(val) ⇒ Object



64
65
66
# File 'lib/meta_reports/table.rb', line 64

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

#row_classesObject



34
35
36
# File 'lib/meta_reports/table.rb', line 34

def row_classes
  @options[:row_classes]
end

#shiftObject



68
69
70
# File 'lib/meta_reports/table.rb', line 68

def shift
  @data.shift
end

#to_aObject Also known as: data



72
73
74
# File 'lib/meta_reports/table.rb', line 72

def to_a
  @data
end

#unshift(val) ⇒ Object



80
81
82
# File 'lib/meta_reports/table.rb', line 80

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