class RethinkORM::Lock::Reentrant

Defined in:

rethinkdb-orm/lock/reentrant.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}

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class RethinkORM::Lock

after_create after_create, after_destroy after_destroy, after_save after_save, after_update after_update, apply_defaults apply_defaults, assign_attributes(id : String | Nil | Missing = Missing, key : String | Missing = Missing, instance_token : String | Missing = Missing, expires_at : Time | Missing = Missing)
assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
assign_attributes
, assign_attributes_from_json(json) assign_attributes_from_json, assign_attributes_from_trusted_json(json) assign_attributes_from_trusted_json, assign_attributes_from_trusted_yaml(yaml) assign_attributes_from_trusted_yaml, assign_attributes_from_yaml(yaml) assign_attributes_from_yaml, attributes attributes, attributes_tuple attributes_tuple, before_create before_create, before_destroy before_destroy, before_save before_save, before_update before_update, changed? changed?, changed_attributes changed_attributes, changed_json(io : IO) : Nil
changed_json : String
changed_json
, changed_yaml(io : IO) : Nil
changed_yaml : String
changed_yaml
, clear_changes_information clear_changes_information, expire : Time::Span expire, expire=(expire : Time::Span) expire=, expires_at : Time expires_at, expires_at=(value : Time) expires_at=, expires_at_change expires_at_change, expires_at_changed? expires_at_changed?, expires_at_default : Time expires_at_default, expires_at_was : Time? expires_at_was, expires_at_will_change! expires_at_will_change!, id : String | Nil id, id=(value : String | Nil) id=, id_change id_change, id_changed? id_changed?, id_default : String | Nil id_default, id_was : String? id_was, id_will_change! id_will_change!, instance_token : String instance_token, instance_token=(value : String) instance_token=, instance_token_change instance_token_change, instance_token_changed? instance_token_changed?, instance_token_default : String instance_token_default, instance_token_was : String? instance_token_was, instance_token_will_change! instance_token_will_change!, key : String key, key=(value : String) key=, key_change key_change, key_changed? key_changed?, key_default : String key_default, key_was : String? key_was, key_will_change! key_will_change!, lock(expire : Time::Span = self.expire, timeout : Time::Span = self.timeout) lock, locked? : Bool locked?, persistent_attributes persistent_attributes, refresh(expire : Time::Span | Nil = nil) refresh, restore_attributes restore_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, synchronize(**options, &) synchronize, table_name table_name, timeout : Time::Span timeout, timeout=(timeout : Time::Span) timeout=, to_json(json : JSON::Builder) to_json, to_yaml(__temp_96 : YAML::Nodes::Builder) to_yaml, try_lock(expire : Time::Span = self.expire) try_lock, unlock unlock, validate_nilability validate_nilability

Constructor methods inherited from class RethinkORM::Lock

from_trusted_json(string_or_io : String | IO) : self from_trusted_json, from_trusted_yaml(string_or_io : String | IO) : self from_trusted_yaml, new(key : String, expire : Time::Span | Nil = nil, timeout : Time::Span | Nil = nil, instance_token : String = Lock.new_instance_token)
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
new(id : String | Nil | Nil = nil, key : String | Nil = nil, instance_token : String | Nil = nil, expires_at : Time | Nil = nil)
new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
new

Class methods inherited from class RethinkORM::Lock

attributes : Array(Symbol) attributes, expired expired, find(key) find, table_name table_name

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 : Array(Symbol) 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) #

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

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

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

Initialize RethinkORM::Lock::Reentrant from HTTP::Params.


Class Method Detail

def self.attributes : Array(Symbol) #

Returns all attribute keys.


def self.table_name #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


Instance Method Detail

def after_create #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def after_destroy #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def after_save #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def after_update #
Description copied from class RethinkORM::Lock

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(lock_count : Int32 | Missing = Missing, id : String | Nil | Missing = Missing, key : String | Missing = Missing, instance_token : String | Missing = Missing, expires_at : Time | 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_from_json(json) #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def assign_attributes_from_trusted_json(json) #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def assign_attributes_from_trusted_yaml(yaml) #
Description copied from class RethinkORM::Lock

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 attribute values


def attributes_tuple #

Returns a NamedTuple of all attribute values.


def before_create #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def before_destroy #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def before_save #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def before_update #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
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_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 expires_at : Time #

#expires_at getter


def expires_at=(value : Time) #

#expires_at setter


def expires_at_change #

Returns { expires_at_was, expires_at } if #expires_at has changed.


def expires_at_changed? #

Check if #expires_at is in the set of changed attributes.


def expires_at_was : Time? #

Returns the previous value of #expires_at.


def expires_at_will_change! #

Include #expires_at 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_change #

Returns { id_was, id } if #id has changed.


def id_changed? #

Check if #id is in the set of changed attributes.


def id_was : String? #

Returns the previous value of #id.


def id_will_change! #

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


def instance_token : String #

def instance_token=(value : String) #

def instance_token_change #

Returns { instance_token_was, instance_token } if #instance_token has changed.


def instance_token_changed? #

Check if #instance_token is in the set of changed attributes.


def instance_token_was : String? #

Returns the previous value of #instance_token.


def instance_token_will_change! #

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


def key : String #

#key getter


def key=(value : String) #

#key setter


def key_change #

Returns { key_was, key } if #key has changed.


def key_changed? #

Check if #key is in the set of changed attributes.


def key_was : String? #

Returns the previous value of #key.


def key_will_change! #

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


def lock_count : Int32 #

#lock_count getter


def lock_count=(value : Int32) #

Override the map json #lock_count setter


def lock_count_change #

Returns { lock_count_was, lock_count } if #lock_count has changed.


def lock_count_changed? #

Check if #lock_count is in the set of changed attributes.


def lock_count_default : Int32 #

#lock_count's default value


[View source]
def lock_count_was : Int32? #

Returns the previous value of #lock_count.


def lock_count_will_change! #

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


def persistent_attributes #

Returns a Hash of all attributes that can be persisted.


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


[View source]
def run_destroy_callbacks(&) #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def run_save_callbacks(&) #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def run_update_callbacks(&) #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


[View source]
def table_name #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def to_json(json : JSON::Builder) #
Description copied from class RethinkORM::Lock

DB locks for RethinkDB

TODO Conform to the NoBrainer locking interface.


def to_yaml(__temp_124 : YAML::Nodes::Builder) #
Description copied from class RethinkORM::Lock

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 #

Validate that all non-nillable fields have values.