class Envirobly::Default
def self.key = "url"
def self.key = "url"
def cast_id(value)
def cast_id(value) value.to_i end
def id
def id if File.exist?(@path) content = YAML.safe_load_file(@path) if content[self.class.key] =~ self.class.regexp return cast_id($1) end end nil end
def initialize(shell: nil)
def initialize(shell: nil) @path = File.join Envirobly::Config::DIR, "defaults", self.class.file @shell = shell end
def require_if_none
def require_if_none id || require_id end
def save(url)
def save(url) unless url =~ self.class.regexp raise ArgumentError, "'#{url}' must match #{self.class.regexp}" end FileUtils.mkdir_p(File.dirname(@path)) content = YAML.dump({ self.class.key => url }) File.write(@path, content) end
def save_if_none(url)
def save_if_none(url) return if id.present? save(url) end