ClonifySettings.fromYaml constructor
ClonifySettings.fromYaml(
- YamlMap yaml
Creates a ClonifySettings instance from a YAML map.
Parses the YAML configuration file and creates a settings object. Provides default values for missing optional fields.
Example:
final yaml = loadYaml('''
firebase:
enabled: true
settings_file: firebase_settings.yaml
company_name: My Company
default_color: '#FF5733'
''');
final settings = ClonifySettings.fromYaml(yaml);
Implementation
factory ClonifySettings.fromYaml(YamlMap yaml) {
// Parse custom fields if they exist
List<CustomField> customFields = [];
if (yaml[ClonifySettingsKeys.customFields] != null) {
final fields = yaml[ClonifySettingsKeys.customFields] as YamlList;
customFields = fields
.map((field) => CustomField.fromYaml(field as Map<dynamic, dynamic>))
.toList();
}
return ClonifySettings(
firebaseEnabled:
yaml[ClonifySettingsKeys.firebase][ClonifySettingsKeys.enabled] ??
false,
firebaseSettingsFilePath:
yaml[ClonifySettingsKeys.firebase][ClonifySettingsKeys
.settingsFile] ??
'',
fastlaneEnabled:
yaml[ClonifySettingsKeys.fastlane][ClonifySettingsKeys.enabled] ??
false,
fastlaneSettingsFilePath:
yaml[ClonifySettingsKeys.fastlane][ClonifySettingsKeys
.settingsFile] ??
'',
companyName: yaml[ClonifySettingsKeys.companyName] ?? '',
defaultColor: yaml[ClonifySettingsKeys.defaultColor] ?? '#FFFFFF',
needsLauncherIcon: yaml[ClonifySettingsKeys.needsLauncherIcon] ?? false,
needsSplashScreen: yaml[ClonifySettingsKeys.needsSplashScreen] ?? false,
needsLogo: yaml[ClonifySettingsKeys.needsLogo] ?? false,
updateAndroidInfo: yaml[ClonifySettingsKeys.updateAndroidInfo] ?? true,
updateIOSInfo: yaml[ClonifySettingsKeys.updateIOSInfo] ?? true,
customFields: customFields,
);
}