Class: FastlaneCore::ConfigurationFile
- Inherits:
-
Object
- Object
- FastlaneCore::ConfigurationFile
- Defined in:
- lib/fastlane_core/configuration/configuration_file.rb
Overview
Responsible for loading configuration files
Instance Attribute Summary collapse
-
#config ⇒ Object
A reference to the actual configuration.
Instance Method Summary collapse
-
#initialize(config, path, block_for_missing) ⇒ ConfigurationFile
constructor
A new instance of ConfigurationFile.
- #method_missing(method_sym, *arguments, &block) ⇒ Object
Constructor Details
#initialize(config, path, block_for_missing) ⇒ ConfigurationFile
Returns a new instance of ConfigurationFile.
9 10 11 12 13 14 |
# File 'lib/fastlane_core/configuration/configuration_file.rb', line 9 def initialize(config, path, block_for_missing) self.config = config @block_for_missing = block_for_missing eval(File.read(path)) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_sym, *arguments, &block) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fastlane_core/configuration/configuration_file.rb', line 16 def method_missing(method_sym, *arguments, &block) # First, check if the key is actually available if self.config.all_keys.include?method_sym value = arguments.first || (block.call if block_given?) # this is either a block or a value if value self.config[method_sym] = value end else # We can't set this value, maybe the tool using this configuration system has its own # way of handling this block, as this might be a special block (e.g. ipa block) that's only # executed on demand if @block_for_missing @block_for_missing.call(method_sym, arguments, block) else self.config[method_sym] = '' # important, since this will raise a good exception for free end end end |
Instance Attribute Details
#config ⇒ Object
A reference to the actual configuration
5 6 7 |
# File 'lib/fastlane_core/configuration/configuration_file.rb', line 5 def config @config end |