Class: MetaReports::Table

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

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Table.

Yields:

  • (_self)

Yield Parameters:



2
3
4
5
6
# File 'app/models/meta_reports/table.rb', line 2

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



8
9
10
11
12
13
14
15
16
17
# File 'app/models/meta_reports/table.rb', line 8

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



43
44
45
# File 'app/models/meta_reports/table.rb', line 43

def +(arr)
  @data += arr
end

#<<(val) ⇒ Object

data methods



39
40
41
# File 'app/models/meta_reports/table.rb', line 39

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

#[](key) ⇒ Object

options methods



21
22
23
# File 'app/models/meta_reports/table.rb', line 21

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

#[]=(key, val) ⇒ Object



25
26
27
# File 'app/models/meta_reports/table.rb', line 25

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

#firstObject



47
48
49
# File 'app/models/meta_reports/table.rb', line 47

def first
  @data.first
end

#lastObject



51
52
53
# File 'app/models/meta_reports/table.rb', line 51

def last
  @data.last
end

#lengthObject



55
56
57
# File 'app/models/meta_reports/table.rb', line 55

def length
  @data.length
end

#optionsObject



29
30
31
# File 'app/models/meta_reports/table.rb', line 29

def options
  @options
end

#popObject



59
60
61
# File 'app/models/meta_reports/table.rb', line 59

def pop
  @data.pop
end

#push(val) ⇒ Object



63
64
65
# File 'app/models/meta_reports/table.rb', line 63

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

#row_classesObject



33
34
35
# File 'app/models/meta_reports/table.rb', line 33

def row_classes
  @options[:row_classes]
end

#shiftObject



67
68
69
# File 'app/models/meta_reports/table.rb', line 67

def shift
  @data.shift
end

#to_aObject Also known as: data



71
72
73
# File 'app/models/meta_reports/table.rb', line 71

def to_a
  @data
end

#unshift(val) ⇒ Object



75
76
77
# File 'app/models/meta_reports/table.rb', line 75

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