Class: Epuber::Compiler::FileTypes::AbstractFile

Inherits:
Object
  • Object
show all
Defined in:
lib/epuber/compiler/file_types/abstract_file.rb

Direct Known Subclasses

GeneratedFile, SourceFile

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#compilation_contextEpuber::Compiler::CompilationContext

Returns non-nil value only during #process() method.

Returns:



40
41
42
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 40

def compilation_context
  @compilation_context
end

#destination_pathString

Returns relative destination path.

Returns:

  • (String)

    relative destination path



9
10
11
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 9

def destination_path
  @destination_path
end

#final_destination_pathString

Returns final absolute destination path calculated by FileResolver.

Returns:

  • (String)

    final absolute destination path calculated by FileResolver



32
33
34
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 32

def final_destination_path
  @final_destination_path
end

#groupSymbol

Returns group of this file (:text, :image, :font, …), see Epuber::Compiler::FileFinder::GROUP_EXTENSIONS.

Returns:

  • (Symbol)

    group of this file (:text, :image, :font, …), see Epuber::Compiler::FileFinder::GROUP_EXTENSIONS



14
15
16
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 14

def group
  @group
end

#path_typeSymbol

Returns type of path, one of :spine, :manifest, :package.

Returns:

  • (Symbol)

    type of path, one of :spine, :manifest, :package



36
37
38
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 36

def path_type
  @path_type
end

#pkg_destination_pathString

Returns final relative destination path from root of the package calculated by FileResolver.

Returns:

  • (String)

    final relative destination path from root of the package calculated by FileResolver



28
29
30
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 28

def pkg_destination_path
  @pkg_destination_path
end

#propertiesSet<Symbol>

Returns list of properties.

Returns:

  • (Set<Symbol>)

    list of properties



22
23
24
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 22

def properties
  @properties ||= Set.new
end

Class Method Details

.file_copy!(source_path, dest_path) ⇒ Object

Returns nil.

Parameters:

  • source_path (String)
  • dest_path (String)

Returns:

  • nil



54
55
56
57
58
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 54

def self.file_copy!(source_path, dest_path)
  FileUtils.mkdir_p(File.dirname(dest_path))

  FileUtils.cp(source_path, dest_path)
end

.write_to_file(content, to_path) ⇒ Object

Returns nil.

Parameters:

  • content (String | #to_s)

    anything, that can be converted to string and should be written to file

  • to_path (String)

    destination path

Returns:

  • nil



76
77
78
79
80
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 76

def self.write_to_file(content, to_path)
  return unless write_to_file?(content, to_path)

  write_to_file!(content, to_path)
end

.write_to_file!(content, to_path) ⇒ Object

Returns nil.

Parameters:

  • content (String | #to_s)

    anything, that can be converted to string and should be written to file

  • to_path (String)

    destination path

Returns:

  • nil



87
88
89
90
91
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 87

def self.write_to_file!(content, to_path)
  FileUtils.mkdir_p(File.dirname(to_path))

  File.write(to_path, content)
end

.write_to_file?(content, to_path) ⇒ Boolean

Returns nil.

Parameters:

  • content (String | #to_s)

    anything, that can be converted to string and should be written to file

  • to_path (String)

    destination path

Returns:

  • (Boolean)

    nil



65
66
67
68
69
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 65

def self.write_to_file?(content, to_path)
  return true unless File.exist?(to_path)

  File.read(to_path) != content.to_s
end

Instance Method Details

#==(other) ⇒ Object



42
43
44
# File 'lib/epuber/compiler/file_types/abstract_file.rb', line 42

def ==(other)
  self.class == other.class && final_destination_path == other.final_destination_path
end