class FlipTheSwitch::Generator::Settings
Public Instance Methods
generate()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 7 def generate create_settings_bundle_if_not_exists read_settings delete_existing_settings_if_exist write_settings end
Private Instance Methods
create_settings_bundle_if_not_exists()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 16 def create_settings_bundle_if_not_exists unless Dir.exists?(settings_bundle) Dir.mkdir(settings_bundle) end end
current_plist()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 103 def current_plist @current_plist ||= if File.exists?(root_plist) ::Plist::parse_xml(root_plist) else {} end end
delete_existing_settings_if_exist()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 26 def delete_existing_settings_if_exist delete_root_plist_if_exists delete_features_plist_if_exists end
delete_features_plist_if_exists()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 40 def delete_features_plist_if_exists delete_file(features_plist) end
delete_file(file)
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 52 def delete_file(file) File.delete(file) if File.exists?(file) end
delete_root_plist_if_exists()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 36 def delete_root_plist_if_exists delete_file(root_plist) end
existing_root_preferences()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 66 def existing_root_preferences current_plist['PreferenceSpecifiers'] || [] end
feature_properties()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 84 def feature_properties {'PreferenceSpecifiers' => feature_toggles} end
feature_root_preferences()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 70 def feature_root_preferences [ { 'Title' => 'Features', 'Type' => 'PSGroupSpecifier' }, { 'File' => 'Features', 'Title' => 'Features', 'Type' => 'PSChildPaneSpecifier' } ] end
feature_title(feature)
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 99 def feature_title(feature) feature.name.gsub('_', ' ').capitalize end
feature_toggles()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 88 def feature_toggles features.map { |feature| { 'Type' => 'PSToggleSwitchSpecifier', 'Title' => feature_title(feature), 'Key' => "FTS_FEATURE_#{feature.name}", 'DefaultValue' => feature.enabled } } end
features_plist()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 115 def features_plist File.join(settings_bundle, 'Features.plist') end
read_settings()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 22 def read_settings current_plist end
root()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 56 def root current_plist.merge('PreferenceSpecifiers' => root_preferences) end
root_plist()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 111 def root_plist File.join(settings_bundle, 'Root.plist') end
root_preferences()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 60 def root_preferences existing_root_preferences.delete_if { |root_preference| root_preference['Title'] == 'Features' } + feature_root_preferences end
settings_bundle()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 119 def settings_bundle File.join(output, 'Settings.bundle') end
write_features_plist()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 48 def write_features_plist ::Plist::Emit.save_plist(feature_properties, features_plist) end
write_root_plist()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 44 def write_root_plist ::Plist::Emit.save_plist(root, root_plist) end
write_settings()
click to toggle source
# File lib/flip_the_switch/generator/settings.rb, line 31 def write_settings write_root_plist write_features_plist end