class PlaceOS::Model::Repository

Overview

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.

Included Modules

Defined in:

placeos-models/repository.cr

Constant Summary

CALLBACKS = {before_save: [:"encrypt!"] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end, :set_id] of Nil, after_create: [] of Nil, before_update: [do self.updated_at = Time.utc end] of Nil, after_update: [] of Nil, before_destroy: [:destroy_drivers] of Nil, after_destroy: [] of Nil}

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.

Log = ::Log.for(self)

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class PlaceOS::Model::ModelBase

after_create after_create, after_destroy after_destroy, after_save after_save, after_update after_update, apply_defaults apply_defaults, assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
assign_attributes(model : PlaceOS::Model::ModelBase)
assign_attributes
assign_attributes
, attributes attributes, attributes_tuple attributes_tuple, before_create before_create, before_destroy before_destroy, before_save before_save, before_update before_update, invoke_props invoke_props, persistent_attributes persistent_attributes, run_create_callbacks(&) run_create_callbacks, run_destroy_callbacks(&) run_destroy_callbacks, run_save_callbacks(&) run_save_callbacks, run_update_callbacks(&) run_update_callbacks

Constructor methods inherited from class PlaceOS::Model::ModelBase

new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
new(pull : JSON::PullParser)
new(rs : DB::ResultSet)
new

Class methods inherited from class PlaceOS::Model::ModelBase

attributes : Array(Symbol) attributes, auto_generate_id : Bool auto_generate_id, from_rs(rs : DB::ResultSet) from_rs, primary_key : Symbol primary_key

Instance methods inherited from module PlaceOS::Model::Associations

format_list_for_postgres(list : Enumerable(String)) : String format_list_for_postgres, reset_associations reset_associations

Class methods inherited from module PlaceOS::Model::Associations

format_list_for_postgres(list : Enumerable(String)) : String format_list_for_postgres

Macros inherited from module PlaceOS::Model::Associations

belongs_to(parent_class, dependent = :none, association_name = nil, foreign_key = nil, presence = false, pk_type = nil, serialize = true) belongs_to, has_many(child_class, collection_name = nil, dependent = :none, foreign_key = nil, serialize = false) has_many, has_one(child_class, dependent = :none, association_name = nil, presence = false) has_one

Constructor Detail

def self.from_json(string_or_io : String | IO, trusted : Bool = false) : self #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.from_json(string_or_io : String | IO, root : String, trusted : Bool = false) : self #

Deserializes the given JSON in string_or_io into an instance of self, assuming the JSON consists of an JSON object with key root, and whose value is the value to deserialize. Will not deserialise from fields with mass_assign: false

class User < ActiveModel::Model
  attribute name : String
  attribute google_id : UUID, mass_assign: false
end

User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">

def self.from_trusted_json(string_or_io : String | IO, root : String) : self #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.from_trusted_json(string_or_io : String | IO) : self #

Serialize from a trusted JSON source


def self.from_trusted_yaml(string_or_io : String | IO) : self #

Serialize from a trusted YAML source


def self.from_yaml(string_or_io : String | IO, trusted : Bool = false) : self #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.new(pull : JSON::PullParser) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.new(rs : DB::ResultSet) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.new(created_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, description : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, folder_name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, uri : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, commit_hash : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, branch : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, deployed_commit_hash : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, release : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, username : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, password : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, repo_type : PlaceOS::Model::Repository::Type | ActiveModel::Model::None = ::ActiveModel::Model::None.new, has_runtime_error : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, error_message : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.new(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Initialize PlaceOS::Model::Repository from HTTP::Params.


Class Method Detail

def self.attributes : Array(Symbol) #

Returns all attribute keys.


def self.auto_generate_id : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.changes(id : PrimaryKeyType = nil) : ChangeFeed #

