Class: RubyHome::ServiceTemplate

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_home/factories/templates/service_template.rb

Constant Summary collapse

FILEPATH =
(File.dirname(__FILE__) + '/../../config/services.yml').freeze
DATA =
YAML.load_file(FILEPATH).freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, description:, uuid:, optional_characteristics_uuids:, required_characteristics_uuids:) ⇒ ServiceTemplate

Returns a new instance of ServiceTemplate.



18
19
20
21
22
23
24
# File 'lib/ruby_home/factories/templates/service_template.rb', line 18

def initialize(name:, description:, uuid:, optional_characteristics_uuids:, required_characteristics_uuids:)
  @name = name
  @description = description
  @uuid = uuid
  @optional_characteristics_uuids = optional_characteristics_uuids
  @required_characteristics_uuids = required_characteristics_uuids
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



26
27
28
# File 'lib/ruby_home/factories/templates/service_template.rb', line 26

def description
  @description
end

#nameObject (readonly)

Returns the value of attribute name.



26
27
28
# File 'lib/ruby_home/factories/templates/service_template.rb', line 26

def name
  @name
end

#optional_characteristics_uuidsObject (readonly)

Returns the value of attribute optional_characteristics_uuids.



26
27
28
# File 'lib/ruby_home/factories/templates/service_template.rb', line 26

def optional_characteristics_uuids
  @optional_characteristics_uuids
end

#required_characteristics_uuidsObject (readonly)

Returns the value of attribute required_characteristics_uuids.



26
27
28
# File 'lib/ruby_home/factories/templates/service_template.rb', line 26

def required_characteristics_uuids
  @required_characteristics_uuids
end

#uuidObject (readonly)

Returns the value of attribute uuid.



26
27
28
# File 'lib/ruby_home/factories/templates/service_template.rb', line 26

def uuid
  @uuid
end

Class Method Details

.allObject



6
7
8
# File 'lib/ruby_home/factories/templates/service_template.rb', line 6

def self.all
  @all ||= DATA.map { |data| new(**data) }
end

.find_by(options) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/ruby_home/factories/templates/service_template.rb', line 10

def self.find_by(options)
  all.find do |characteristic|
    options.all? do |key, value|
      characteristic.send(key) == value
    end
  end
end

Instance Method Details

#optional_characteristicsObject



28
29
30
31
32
# File 'lib/ruby_home/factories/templates/service_template.rb', line 28

def optional_characteristics
  @optional_characteristics ||= optional_characteristics_uuids.map do |uuid|
    CharacteristicTemplate.find_by(uuid: uuid)
  end
end

#required_characteristicsObject



34
35
36
37
38
# File 'lib/ruby_home/factories/templates/service_template.rb', line 34

def required_characteristics
  @required_characteristics ||= required_characteristics_uuids.map do |uuid|
    CharacteristicTemplate.find_by(uuid: uuid)
  end
end