Class: StackedConfig::Layers::ProjectLayer
- Inherits:
-
SuperStack::Layer
- Object
- SuperStack::Layer
- StackedConfig::Layers::ProjectLayer
- Defined in:
- lib/stacked_config/layers/project_layer.rb
Instance Attribute Summary collapse
-
#project_file_basename ⇒ Object
Returns the value of attribute project_file_basename.
-
#started_from_directory ⇒ Object
readonly
Returns the value of attribute started_from_directory.
Instance Method Summary collapse
- #file_name ⇒ Object
-
#initialize(file_or_directory, project_file_basename = nil) ⇒ ProjectLayer
constructor
A new instance of ProjectLayer.
- #project_root ⇒ Object
Constructor Details
#initialize(file_or_directory, project_file_basename = nil) ⇒ ProjectLayer
Returns a new instance of ProjectLayer.
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/stacked_config/layers/project_layer.rb', line 8 def initialize(file_or_directory, project_file_basename=nil) if Dir.exists? file_or_directory raise 'You have to provide the basename of the project file !' if project_file_basename.nil? @started_from_directory = File. file_or_directory self.project_file_basename = project_file_basename else raise "Invalid project file '#{file_or_directory}' !" unless File.readable? file_or_directory normalized = File. file_or_directory @started_from_directory = File.dirname normalized self.project_file_basename = File.basename normalized end end |
Instance Attribute Details
#project_file_basename ⇒ Object
Returns the value of attribute project_file_basename.
6 7 8 |
# File 'lib/stacked_config/layers/project_layer.rb', line 6 def project_file_basename @project_file_basename end |
#started_from_directory ⇒ Object (readonly)
Returns the value of attribute started_from_directory.
6 7 8 |
# File 'lib/stacked_config/layers/project_layer.rb', line 6 def started_from_directory @started_from_directory end |
Instance Method Details
#file_name ⇒ Object
21 22 23 |
# File 'lib/stacked_config/layers/project_layer.rb', line 21 def file_name @file_name ||= find_root_file project_file_basename, started_from_directory end |
#project_root ⇒ Object
25 26 27 |
# File 'lib/stacked_config/layers/project_layer.rb', line 25 def project_root File.dirname file_name end |