Module: Jafry::Identificator
- Extended by:
- Accessor
- Defined in:
- lib/jafry/identificator.rb
Overview
Module for automaticaly creatings schemes ids
Defined Under Namespace
Constant Summary collapse
- @@schemes =
[]
Class Method Summary collapse
-
.build_type(type) ⇒ Type
Creates new scheme id type.
-
.find_or_register(scheme_name) ⇒ Hash
Finds registered scheme and if there is no one, creates new.
-
.find_scheme(scheme_name) ⇒ Hash
Finds registered scheme.
-
.generate_hash ⇒ String
Helper method for generate unique hash.
-
.generate_id(scheme) ⇒ Object
Generates id.
-
.hash_counter(scheme) ⇒ Object
Creates hash id.
-
.inc_scheme_counter(scheme) ⇒ Object
Increment id counter by 1.
-
.register_scheme(scheme_name) ⇒ Hash
Creates identification record about scheme.
-
.set_id_for_scheme(scheme) ⇒ Scheme
Modifies scheme with current id.
Methods included from Accessor
Class Method Details
.build_type(type) ⇒ Type
Creates new scheme id type
62 63 64 |
# File 'lib/jafry/identificator.rb', line 62 def build_type(type) const_get("Jafry::Identificator::#{type.capitalize}").new end |
.find_or_register(scheme_name) ⇒ Hash
Finds registered scheme and if there is no one, creates new
43 44 45 46 |
# File 'lib/jafry/identificator.rb', line 43 def find_or_register(scheme_name) return find_scheme(scheme_name) if find_scheme(scheme_name) register_scheme(scheme_name) end |
.find_scheme(scheme_name) ⇒ Hash
Finds registered scheme
34 35 36 |
# File 'lib/jafry/identificator.rb', line 34 def find_scheme(scheme_name) self.schemes.select {|item| item[:scheme] == scheme_name}.last end |
.generate_hash ⇒ String
Helper method for generate unique hash
95 96 97 |
# File 'lib/jafry/identificator.rb', line 95 def generate_hash Digest::MD5.hexdigest([Time.now, rand].join) end |
.generate_id(scheme) ⇒ Object
Generates id
70 71 72 73 |
# File 'lib/jafry/identificator.rb', line 70 def generate_id(scheme) config = Jafry::Configurator.get_config(scheme.self_name) build_type(config[:id_type]).id_scaffold(config[:id_wrapper], scheme) end |
.hash_counter(scheme) ⇒ Object
Creates hash id
87 88 89 |
# File 'lib/jafry/identificator.rb', line 87 def hash_counter(scheme) find_or_register(scheme.self_name)[:counter] = generate_hash end |
.inc_scheme_counter(scheme) ⇒ Object
Increment id counter by 1
79 80 81 |
# File 'lib/jafry/identificator.rb', line 79 def inc_scheme_counter(scheme) find_or_register(scheme.self_name)[:counter] += 1 end |
.register_scheme(scheme_name) ⇒ Hash
Creates identification record about scheme
21 22 23 24 25 26 27 |
# File 'lib/jafry/identificator.rb', line 21 def register_scheme(scheme_name) config = Jafry::Configurator.get_config(scheme_name) config = Jafry::Configurator.set_config(scheme_name) unless config scheme = build_type(config[:id_type]).scheme_scaffold(scheme_name) self.schemes << scheme scheme end |
.set_id_for_scheme(scheme) ⇒ Scheme
Modifies scheme with current id
53 54 55 |
# File 'lib/jafry/identificator.rb', line 53 def set_id_for_scheme(scheme) scheme.merge!(generate_id(scheme)) end |