deacon 0.0.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e187b773ec2162047c39e1361e68fcb92ae4286c
4
- data.tar.gz: 40793e79b031f8a96dcdff81b4dbcf5bea4e9d57
3
+ metadata.gz: 0e50e2def3625ec24af7c8fc01d515ba4c4868d0
4
+ data.tar.gz: 9d4207b7f4d061aeedc62da00234d9abf3094a2e
5
5
  SHA512:
6
- metadata.gz: 021b67ba552a35c6d6db59369ffb58f9322855706d132b72379c0af63d51995600a706863ef9b9d10999dc9d8bb3bae78b1d3d8843ba3850e7760a636d23ff08
7
- data.tar.gz: 8b0e6d3bfafe6a61ce7a2f90b80fd455390bc0d29545fdbf6c73032e3ae8703f979f05436700c8345d8c286c7f36836b721ef2e7c06295d6b987fc166677e8da
6
+ metadata.gz: 4beaf81ad831e2590f1fa9b3b623b3a16963c40d0acdc19b1e2a905d20fe0ae6d87961bfff8bec8b0b7a74e6a20bbdbed55ae98f4651d1357f05c59023375063
7
+ data.tar.gz: 02818a6a6d50101d801b4e982727076de7f76334b3bf7de6c053253226a46e046594d17173abfa5f27a8bd8338a1f72072fcec2164e5ad6e8218da7a3954bd00
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Deacon - human readable random name generator
1
+ # [Deacon](https://rubygems.org/gems/deacon) - human readable random name generator
2
2
 
3
3
  Out of ideas for incoming bare-metal host names in your cluster? This little
4
4
  gem is a way out! It contains frequently occurring given names and surnames
@@ -19,12 +19,10 @@ combinations based on MAC adresses.
19
19
 
20
20
  The random name generator makes use of [Fibonacci linear feedback shift
21
21
  register](https://en.wikipedia.org/wiki/Linear_feedback_shift_register) which
22
- gives deterministic sequence of pseudo-random numbers. Additionally, algorighm
22
+ gives deterministic sequence of pseudo-random numbers. Additionally, algorithm
23
23
  makes sure names with same first name (or gender) and last name are not
24
24
  returned in succession. Since there are about 1% of such cases, there are
25
- about 33 million unique total names. During plugin installation, the register
26
- is seeded with a random value, so each installation gets unique sequence.
27
- Example sequence:
25
+ about 33 million unique total names. Example sequence:
28
26
 
29
27
  * velma-pratico.my.lan
30
28
  * angie-warmbrod.my.lan
@@ -34,10 +32,13 @@ Example sequence:
34
32
  * don-otero.my.lan
35
33
  * sam-hulan.my.lan
36
34
 
37
- The polynomial used in linear feedback shift register is x^25 + x^24 + x^23 + x^22 + 1.
35
+ The polynomial used in linear feedback shift register is
36
+
37
+ x^25 + x^24 + x^23 + x^22 + 1.
38
38
 
39
39
  The key thing is to store register (a number) and use it for each generation
40
- in order to get non-repeating sequence of name combinations.
40
+ in order to get non-repeating sequence of name combinations. See an example
41
+ below.
41
42
 
42
43
  ### MAC generator
43
44
 
@@ -91,6 +92,11 @@ Example output:
91
92
  PATSY CUSSON
92
93
  HUGH SHIMER
93
94
 
95
+ By default, same firstname or surname successions are removed. To avoid that
96
+ behavior (e.g. in stateless applications where you can't store register), use
97
+
98
+ register, firstname, lastname = generator.generate(register, false)
99
+
94
100
  Random LFSR generator example:
95
101
 
96
102
  require "deacon"
@@ -13,12 +13,12 @@ module Deacon
13
13
  i - 1
14
14
  end
15
15
 
16
- def generate(seed = Time.now.utc.to_i)
16
+ def generate(seed = Time.now.utc.to_i, test_uniquess = true)
17
17
  return [] if seed.nil? || seed == 0
18
18
  index = seed
19
19
  loop do
20
20
  index = next_lfsr25(index)
21
- break if unique?(seed, index)
21
+ break if !test_uniquess || unique?(seed, index)
22
22
  end
23
23
  given_file = (index & 0x1000000) == 0 ? GIVEN_MALE_NAMES_FILE : GIVEN_FEMALE_NAMES_FILE
24
24
  givenname_ix = (index & 0xff0000) >> 16
@@ -1,3 +1,3 @@
1
1
  module Deacon
2
- VERSION = '0.0.3'
2
+ VERSION = '1.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deacon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lukas Zapletal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-07 00:00:00.000000000 Z
11
+ date: 2016-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rdoc
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Provides human readable name using continious LFSR
27
+ description: Provides human readable names using continious LFSR
28
28
  email:
29
29
  - lukas-x@zapletalovi.com
30
30
  executables: []