scinote-web/app/models/settings.rb

24 lines
520 B
Ruby
Raw Normal View History

2019-05-09 23:10:02 +08:00
# frozen_string_literal: true
2017-06-23 21:19:08 +08:00
class Settings < ApplicationRecord
attr_accessor :merged_values
before_validation -> { self.values = merged_values || values }
def self.instance
first || new
end
def values
self.merged_values ||= super
self.class.instance_methods(false).grep(/^load_values_from_[A-Z0-9_]*/).each do |method|
self.merged_values = self.merged_values.merge(public_send(method))
end
merged_values
end
def load_values_from_env
raise NotImplementedError
end
end