Class: Models::Base

Inherits:
Struct
  • Object
show all
Defined in:
lib/models/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#clientObject

Returns the value of attribute client

Returns:

  • (Object)

    the current value of client



4
5
6
# File 'lib/models/base.rb', line 4

def client
  @client
end

#dataObject

Returns the value of attribute data

Returns:

  • (Object)

    the current value of data



4
5
6
# File 'lib/models/base.rb', line 4

def data
  @data
end

Class Method Details

.pathObject



9
10
11
# File 'lib/models/base.rb', line 9

def self.path
  name.demodulize.tableize
end

.schema(&block) ⇒ Object



17
18
19
20
21
# File 'lib/models/base.rb', line 17

def self.schema(&block)
  @schema ||= Schema.new(stream)
  @schema.instance_eval &block if block_given?
  @schema.to_hash
end

.streamObject



13
14
15
# File 'lib/models/base.rb', line 13

def self.stream
  name.demodulize.tableize
end

.subclassesObject



5
6
7
# File 'lib/models/base.rb', line 5

def self.subclasses
  ObjectSpace.each_object(Class).select { |klass| klass < self }
end

Instance Method Details

#base_recordObject



27
28
29
30
31
32
33
# File 'lib/models/base.rb', line 27

def base_record
  {
    type: "RECORD",
    stream: self.class.stream,
    record: transform
  }
end

#extra_recordsObject



35
36
37
# File 'lib/models/base.rb', line 35

def extra_records
  []
end

#recordsObject



39
40
41
# File 'lib/models/base.rb', line 39

def records
  [ base_record ] + extra_records.map(&:records)
end

#transformObject



23
24
25
# File 'lib/models/base.rb', line 23

def transform
  data.dup
end