Class: Cdss::Models::Analysis

Inherits:
Object
  • Object
show all
Defined in:
lib/cdss/models/analysis.rb

Overview

Base class for analysis-related models with shared functionality. Provides dynamic attribute handling for call analysis, source routes, and route analysis data.

Direct Known Subclasses

CallAnalysis, RouteAnalysis, SourceRoute

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**kwargs) ⇒ Analysis

Returns a new instance of Analysis.



24
25
26
27
28
29
# File 'lib/cdss/models/analysis.rb', line 24

def initialize(**kwargs)
  kwargs[:metadata] ||= {}
  self.class.attribute_list.each do |attr|
    instance_variable_set(:"@#{attr}", kwargs[attr]) if kwargs.key?(attr)
  end
end

Class Method Details

.attribute_listObject



19
20
21
# File 'lib/cdss/models/analysis.rb', line 19

def attribute_list
  @attributes || []
end

.attributes(*attrs) ⇒ Object



10
11
12
13
# File 'lib/cdss/models/analysis.rb', line 10

def attributes(*attrs)
  @attributes = attrs
  attr_accessor(*attrs)
end

.inherited(subclass) ⇒ Object



15
16
17
# File 'lib/cdss/models/analysis.rb', line 15

def inherited(subclass)
  subclass.attributes(*@attributes) if @attributes
end