Skip to content

Instantly share code, notes, and snippets.

@pjdietz
Created August 4, 2013 19:56
Show Gist options
  • Save pjdietz/6151689 to your computer and use it in GitHub Desktop.
Save pjdietz/6151689 to your computer and use it in GitHub Desktop.
Class for making overridable settings in Sublime Text
class OverrideableSettings():
"""
Class for adding a layer of overrides on top of a Settings object
The class is read-only. If a dictionary-like _overrides member is present,
the get() method will look there first for a setting before reading from
the _settings member.
"""
def __init__(self, settings=None, overrides=None):
self._settings = settings
self._overrides = overrides
def set_settings(self, settings):
self._settings = settings
def set_overrides(self, overrides):
self._overrides = overrides
def get(self, setting, default=None):
if self._overrides and setting in self._overrides:
return self._overrides[setting]
elif self._settings:
return self._settings.get(setting, default)
else:
return default
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment