class RethinkORM::Lock

Overview

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.

Extended Modules

Direct Known Subclasses

Defined in:

rethinkdb-orm/lock.cr

Constant Summary

CALLBACKS = {before_save: [] of Nil, after_save: [] of Nil, before_create: [] of Nil, after_create: [] of Nil, before_update: [] of Nil, after_update: [] of Nil, before_destroy: [] of Nil, after_destroy: [] of Nil}

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class RethinkORM::Base

==(other : self) ==, apply_defaults apply_defaults, assign_attributes(id : String | Nil | Missing = Missing)
assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
assign_attributes
, attributes attributes, attributes_tuple attributes_tuple, id_default : String | Nil id_default, persistent_attributes persistent_attributes, uuid_generator=(generator : Class) uuid_generator=

Class methods inherited from class RethinkORM::Base

all(**options) all, attributes attributes, changes(id : String | Nil = nil, **options)
changes(**options, & : RethinkDB::Table -> HasChanges)
changes
, clear clear, collection_query(**options, &) collection_query, count
count(**attrs)
count(**attrs, &predicate : RethinkDB::DatumTerm -> RethinkDB::DatumTerm)
count
, create(**attributes) create, create!(**attributes) create!, exists?(id : String, **options) exists?, find(id : String, **options) find, find!(id : String, **options) find!, find_all(ids : Array | Tuple, **options) find_all, find_by(**attribute)
find_by(**attribute, &predicate : RethinkDB::DatumTerm -> RethinkDB::DatumTerm)
find_by
, get_all(values : Array | Tuple, **options) get_all, has_index?(field) has_index?, raw_changes(id : String | Nil = nil, **options)
raw_changes(**options, & : RethinkDB::Table -> HasChanges)
raw_changes
, raw_query(**options, &) raw_query, table_query(**options, &) table_query, where(&predicate : RethinkDB::DatumTerm -> RethinkDB::DatumTerm)
where(**attrs, &predicate : RethinkDB::DatumTerm -> RethinkDB::DatumTerm)
where(attrs : Hash, **options)
where(**attrs)
where

Instance methods inherited from module RethinkORM::Persistence

delete delete, destroy destroy, destroyed destroyed, destroyed=(destroyed) destroyed=, destroyed? destroyed?, new_record? new_record?, persisted? persisted?, reload! reload!, save(**options) save, save!(**options) save!, update(**attributes) update, update!(**attributes) update!, update_fields(**attributes) update_fields

Instance methods inherited from module RethinkORM::Associations

reset_associations reset_associations

Constructor Detail

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.new(key : String, expire : Time::Span | Nil = nil, timeout : Time::Span | Nil = nil, instance_token : String = Lock.new_instance_token) #

Reset instance token if it's loaded and expired?


[View source]
def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def self.new(id : String | Nil | Nil = nil, key : String | Nil = nil, instance_token : String | Nil = nil, expires_at : Time | Nil = nil) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


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

Accept HTTP params


Class Method Detail

def self.attributes #

You may want a list of available attributes


def self.expired #

Returns all expired locks


[View source]
def self.find(key) #

Hash a key


[View source]
def self.table_name #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


Instance Method Detail

def after_create #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def after_destroy #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def after_save #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def after_update #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def apply_defaults #

Generate code to apply default values


def assign_attributes(id : String | Nil | Missing = Missing, key : String | Missing = Missing, instance_token : String | Missing = Missing, expires_at : Time | Missing = Missing) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


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

Accept HTTP params


def assign_attributes_from_json(json) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def assign_attributes_from_trusted_json(json) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def assign_attributes_from_trusted_yaml(yaml) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def assign_attributes_from_yaml(yaml) #

Uses the YAML parser as JSON is valid YAML


def attributes #

Returns a Hash of all the attribute values


def attributes_tuple #

Returns a NamedTuple of all attribute values


def before_create #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def before_destroy #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def before_save #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def before_update #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def changed? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def changed_attributes #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def changed_json #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def changed_yaml #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def clear_changes_information #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def expire : Time::Span #

Seconds before the lock expires


[View source]
def expire=(expire : Time::Span) #

Seconds before the lock expires


[View source]
def expires_at #

expires_at getter


def expires_at=(value : Time) #

expires_at setter


def expires_at_change #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def expires_at_changed? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def expires_at_default : Time #

Attribute default value


[View source]
def expires_at_was : Time? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def expires_at_will_change! #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def id : String? #

id getter


def id=(value : String | Nil) #

Override the map json id setter


def id_change #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def id_changed? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def id_default : String | Nil #

Attribute default value


[View source]
def id_was : String? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def id_will_change! #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def instance_token #

instance_token getter


def instance_token=(value : String) #

instance_token setter


def instance_token_change #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def instance_token_changed? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def instance_token_default : String #

Attribute default value


[View source]
def instance_token_was : String? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def instance_token_will_change! #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def key #

key getter


def key=(value : String) #

key setter


def key_change #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def key_changed? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def key_default : String #

Attribute default value


[View source]
def key_was : String? #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def key_will_change! #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def lock(expire : Time::Span = self.expire, timeout : Time::Span = self.timeout) #

[View source]
def locked? : Bool #

[View source]
def persistent_attributes #

Returns a hash of all attributes that may be persisted


def refresh(expire : Time::Span | Nil = nil) #

[View source]
def restore_attributes #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def run_create_callbacks(&) #

Wrap a block with callbacks for the appropriate crud operation


[View source]
def run_destroy_callbacks(&) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def run_save_callbacks(&) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def run_update_callbacks(&) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def synchronize(**options, &) #

[View source]
def table_name #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def timeout : Time::Span #

Lock acquisition timeout


[View source]
def timeout=(timeout : Time::Span) #

Lock acquisition timeout


[View source]
def to_json(json : JSON::Builder) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def to_yaml(__temp_96 : YAML::Nodes::Builder) #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def try_lock(expire : Time::Span = self.expire) #

[View source]
def unlock #

[View source]
def validate_nilability #

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.