Module: Zermelo

Defined in:
lib/zermelo/filters/redis.rb,
lib/zermelo.rb,
lib/zermelo/filter.rb,
lib/zermelo/record.rb,
lib/zermelo/backend.rb,
lib/zermelo/version.rb,
lib/zermelo/ordered_set.rb,
lib/zermelo/records/key.rb,
lib/zermelo/records/stub.rb,
lib/zermelo/backends/stub.rb,
lib/zermelo/locks/no_lock.rb,
lib/zermelo/records/redis.rb,
lib/zermelo/backends/redis.rb,
lib/zermelo/records/errors.rb,
lib/zermelo/filters/influxdb.rb,
lib/zermelo/locks/redis_lock.rb,
lib/zermelo/records/influxdb.rb,
lib/zermelo/backends/influxdb.rb,
lib/zermelo/associations/index.rb,
lib/zermelo/records/attributes.rb,
lib/zermelo/filters/index_range.rb,
lib/zermelo/associations/multiple.rb,
lib/zermelo/associations/singular.rb,
lib/zermelo/records/class_methods.rb,
lib/zermelo/filters/steps/set_step.rb,
lib/zermelo/records/type_validator.rb,
lib/zermelo/associations/index_data.rb,
lib/zermelo/filters/steps/base_step.rb,
lib/zermelo/filters/steps/list_step.rb,
lib/zermelo/filters/steps/sort_step.rb,
lib/zermelo/associations/range_index.rb,
lib/zermelo/filters/steps/empty_step.rb,
lib/zermelo/records/instance_methods.rb,
lib/zermelo/associations/unique_index.rb,
lib/zermelo/associations/class_methods.rb,
lib/zermelo/associations/association_data.rb

Overview

TODO update other side of associations without having to load the record (?) TODO callbacks on before/after add/delete on association?

Defined Under Namespace

Modules: Associations, Backend, Backends, Filter, Filters, Locks, Record, Records Classes: ConnectionProxy, LockNotAcquired, OrderedSet, ZermeloError

Constant Summary collapse

ATTRIBUTE_TYPES =

acceptable class types, which will be normalized on a per-backend basis

{:string     => [String],
 :integer    => [Integer],
 :float      => [Float],
 :id         => [String],
 :timestamp  => [Integer, Time, DateTime],
 :boolean    => [TrueClass, FalseClass],
}
COLLECTION_TYPES =
{:list       => [Enumerable],
 :set        => [Set],
 :hash       => [Hash],
 :sorted_set => [Enumerable]
}
ALL_TYPES =
ATTRIBUTE_TYPES.merge(COLLECTION_TYPES)
VERSION =
'1.4.3'

Class Method Summary collapse

Class Method Details

.influxdb=(connection) ⇒ Object



58
59
60
# File 'lib/zermelo.rb', line 58

def influxdb=(connection)
  Thread.current[:zermelo_influxdb] = Zermelo::ConnectionProxy.new(connection)
end

.loggerObject



73
74
75
# File 'lib/zermelo.rb', line 73

def logger
  Thread.current[:zermelo_logger]
end

.logger=(l) ⇒ Object



69
70
71
# File 'lib/zermelo.rb', line 69

def logger=(l)
  Thread.current[:zermelo_logger] = l
end

.redis=(connection) ⇒ Object



52
53
54
55
56
# File 'lib/zermelo.rb', line 52

def redis=(connection)
  Thread.current[:zermelo_redis] = connection.nil? ? nil :
    Zermelo::ConnectionProxy.new(connection)
  Thread.current[:zermelo_redis_version] = nil
end

.redis_versionObject



62
63
64
65
66
67
# File 'lib/zermelo.rb', line 62

def redis_version
  return nil if Zermelo.redis.nil?
  rv = Thread.current[:zermelo_redis_version]
  return rv unless rv.nil?
  Thread.current[:zermelo_redis_version] = Zermelo.redis.info['redis_version']
end

.valid_type?(type) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/zermelo.rb', line 41

def valid_type?(type)
  ALL_TYPES.keys.include?(type)
end