funny_yubikey_generator 0.4.0 → 0.5.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
  SHA256:
3
- metadata.gz: aa628988e7878d56e67bdb26d912dc7d21f419f9f0e75fb6ccc845a8937c1a56
4
- data.tar.gz: 7dbeea9dc0759e3f894fa2893530cf79a041dbc29de99087b9ccbd7ddceb27bc
3
+ metadata.gz: 441a10e193ad1457a49322d1b2d30e95fe0cf58a7300bd6821d4ba91714eb72e
4
+ data.tar.gz: 4b074be5dc27c6a43aacee06754ac065c678b01f93b53cf22e4288424c377b3c
5
5
  SHA512:
6
- metadata.gz: f91e58a6fc9d03de37625515a93918f33e7e3fc41334f4e1dd0ac982ae2a740cbcd67bff7cb2e422fd4eb21c29c9c3217e5af19084967abda92775f6d12a040e
7
- data.tar.gz: 1d225d62b4b474bbdaad7edff6ee078194b7ea6a72146f9bc07844666048336c0d0eef4a9d07b9ead94799da7f822babd13ce44a2cd7ab274bd8d57a4f0a7a21
6
+ metadata.gz: 87a1faa5547f637d746d7ecb937fd9d54d1cf53a662794a46e067855d10f538f7c09b56a96dfbaf01d497f9024dc98a0e08556ec68414a80ac999062e3abd5ce
7
+ data.tar.gz: dd997e1ce8459a805dfc448d27ef45781b0dc55fa70fc34209afdf038b42d2194435ff973099f36ebc0a2f653d011d3b8cd535f40af3e7018a1b3156692ff10a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- funny_yubikey_generator (0.4.0)
4
+ funny_yubikey_generator (0.5.0)
5
5
  colorize (~> 0.8.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -40,7 +40,7 @@ DICO
40
40
  generator = FunnyYubikeyGenerator.from_dictionary(dictionary)
41
41
  puts generator.generate(colorize: true)
42
42
 
43
- generator = FunnyYubikeyGenerator.from_dictionary(File.open("/usr/share/dict/words"))
43
+ generator = FunnyYubikeyGenerator.from_dictionary(File.read("/usr/share/dict/words"))
44
44
  puts generator.generate(colorize: false)
45
45
  ```
46
46
 
data/Rakefile CHANGED
@@ -10,10 +10,6 @@ Rake::TestTask.new(:test) do |t|
10
10
  t.test_files = FileList["test/**/*_test.rb"]
11
11
  end
12
12
 
13
- task :generate_index_words do
14
- puts FunnyYubikeyGenerator.filter_and_index_words(File.open("/usr/share/dict/words")).to_yaml
15
- end
16
-
17
13
  require "standard/rake"
18
14
 
19
15
  task default: %i[test standard]
@@ -27,7 +27,7 @@ end.parse!
27
27
 
28
28
  generator = if dictionary
29
29
  raise "Could not find file #{dictionary}" unless File.exist?(dictionary)
30
- FunnyYubikeyGenerator.from_dictionary(File.open(dictionary))
30
+ FunnyYubikeyGenerator.from_dictionary(File.read(dictionary))
31
31
  else
32
32
  FunnyYubikeyGenerator.instance
33
33
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "funny_yubikey_generator"
5
- spec.version = "0.4.0"
5
+ spec.version = "0.5.0"
6
6
  spec.authors = ["Xavier Delamotte"]
7
7
  spec.email = ["git@xade.eu"]
8
8
 
@@ -2,8 +2,6 @@
2
2
 
3
3
  require "singleton"
4
4
  require "colorize"
5
- require "set"
6
- require "yaml"
7
5
 
8
6
  class FunnyYubikeyGenerator
9
7
  include Singleton
@@ -12,15 +10,16 @@ class FunnyYubikeyGenerator
12
10
  WORD_REGEX = /^[#{Regexp.quote(LETTERS)}]+{4,}$/
13
11
  private_constant :COLORS
14
12
  private_constant :LETTERS
13
+ private_constant :WORD_REGEX
15
14
 
16
15
  class << self
17
16
  def from_dictionary(dictionary)
18
- indexed_words = filter_and_index_words(dictionary)
19
- new(indexed_words: indexed_words)
17
+ words = filter_words(dictionary)
18
+ new(words: words)
20
19
  end
21
20
 
22
- def filter_and_index_words(dictionary)
23
- dictionary.scan(WORD_REGEX).group_by(&:length)
21
+ def filter_words(dictionary)
22
+ dictionary.scan(WORD_REGEX)
24
23
  end
25
24
 
26
25
  def generate(colorize: false)
@@ -28,8 +27,8 @@ class FunnyYubikeyGenerator
28
27
  end
29
28
  end
30
29
 
31
- def initialize(indexed_words: load_default_indexed_words)
32
- @indexed_words = indexed_words
30
+ def initialize(words: load_default_words)
31
+ @indexed_words = words.group_by(&:length)
33
32
  end
34
33
 
35
34
  def generate(colorize: false)
@@ -44,8 +43,9 @@ class FunnyYubikeyGenerator
44
43
 
45
44
  private
46
45
 
47
- def load_default_indexed_words
48
- YAML.load_file(File.join(__dir__, "indexed_words.yaml"))
46
+ def load_default_words
47
+ default_file_path = File.join(__dir__, "words.txt")
48
+ File.readlines(default_file_path, chomp: true)
49
49
  end
50
50
 
51
51
  def random_partition(target, word_lengths)