Module: Snowflaked
- Defined in:
- lib/snowflaked.rb,
lib/snowflaked/railtie.rb,
lib/snowflaked/version.rb,
lib/snowflaked/type/snowflake.rb,
lib/snowflaked/model_extensions.rb,
lib/snowflaked/adapter_extension.rb,
lib/snowflaked/schema_definitions.rb
Defined Under Namespace
Modules: AdapterExtension, ModelExtensions, SchemaDefinitions, Type
Classes: Configuration, ConfigurationError, Error, Railtie
Constant Summary
collapse
- MAX_MACHINE_ID =
1023
- DEFAULT_EPOCH =
Time.utc(2024, 1, 1).freeze
- VERSION =
"0.3.0"
Class Method Summary
collapse
Class Method Details
.configuration ⇒ Object
98
99
100
|
# File 'lib/snowflaked.rb', line 98
def configuration
@configuration ||= Configuration.new
end
|
102
103
104
105
106
107
|
# File 'lib/snowflaked.rb', line 102
def configure
yield(configuration) if block_given?
ensure_initialized!
configuration
end
|
.id ⇒ Object
109
110
111
112
|
# File 'lib/snowflaked.rb', line 109
def id
ensure_initialized!
Native.generate
end
|
.machine_id(id) ⇒ Object
rubocop:disable Rails/Delegate
130
131
132
|
# File 'lib/snowflaked.rb', line 130
def machine_id(id) Native.machine_id(id)
end
|
.parse(id) ⇒ Object
114
115
116
117
|
# File 'lib/snowflaked.rb', line 114
def parse(id)
ensure_initialized!
Native.parse(id)
end
|
.sequence(id) ⇒ Object
rubocop:disable Rails/Delegate
139
140
141
|
# File 'lib/snowflaked.rb', line 139
def sequence(id) Native.sequence(id)
end
|
.timestamp(id) ⇒ Object
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/snowflaked.rb', line 119
def timestamp(id)
ensure_initialized!
seconds, milliseconds = Native.timestamp_ms(id).divmod(1000)
if defined?(Time.zone) && Time.zone
Time.zone.at(seconds, milliseconds * 1000, :usec)
else
Time.at(seconds, milliseconds * 1000, :usec).utc
end
end
|
.timestamp_ms(id) ⇒ Object
134
135
136
137
|
# File 'lib/snowflaked.rb', line 134
def timestamp_ms(id)
ensure_initialized!
Native.timestamp_ms(id)
end
|