Class: Uniword::Resource::CachePaths

Inherits:
Struct
  • Object
show all
Defined in:
lib/uniword/resource/cache_paths.rb

Overview

Value object for cache directory paths Immutable - create new instance if paths change

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#baseObject

Returns the value of attribute base

Returns:

  • (Object)

    the current value of base



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def base
  @base
end

#color_schemesObject

Returns the value of attribute color_schemes

Returns:

  • (Object)

    the current value of color_schemes



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def color_schemes
  @color_schemes
end

#document_elementsObject

Returns the value of attribute document_elements

Returns:

  • (Object)

    the current value of document_elements



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def document_elements
  @document_elements
end

#font_schemesObject

Returns the value of attribute font_schemes

Returns:

  • (Object)

    the current value of font_schemes



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def font_schemes
  @font_schemes
end

#stylesetsObject

Returns the value of attribute stylesets

Returns:

  • (Object)

    the current value of stylesets



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def stylesets
  @stylesets
end

#themesObject

Returns the value of attribute themes

Returns:

  • (Object)

    the current value of themes



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def themes
  @themes
end

#version_fileObject

Returns the value of attribute version_file

Returns:

  • (Object)

    the current value of version_file



7
8
9
# File 'lib/uniword/resource/cache_paths.rb', line 7

def version_file
  @version_file
end

Class Method Details

.from_word_implementation(word_impl) ⇒ Object

Factory method - creates from WordImplementation



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/uniword/resource/cache_paths.rb', line 10

def self.from_word_implementation(word_impl)
  base = word_impl.cache_path
  new(
    base: base,
    themes: File.join(base, "themes"),
    stylesets: File.join(base, "stylesets"),
    color_schemes: File.join(base, "color_schemes"),
    font_schemes: File.join(base, "font_schemes"),
    document_elements: File.join(base, "document_elements"),
    version_file: File.join(base, "version.json"),
  )
end

Instance Method Details

#ensure_directories_exist!Object



23
24
25
26
27
28
# File 'lib/uniword/resource/cache_paths.rb', line 23

def ensure_directories_exist!
  [base, themes, stylesets, color_schemes, font_schemes,
   document_elements].each do |dir|
    FileUtils.mkdir_p(dir) unless File.directory?(dir)
  end
end