You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
381 B
24 lines
381 B
class SystemData
|
|
attr_reader :id
|
|
|
|
def initialize(args = {})
|
|
@backend = args[:backend]
|
|
@id = args[:id]
|
|
end
|
|
|
|
def save
|
|
kind = self.class.to_s.to_sym
|
|
|
|
if @id
|
|
@backend.update(kind, to_h)
|
|
else
|
|
@backend.insert(kind, to_h)
|
|
end
|
|
end
|
|
|
|
def to_h
|
|
Hash[instance_variables.map do |var|
|
|
[var[1...var.size].to_sym, eval(var)] if var != '@backend'
|
|
end]
|
|
end
|
|
end
|