Class: RokuBuilder::Manifest

Inherits:
Object
  • Object
show all
Defined in:
lib/roku_builder/manifest.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config:) ⇒ Manifest

Returns a new instance of Manifest.



13
14
15
16
17
18
# File 'lib/roku_builder/manifest.rb', line 13

def initialize(config:)
  @config = config
  @attributes = {}
  check_for_manifest
  read
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method) ⇒ Object



41
42
43
# File 'lib/roku_builder/manifest.rb', line 41

def method_missing(method)
  @attributes[method]
end

Class Method Details

.generate(config:, attributes:) ⇒ Object



6
7
8
9
10
11
# File 'lib/roku_builder/manifest.rb', line 6

def self.generate(config:, attributes:)
  FileUtils.touch(File.join(config.parsed[:root_dir], "manifest"))
  manifest = new(config: config)
  manifest.update(attributes: default_params.merge(attributes))
  manifest
end

Instance Method Details

#get_attributesObject



25
26
27
# File 'lib/roku_builder/manifest.rb', line 25

def get_attributes
  @attributes
end

#increment_build_versionObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/roku_builder/manifest.rb', line 29

def increment_build_version
  build_version_parts = @attributes[:build_version].split(".")
  if build_version_parts.length == 2
    build_version_parts[0] = Time.now.strftime("%m%d%y")
    build_version_parts[1] = build_version_parts[1].to_i + 1
    @attributes[:build_version] = build_version_parts.join(".")
  else
    @attributes[:build_version] = build_version_parts[0].to_i + 1
  end
  write_file
end

#update(attributes:) ⇒ Object



20
21
22
23
# File 'lib/roku_builder/manifest.rb', line 20

def update(attributes:)
  update_attributes(attributes)
  write_file
end