module LessStruct::Util::Key

Public Class Methods

included(klass) click to toggle source
# File lib/less_struct/util/key.rb, line 8
def self.included(klass)
  klass.extend(ClassMethods)
end

Public Instance Methods

auto_id() click to toggle source
# File lib/less_struct/util/key.rb, line 38
def auto_id
  rand_sep = "_"
  "#{(now.to_f*1000).to_i}#{rand_sep}#{SecureRandom.hex(4)}"
end
id() click to toggle source
# File lib/less_struct/util/key.rb, line 30
def id
  if klass.config_entity_id_auto_y
    self[:id] ||= auto_id
  else
    raise "set 'id' before save" unless self[:id]
  end
end
key() click to toggle source
# File lib/less_struct/util/key.rb, line 43
def key
  klass.key(kind, id)
end
kind() click to toggle source
# File lib/less_struct/util/key.rb, line 22
def kind
  self[:kind] = klass.kind
end
kind=(kind) click to toggle source
# File lib/less_struct/util/key.rb, line 26
def kind=(kind)
  raise "use class method for custom kind name"
end
now() click to toggle source
# File lib/less_struct/util/key.rb, line 47
def now
  @now ||= ::Time.now.utc
end