Class: Gitlab::CloudConnector::DataModel::Base
- Inherits:
-
Object
- Object
- Gitlab::CloudConnector::DataModel::Base
show all
- Extended by:
- Enumerable
- Includes:
- Associations
- Defined in:
- lib/gitlab/cloud_connector/data_model/base.rb
Class Method Summary
collapse
Instance Method Summary
collapse
included
Constructor Details
#initialize(**opts) ⇒ Base
Returns a new instance of Base.
40
41
42
43
44
45
46
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 40
def initialize(**opts)
opts.each do |key, value|
raise ArgumentError, "Cannot override association '#{key}'" if association_key?(key)
instance_variable_set(:"@#{key}", value)
end
end
|
Class Method Details
.all ⇒ Object
25
26
27
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 25
def all
name_index.values.uniq
end
|
.each(&block) ⇒ Object
17
18
19
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 17
def each(&block)
all.each(&block)
end
|
.find_by_name(name) ⇒ Object
21
22
23
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 21
def find_by_name(name)
name_index[name.to_sym]
end
|
.model_name ⇒ Object
13
14
15
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 13
def model_name
name&.demodulize
end
|
Instance Method Details
#[](name) ⇒ Object
48
49
50
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 48
def [](name)
instance_variable_get(:"@#{name}")
end
|
#association_key?(key) ⇒ Boolean
52
53
54
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 52
def association_key?(key)
self.class.association_cache_keys.include?(key.to_sym)
end
|
#to_hash ⇒ Object
56
57
58
59
60
61
62
|
# File 'lib/gitlab/cloud_connector/data_model/base.rb', line 56
def to_hash
instance_variables.each_with_object({}) do |var, hash|
key = var.to_s.delete('@').to_sym
hash[key] = instance_variable_get(var) unless association_key?(key)
end
end
|