# encoding: ascii-8bit # Copyright 2022 OpenC3, Inc. # All Rights Reserved. # # This program is free software; you can modify and/or redistribute it # under the terms of the GNU Affero General Public License # as published by the Free Software Foundation; version 3 with # attribution addendums as found in the LICENSE.txt # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # This file may also be used under the terms of a commercial license # if purchased from OpenC3, Inc. require 'openc3/models/model' module OpenC3 class StashModel < Model PRIMARY_KEY = 'openc3__stash' # NOTE: The following three class methods are used by the ModelController # and are reimplemented to enable various Model class methods to work def self.get(name:, scope:) super("#{scope}__#{PRIMARY_KEY}", name: name) end def self.names(scope:) super("#{scope}__#{PRIMARY_KEY}") end def self.all(scope:) super("#{scope}__#{PRIMARY_KEY}") end # END NOTE def initialize(name:, value:, scope:) super("#{scope}__#{PRIMARY_KEY}", name: name, scope: scope) @value = value end # @return [Hash] JSON encoding of this model def as_json(*a) { 'name' => @name, 'value' => @value.as_json(*a), } end end end