Changefeed at row (if #id passed) or whole table level. Returns a ChangeFeed instance which can be used to invoke async callbacks via on or use blocking Iterator via each method.


def self.elastic #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.from_rs(__temp_622 : DB::ResultSet) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.on_error(err : Exception | IO::Error) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.primary_key : Symbol #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def self.table_name #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


Instance Method Detail

def after_create #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def after_destroy #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def after_initialize(trusted : Bool) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def after_save #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def after_update #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def apply_defaults #

Generate code to apply default values


def assign_attributes(created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing, name : String | Missing = Missing, description : String | Missing = Missing, folder_name : String | Missing = Missing, uri : String | Missing = Missing, commit_hash : String | Missing = Missing, branch : String | Missing = Missing, deployed_commit_hash : String | Nil | Missing = Missing, release : Bool | Missing = Missing, username : String | Nil | Missing = Missing, password : String | Nil | Missing = Missing, repo_type : PlaceOS::Model::Repository::Type | Missing = Missing, has_runtime_error : Bool | Missing = Missing, error_message : String | Nil | Missing = Missing, id : String | Nil | Missing = Missing) #

Assign to multiple attributes.


def assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Assign to mulitple attributes via HTTP::Params.


def assign_attributes(model : PlaceOS::Model::Repository) #

Assign to multiple attributes from a model object


def assign_attributes_from_json(json, root : String) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def assign_attributes_from_json(json) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def assign_attributes_from_trusted_json(json, root : String) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def assign_attributes_from_trusted_json(json) #

Assign each field from JSON if field exists in JSON and has changed in model


def assign_attributes_from_trusted_yaml(yaml) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def assign_attributes_from_yaml(yaml) #

Uses the YAML parser as JSON is valid YAML


def attributes #

Returns a Hash of all attribute values


def attributes_tuple #

Returns a NamedTuple of all attribute values.


def before_create #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def before_destroy #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def before_save #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def before_update #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def branch : String #

#branch getter


def branch=(value : String) #

#branch setter


def branch? : String | Nil #

def branch_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def branch_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def branch_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def branch_default : String #

#branch's default value


def branch_present? : Bool #

def branch_was : String | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def branch_will_change! : Nil #

Include #branch in the set of changed attributes, whether it has changed or not.


def changed? #

Check if any attributes have changed.


def changed_attributes #

Returns a Hash with all changed attributes.


def changed_json(io : IO) : Nil #

Serialize the set of changed attributes to JSON.


def changed_json : String #

Serialize the set of changed attributes to JSON.


def changed_persist_attributes #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def changed_yaml(io : IO) : Nil #

Serialize the set of changed attributes to YAML.


def changed_yaml : String #

Serialize the set of changed attributes to YAML.


def clear_changes_information #

Reset changes for all attributes.


def commit_hash : String #

#commit_hash getter


def commit_hash=(value : String) #

#commit_hash setter


def commit_hash? : String | Nil #

def commit_hash_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def commit_hash_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def commit_hash_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def commit_hash_default : String #

#commit_hash's default value


def commit_hash_present? : Bool #

def commit_hash_was : String | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def commit_hash_will_change! : Nil #

Include #commit_hash in the set of changed attributes, whether it has changed or not.


def created_at : Time #

#created_at getter


def created_at=(value : Time) #

Setters #created_at setter


def created_at? : Time | Nil #

def created_at_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def created_at_change : Tuple(Time | Nil, Time | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def created_at_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def created_at_default : Time #

#created_at's default value


def created_at_present? : Bool #

def created_at_was : Time | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def created_at_will_change! : Nil #

Include #created_at in the set of changed attributes, whether it has changed or not.


def decrypt_password #

:decrypt the :password attribute, using PlaceOS::Encryption


def deployed_commit_hash : String | Nil #

def deployed_commit_hash=(value : String | Nil) #

def deployed_commit_hash_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def deployed_commit_hash_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def deployed_commit_hash_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def deployed_commit_hash_default : String | Nil #

#deployed_commit_hash's default value


def deployed_commit_hash_present? : Bool #

def deployed_commit_hash_was : String | Nil | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def deployed_commit_hash_will_change! : Nil #

Include #deployed_commit_hash in the set of changed attributes, whether it has changed or not.


def description : String #

#description getter


def description=(value : String) #

#description setter


def description? : String | Nil #

def description_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def description_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def description_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def description_default : String #

#description's default value


def description_present? : Bool #

def description_was : String | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def description_will_change! : Nil #

Include #description in the set of changed attributes, whether it has changed or not.


def destroy_drivers #

def drivers #

def encrypt! #

Encrypt sensitive fields


def encrypt_password #

:encrypt the :password attribute, using PlaceOS::Encryption


def error_message : String | Nil #

def error_message=(value : String | Nil) #

def error_message_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def error_message_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def error_message_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def error_message_default : String | Nil #

#error_message's default value


def error_message_present? : Bool #

def error_message_was : String | Nil | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def error_message_will_change! : Nil #

Include #error_message in the set of changed attributes, whether it has changed or not.


def folder_name : String #

#folder_name getter


def folder_name=(value : String) #

#folder_name setter


def folder_name? : String | Nil #

#folder_name may only contain valid path characters


def folder_name_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def folder_name_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def folder_name_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def folder_name_default : String #

#folder_name's default value


def folder_name_present? : Bool #

#folder_name may only contain valid path characters


def folder_name_was : String | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def folder_name_will_change! : Nil #

Include #folder_name in the set of changed attributes, whether it has changed or not.


def has_runtime_error : Bool #

def has_runtime_error=(value : Bool) #

def has_runtime_error? : Bool | Nil #

Error Indicators


def has_runtime_error_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def has_runtime_error_change : Tuple(Bool | Nil, Bool | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def has_runtime_error_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def has_runtime_error_default : Bool #

#has_runtime_error's default value


def has_runtime_error_present? : Bool #

Error Indicators


def has_runtime_error_was : Bool | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def has_runtime_error_will_change! : Nil #

Include #has_runtime_error in the set of changed attributes, whether it has changed or not.


def id : String | Nil #

#id getter


def id=(value : String | Nil) #

#id setter


def id? : String | Nil | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def id_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def id_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def id_default : String | Nil #

#id's default value


def id_present? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def id_was : String | Nil | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def id_will_change! : Nil #

Include #id in the set of changed attributes, whether it has changed or not.


def invoke_props #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def name : String #

#name getter


def name=(value : String) #

#name setter


def name? : String | Nil #

def name_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def name_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def name_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def name_default : String #

#name's default value


def name_present? : Bool #

def name_was : String | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def name_will_change! : Nil #

Include #name in the set of changed attributes, whether it has changed or not.


def password : String | Nil #

#password getter


def password=(value : String | Nil) #

#password setter


def password_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def password_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def password_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def password_default : String | Nil #

#password's default value


def password_present? : Bool #

def password_was : String | Nil | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def password_will_change! : Nil #

Include #password in the set of changed attributes, whether it has changed or not.


def persistent_attributes #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def pull! #

def release : Bool #

#release getter


def release=(value : Bool) #

#release setter


def release? : Bool | Nil #

Whether the repository is pinned to a release asset


def release_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def release_change : Tuple(Bool | Nil, Bool | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def release_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def release_default : Bool #

#release's default value


def release_present? : Bool #

Whether the repository is pinned to a release asset


def release_was : Bool | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def release_will_change! : Nil #

Include #release in the set of changed attributes, whether it has changed or not.


#repo_type getter


def repo_type=(value : PlaceOS::Model::Repository::Type) #

#repo_type setter


def repo_type? : PlaceOS::Model::Repository::Type | Nil #

def repo_type_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def repo_type_change : Tuple(PlaceOS::Model::Repository::Type | Nil, PlaceOS::Model::Repository::Type | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def repo_type_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def repo_type_default : Type #

#repo_type's default value


def repo_type_present? : Bool #

def repo_type_was : PlaceOS::Model::Repository::Type | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def repo_type_will_change! : Nil #

Include #repo_type in the set of changed attributes, whether it has changed or not.


def restore_attributes #

Reset each attribute to their previous values and clears all changes.


def run_create_callbacks(&) #

Wrap a block with callbacks for the appropriate crud operation


def run_destroy_callbacks(&) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def run_save_callbacks(&) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def run_update_callbacks(&) #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def table_name #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def updated_at : Time #

#updated_at getter


def updated_at=(value : Time) #

#updated_at setter


def updated_at? : Time | Nil #

def updated_at_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def updated_at_change : Tuple(Time | Nil, Time | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def updated_at_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def updated_at_default : Time #

#updated_at's default value


def updated_at_present? : Bool #

def updated_at_was : Time | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def updated_at_will_change! : Nil #

Include #updated_at in the set of changed attributes, whether it has changed or not.


def uri : String #

#uri getter


def uri=(value : String) #

#uri setter


def uri? : String | Nil #

def uri_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def uri_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def uri_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def uri_default : String #

#uri's default value


def uri_present? : Bool #

def uri_was : String | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def uri_will_change! : Nil #

Include #uri in the set of changed attributes, whether it has changed or not.


def username : String | Nil #

#username getter


def username=(value : String | Nil) #

#username setter


def username_assigned? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def username_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def username_changed? : Bool #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def username_default : String | Nil #

#username's default value


def username_present? : Bool #

def username_was : String | Nil | Nil #

Pins engine's driver sources to a specific repository state. Enables external driver management from a VCS.


def username_will_change! : Nil #

Include #username in the set of changed attributes, whether it has changed or not.


def validate_nilability #

Validate that all non-nillable fields have values.